/*
Theme Name: LANDPLUS
Theme URI: https://www.landplus.co.jp/
Author: 株式会社ランドプラス
Description: 株式会社ランドプラス コーポレートサイト用テーマ。上下水道施設の耐震解析・構造設計を主軸とした建設コンサルタント向け。全13ページのテンプレートを同梱。フォントは functions.php で読み込みます。
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: Proprietary
Text Domain: landplus
*/

/* ==========================================================================
   LANDPLUS 株式会社ランドプラス — Design Foundations
   Colors + Typography tokens. Link this file, or @import into your CSS.
   Fonts loaded from Google Fonts (see README — substitutes, originals TBD):
     JP UI/Body : Noto Sans JP        (400 / 500 / 700 / 900)
     JP Serif   : Noto Serif JP       (600 / 700)  — philosophy / gravitas
     Latin/Nums : Saira Semi Condensed (500 / 600 / 700) — eyebrows, numerals
   ========================================================================== */

:root {
  /* ---- Brand: the logo's blue gradient ---------------------------------- */
  --brand-navy:        #14315E;  /* deep ink-navy — primary brand, headers   */
  --brand-blue:        #1E5FA8;  /* royal blue — primary actions, links      */
  --brand-blue-bright: #2F7BC9;  /* sky highlight — gradient end             */
  --brand-grad:        linear-gradient(135deg, #2F7BC9 0%, #1E5FA8 45%, #14315E 100%);
  --brand-grad-soft:   linear-gradient(135deg, #EAF2FB 0%, #DCEAF8 100%);

  /* ---- Ink / neutrals (cool-tinted, drafting gray) ---------------------- */
  --ink:   #131A24;  /* near-black headings                                  */
  --fg1:   #1E2935;  /* primary body text                                   */
  --fg2:   #4B5A6A;  /* secondary text                                      */
  --fg3:   #7E8C9B;  /* muted / captions                                    */
  --fg-on-dark:   #EAF1F8;  /* body text on navy                            */
  --fg2-on-dark:  #9FB3CA;  /* secondary text on navy                       */

  /* ---- Surfaces -------------------------------------------------------- */
  --bg:        #FFFFFF;
  --bg-subtle: #F4F7FA;  /* page alt sections — cool off-white              */
  --bg-panel:  #EDF2F7;  /* panels, table stripes                          */
  --bg-navy:   #0E1F3D;  /* footer / hero overlays                         */
  --bg-navy-2: #11264A;  /* navy card on navy                              */

  /* ---- Lines & borders ------------------------------------------------- */
  --line:        #DCE3EB;  /* default hairline border                       */
  --line-strong: #C2CDD9;
  --line-navy:   rgba(255,255,255,0.14);
  --grid-line:   rgba(20,49,94,0.07);  /* blueprint grid overlay           */

  /* ---- Accent (engineering amber) — USE SPARINGLY ---------------------- */
  --accent:      #C9892F;  /* data markers, active step, small emphasis      */
  --accent-soft: #F6ECDA;

  /* ---- Status ---------------------------------------------------------- */
  --ok:   #2E7D52;
  --warn: #C9892F;
  --err:  #C0392B;

  /* ---- Elevation / shadow (cool, restrained) --------------------------- */
  --shadow-sm: 0 1px 2px rgba(19,26,36,0.06), 0 1px 1px rgba(19,26,36,0.04);
  --shadow-md: 0 4px 16px rgba(20,49,94,0.08), 0 1px 3px rgba(20,49,94,0.06);
  --shadow-lg: 0 18px 48px rgba(14,31,61,0.16), 0 4px 12px rgba(14,31,61,0.08);
  --shadow-navy: 0 24px 60px rgba(8,18,38,0.45);

  /* ---- Radius (tight, technical) --------------------------------------- */
  --r-xs: 2px;
  --r-sm: 4px;
  --r-md: 6px;
  --r-lg: 10px;
  --r-pill: 999px;

  /* ---- Spacing scale (4px base) ---------------------------------------- */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px; --s5: 24px;
  --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px; --s10: 128px;

  /* ---- Type families --------------------------------------------------- */
  --font-jp:    'Noto Sans JP', system-ui, sans-serif;
  --font-serif: 'Noto Serif JP', 'Noto Sans JP', serif;
  /* Latin-first stack: Saira renders Latin/numerals, Noto fills JP glyphs   */
  --font-en:    'Saira Semi Condensed', 'Noto Sans JP', sans-serif;

  /* ---- Fluid type scale ------------------------------------------------ */
  --t-hero:    clamp(34px, 5.0vw, 60px);   /* hero catchcopy                */
  --t-display: clamp(28px, 3.6vw, 44px);   /* section big statement         */
  --t-h1:      clamp(26px, 3.0vw, 38px);
  --t-h2:      clamp(21px, 2.2vw, 28px);
  --t-h3:      18px;
  --t-lead:    clamp(16px, 1.3vw, 19px);
  --t-body:    16px;
  --t-sm:      14px;
  --t-xs:      12.5px;
  --t-eyebrow: 13px;   /* English eyebrow labels                            */
}

/* ==========================================================================
   Semantic element styles — apply via classes
   ========================================================================== */
.ds-hero {
  font-family: var(--font-jp); font-weight: 900;
  font-size: var(--t-hero); line-height: 1.28; letter-spacing: .01em;
  color: var(--ink); text-wrap: balance;
}
.ds-display {
  font-family: var(--font-jp); font-weight: 900;
  font-size: var(--t-display); line-height: 1.32; color: var(--ink);
}
.ds-h1 { font-family: var(--font-jp); font-weight: 900; font-size: var(--t-h1); line-height: 1.34; color: var(--ink); }
.ds-h2 { font-family: var(--font-jp); font-weight: 700; font-size: var(--t-h2); line-height: 1.4;  color: var(--ink); }
.ds-h3 { font-family: var(--font-jp); font-weight: 700; font-size: var(--t-h3); line-height: 1.5;  color: var(--fg1); }
.ds-lead { font-family: var(--font-jp); font-weight: 400; font-size: var(--t-lead); line-height: 1.95; color: var(--fg2); }
.ds-body { font-family: var(--font-jp); font-weight: 400; font-size: var(--t-body); line-height: 1.95; color: var(--fg1); }
.ds-sm   { font-family: var(--font-jp); font-weight: 400; font-size: var(--t-sm);   line-height: 1.8;  color: var(--fg2); }
.ds-serif{ font-family: var(--font-serif); font-weight: 600; line-height: 1.9; color: var(--ink); }

/* English eyebrow label — the "SERVICES / ABOUT" technical kicker */
.ds-eyebrow {
  font-family: var(--font-en); font-weight: 600;
  font-size: var(--t-eyebrow); letter-spacing: .22em; text-transform: uppercase;
  color: var(--brand-blue);
}
/* Big numerals / spec figures */
.ds-num {
  font-family: var(--font-en); font-weight: 700;
  font-variant-numeric: tabular-nums; letter-spacing: .01em; color: var(--brand-navy);
}


/* LANDPLUS website UI kit — component styles. Pairs with ../../colors_and_type.css */

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-jp);color:var(--fg1);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
.sec{padding:96px 0}
.sec-sm{padding:64px 0}

/* ---- eyebrow + section header ---- */
.eyebrow{font-family:var(--font-en);font-weight:600;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--brand-blue);display:inline-flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:2px;background:var(--brand-blue)}
.sec-head{margin-bottom:48px}
.sec-head .ttl{font-family:var(--font-jp);font-weight:900;font-size:var(--t-display);line-height:1.32;color:var(--ink);margin:14px 0 0}
.sec-head .sub{font-size:16px;color:var(--fg2);line-height:1.9;margin:16px 0 0;max-width:640px}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-jp);font-weight:700;font-size:15px;
  padding:14px 26px;border-radius:var(--r-sm);cursor:pointer;border:1px solid transparent;transition:.2s;white-space:nowrap}
.btn .ar{transition:transform .2s}
.btn:hover .ar{transform:translateX(4px)}
.btn-primary{background:var(--brand-navy);color:#fff}
.btn-primary:hover{background:var(--bg-navy);box-shadow:var(--shadow-md)}
.btn-secondary{background:#fff;color:var(--brand-navy);border-color:var(--line-strong)}
.btn-secondary:hover{border-color:var(--brand-blue);color:var(--brand-blue)}
.btn-light{background:#fff;color:var(--brand-navy)}
.btn-ghost{background:transparent;color:var(--brand-blue);padding:10px 2px}
.btn-on-navy{background:transparent;color:#fff;border-color:rgba(255,255,255,.4)}
.btn-on-navy:hover{background:rgba(255,255,255,.08)}

/* ---- header ---- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:.2s}
.hdr-in{display:flex;align-items:center;justify-content:space-between;height:74px}
.hdr-logo{height:38px;width:auto;cursor:pointer}
.nav{display:flex;align-items:center;gap:4px}
.nav a{font-size:14.5px;font-weight:700;color:var(--fg1);padding:10px 13px;border-radius:var(--r-sm);position:relative;cursor:pointer;transition:.15s;white-space:nowrap}
.nav a .en{display:block;font-family:var(--font-en);font-size:9.5px;letter-spacing:.12em;color:var(--fg3);font-weight:600;text-align:center;margin-top:1px}
.nav a:hover{color:var(--brand-blue)}
.nav a.on{color:var(--brand-blue)}
.nav a.on::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--brand-blue)}
.hdr-cta{display:flex;align-items:center;gap:16px}
.hdr-tel{text-align:right;line-height:1.2}
.hdr-tel .n{font-family:var(--font-en);font-weight:700;font-size:19px;color:var(--brand-navy);font-variant-numeric:tabular-nums;white-space:nowrap}
.hdr-tel .t{font-size:10.5px;color:var(--fg3)}
.burger{display:none;background:none;border:none;cursor:pointer;color:var(--brand-navy)}

/* ---- hero ---- */
.hero{position:relative;background:var(--bg-navy);color:#fff;overflow:hidden}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px}
.hero-glow{position:absolute;right:-10%;top:-20%;width:60%;height:120%;background:radial-gradient(closest-side,rgba(47,123,201,.45),transparent 70%);pointer-events:none}
.hero-in{position:relative;padding:120px 0 110px;max-width:1200px;margin:0 auto}
.hero h1{font-family:var(--font-jp);font-weight:900;font-size:var(--t-hero);line-height:1.32;margin:22px 0 0;letter-spacing:.01em;text-wrap:balance}
.hero h1 .hl{color:var(--brand-blue-bright)}
.hero .lead{font-size:18px;line-height:2;color:var(--fg2-on-dark);margin:26px 0 0;max-width:560px}
.hero .eyebrow{color:var(--brand-blue-bright)}
.hero .eyebrow::before{background:var(--brand-blue-bright)}
.hero-cta{display:flex;gap:16px;margin-top:40px;flex-wrap:wrap}
.hero-meta{display:flex;gap:40px;margin-top:56px;flex-wrap:wrap}
.hero-meta .it .n{font-family:var(--font-en);font-weight:700;font-size:34px;color:#fff;font-variant-numeric:tabular-nums;line-height:1}
.hero-meta .it .l{font-size:12.5px;color:var(--fg2-on-dark);margin-top:8px;letter-spacing:.04em}
.hero-scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-family:var(--font-en);font-size:10px;letter-spacing:.2em;color:var(--fg2-on-dark);writing-mode:vertical-rl;display:flex;align-items:center;gap:10px}

/* ---- about band ---- */
.about{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.about-photo{position:relative;border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-lg)}
.about-photo img{width:100%;height:100%;object-fit:cover}
.about-photo .tag{position:absolute;left:18px;bottom:18px;background:rgba(14,31,61,.86);color:#fff;font-size:12px;font-weight:700;padding:8px 14px;border-radius:var(--r-sm);backdrop-filter:blur(4px)}

/* ---- service cards ---- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.svc{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:34px 32px;overflow:hidden;transition:.22s;cursor:pointer}
.svc::before{content:"";position:absolute;left:0;top:0;width:3px;height:0;background:var(--brand-blue);transition:height .3s}
.svc:hover{border-color:var(--brand-blue);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.svc:hover::before{height:100%}
.svc .no{font-family:var(--font-en);font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--brand-blue)}
.svc .en{font-family:var(--font-en);font-weight:600;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg3);margin-top:16px}
.svc .jp{font-family:var(--font-jp);font-weight:900;font-size:23px;color:var(--ink);margin-top:4px}
.svc .dsc{font-size:14.5px;line-height:1.9;color:var(--fg2);margin-top:16px}
.svc .more{display:inline-flex;align-items:center;gap:8px;margin-top:20px;font-family:var(--font-en);font-weight:600;font-size:13px;letter-spacing:.08em;color:var(--brand-blue)}
.svc-ico{position:absolute;right:26px;top:30px;width:30px;height:30px;color:var(--line-strong);transition:.2s}
.svc:hover .svc-ico{color:var(--brand-blue)}

/* ---- domains ---- */
.dom-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--line)}
.dom{background:#fff;padding:30px 28px;display:flex;flex-direction:column;gap:14px;transition:.2s;cursor:default}
.dom:hover{background:var(--bg-subtle)}
.dom i{width:30px;height:30px;color:var(--brand-blue)}
.dom .t{font-size:17px;font-weight:700;color:var(--fg1)}
.dom .e{font-family:var(--font-en);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg3)}
.dom .d{font-size:13px;color:var(--fg2);line-height:1.8}

/* ---- strengths (navy) ---- */
.strength{background:var(--bg-navy);color:#fff;position:relative;overflow:hidden}
.strength .hero-grid{opacity:.7}
.str-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line-navy);border:1px solid var(--line-navy);border-radius:var(--r-md);overflow:hidden;position:relative}
.str{background:var(--bg-navy-2);padding:34px 32px;display:flex;gap:22px;align-items:flex-start}
.str .no{font-family:var(--font-en);font-weight:700;font-size:13px;color:var(--brand-blue-bright);letter-spacing:.1em;padding-top:4px}
.str .t{font-size:19px;font-weight:900;color:#fff}
.str .d{font-size:14px;line-height:1.85;color:var(--fg2-on-dark);margin-top:10px}

/* ---- flow ---- */
.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:0;position:relative}
.fstep{text-align:center;padding:0 8px;position:relative}
.fstep:not(:last-child)::after{content:"";position:absolute;top:27px;right:-14px;width:28px;height:2px;background:var(--line-strong);z-index:1}
.fstep .dot{width:56px;height:56px;border-radius:50%;border:2px solid var(--line-strong);background:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;font-family:var(--font-en);font-weight:700;font-size:16px;color:var(--fg2);position:relative;z-index:2;transition:.2s}
.fstep:hover .dot{border-color:var(--brand-blue);color:var(--brand-blue);box-shadow:0 0 0 4px rgba(30,95,168,.1)}
.fstep .nm{font-size:15px;font-weight:700;color:var(--fg1)}
.fstep .en{font-family:var(--font-en);font-size:10px;letter-spacing:.06em;color:var(--fg3);text-transform:uppercase;margin-top:5px}

/* ---- works ---- */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.work{border:1px solid var(--line);border-radius:var(--r-md);padding:26px 24px;background:#fff;transition:.2s}
.work:hover{border-color:var(--brand-blue);box-shadow:var(--shadow-md)}
.work .cat{font-family:var(--font-en);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-blue);font-weight:600}
.work .t{font-size:17px;font-weight:700;color:var(--ink);margin:12px 0 8px;line-height:1.5}
.work .reg{font-size:13px;color:var(--fg2)}
.work .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.work .tags span{font-size:11.5px;color:var(--fg2);background:var(--bg-panel);padding:4px 10px;border-radius:var(--r-xs)}
.work-note{font-size:13px;color:var(--fg3);margin-top:24px;display:flex;align-items:center;gap:8px}

/* ---- CTA band ---- */
.cta{background:var(--brand-grad);color:#fff;border-radius:var(--r-lg);padding:64px 56px;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;position:relative;overflow:hidden}
.cta .ttl{font-family:var(--font-jp);font-weight:900;font-size:30px;line-height:1.45}
.cta .sub{font-size:15px;color:rgba(255,255,255,.85);margin-top:14px;line-height:1.8}

/* ---- footer ---- */
.ftr{background:var(--bg-navy);color:var(--fg2-on-dark);padding:72px 0 32px}
.ftr-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--line-navy)}
.ftr-logo{height:40px;margin-bottom:22px}
.ftr p{font-size:13.5px;line-height:1.9;color:var(--fg2-on-dark)}
.ftr h4{font-family:var(--font-en);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:0 0 18px}
.ftr-links{display:flex;flex-direction:column;gap:12px}
.ftr-links a{font-size:14px;color:var(--fg2-on-dark);transition:.15s;cursor:pointer}
.ftr-links a:hover{color:#fff}
.ftr-bot{display:flex;justify-content:space-between;align-items:center;padding-top:28px;font-size:12px;color:var(--fg2-on-dark);flex-wrap:wrap;gap:10px}
.ftr-tel{font-family:var(--font-en);font-weight:700;font-size:24px;color:#fff;font-variant-numeric:tabular-nums}

/* ---- page header (inner pages) ---- */
.phead{background:var(--bg-navy);color:#fff;position:relative;overflow:hidden}
.phead-in{position:relative;padding:80px 0 64px}
.phead h1{font-family:var(--font-jp);font-weight:900;font-size:var(--t-h1);margin:16px 0 0}
.phead .bc{font-size:12.5px;color:var(--fg2-on-dark);display:flex;gap:8px;align-items:center}

/* ---- company ---- */
.philo{text-align:center;max-width:760px;margin:0 auto}
.philo .big{font-family:var(--font-serif);font-weight:700;font-size:clamp(24px,3vw,34px);line-height:1.7;color:var(--ink);margin:20px 0 0}
.msg{display:grid;grid-template-columns:300px 1fr;gap:56px;align-items:start}
.msg-photo{border-radius:var(--r-md);overflow:hidden;background:var(--bg-panel);box-shadow:var(--shadow-md)}
.msg-photo img{width:100%}
.msg .nm{margin-top:18px;font-size:14px;color:var(--fg2)}
.msg .nm b{display:block;font-size:19px;color:var(--ink);font-weight:900;margin-top:4px}
.tbl{width:100%;border-collapse:collapse;border-top:1px solid var(--line)}
.tbl th,.tbl td{text-align:left;padding:18px 4px;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:top}
.tbl th{width:200px;font-weight:700;color:var(--fg1)}
.tbl td{color:var(--fg2);line-height:1.8}

/* ---- contact ---- */
.contact-grid{display:grid;grid-template-columns:1fr 380px;gap:56px;align-items:start}
.fld{margin-bottom:22px}
.fld label{display:block;font-size:13.5px;font-weight:700;color:var(--fg1);margin-bottom:8px}
.fld label .req{color:var(--err);font-size:11px;margin-left:8px;background:#FBEAE8;padding:2px 7px;border-radius:var(--r-xs)}
.fld input,.fld textarea,.fld select{width:100%;padding:13px 15px;border:1px solid var(--line-strong);border-radius:var(--r-sm);font-family:var(--font-jp);font-size:15px;color:var(--fg1);background:#fff;transition:.18s}
.fld input:focus,.fld textarea:focus,.fld select:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 3px rgba(30,95,168,.16)}
.contact-aside{background:var(--bg-subtle);border:1px solid var(--line);border-radius:var(--r-md);padding:32px}
.contact-aside .row{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.contact-aside .row:last-child{border-bottom:none}
.contact-aside i{width:22px;height:22px;color:var(--brand-blue);flex-shrink:0;margin-top:2px}
.contact-aside .k{font-size:12px;color:var(--fg3);font-weight:700}
.contact-aside .v{font-size:15px;color:var(--fg1);margin-top:3px;line-height:1.6}

/* ---- client portal callout ---- */
.portal{display:flex;align-items:center;justify-content:space-between;gap:32px;background:#fff;border:1px solid var(--line);border-left:3px solid var(--brand-blue);border-radius:var(--r-md);padding:32px 36px;flex-wrap:wrap}

@media (max-width:920px){
  .nav,.hdr-tel{display:none}
  .burger{display:block}
  .about,.msg,.contact-grid{grid-template-columns:1fr;gap:36px}
  .svc-grid,.dom-grid,.str-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:repeat(3,1fr);row-gap:32px}
  .fstep:nth-child(3)::after{display:none}
  .work-grid{grid-template-columns:1fr 1fr}
  .ftr-top{grid-template-columns:1fr}
  .sec{padding:64px 0}
}
@media (max-width:560px){
  .wrap{padding:0 20px}
  .work-grid{grid-template-columns:1fr}
  .flow{grid-template-columns:repeat(2,1fr)}
  .fstep:nth-child(2)::after,.fstep:nth-child(4)::after{display:none}
  .cta{padding:40px 28px}
}

/* ---- entrance animation (CSS-only; resting state is always visible) ---- */
.rv{animation:rvIn .6s cubic-bezier(.22,.61,.36,1) both}
@keyframes rvIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.rv{animation:none}}


/* --- page styles --- */


  body { margin:0; background:#fff; -webkit-font-smoothing:antialiased; }
  a { color: var(--brand-blue); text-decoration: none; }
  a:hover { color: var(--brand-navy); }
  ::-webkit-scrollbar { height:8px; width:8px; }
  ::-webkit-scrollbar-thumb { background: var(--line-strong); border-radius:8px; }
  @keyframes v2Draw { from { stroke-dashoffset:1200 } to { stroke-dashoffset:0 } }
  @keyframes v2Float { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-10px) } }
  @keyframes v2Marquee { from { transform:translateX(0) } to { transform:translateX(-50%) } }
  /* hero news: peeks on load, tucks to the right, slides back out on hover */
  [data-hero-news] {
    transition: opacity .62s cubic-bezier(.22,.61,.36,1), transform .62s cubic-bezier(.22,.61,.36,1);
  }
  [data-hero-news][data-tucked] { opacity:.5; transform:translateX(calc(100% - 94px)); }
  [data-hero-news][data-tucked]:hover { opacity:1; transform:translateX(0); }
  [data-scrollhint] { display: none; }
  @media (max-width:1200px) { [data-scrollhint] { display: block; } }
  [data-marquee] { animation: v2Marquee 34s linear infinite; }
  [data-marquee-wrap]:hover [data-marquee] { animation-play-state: paused; }
  @media (prefers-reduced-motion: reduce) { [data-marquee] { animation: none } }
  @media (max-width:1080px) {
    [data-g="2"] { grid-template-columns:1fr !important; gap:44px !important }
    [data-g="3"], [data-g="4"] { grid-template-columns:1fr 1fr !important }
    [data-g="5"] { grid-template-columns:1fr 1fr 1fr !important }
    [data-g="news"] { grid-template-columns:110px 1fr 34px !important; grid-template-areas:"d p p" "t t a" !important; gap:10px 18px !important }
    [data-g="news"] > :nth-child(1) { grid-area:d }
    [data-g="news"] > :nth-child(2) { grid-area:p }
    [data-g="news"] > :nth-child(3) { grid-area:t }
    [data-g="news"] > :nth-child(4) { grid-area:a }
    [data-g="case"] { grid-template-columns:1fr !important; gap:4px !important }
    [data-hero-h] { height:auto !important; min-height:560px !important }
    [data-hdr] { padding:0 24px !important; height:98px !important; gap:20px !important }
    [data-hdr] > img { height:63px !important }
    [data-hdr] nav { gap:0 !important }
    [data-hdr] nav a { padding:10px 10px !important; font-size:13.5px !important }
    [data-tel] { display:none !important }
    [data-hdr-cta] { padding:11px 18px !important; font-size:13.5px !important }
    [data-mega] { top:98px !important }
  }
  [data-hdr] nav a, [data-tel] div, [data-hdr-cta] { white-space:nowrap }
  [data-hdr] nav a:hover::after { width: calc(100% - 30px) !important; }
  @media (max-width:820px) {
    [data-hdr] nav { display:none !important }
  }
  @media (max-width:720px) {
    [data-g="3"], [data-g="4"], [data-g="5"] { grid-template-columns:1fr !important }
  }


/* --- hover / focus states --- */

.lp-h1:hover{color:var(--brand-blue) !important}
.lp-h2:before{content:'' !important;position:absolute !important;left:15px !important;right:15px !important;bottom:2px !important;height:1px !important;background:var(--line-strong) !important}
.lp-h3:after{content:'' !important;position:absolute !important;left:15px !important;bottom:2px !important;width:0 !important;height:1px !important;background:var(--brand-blue) !important;transition:width .28s cubic-bezier(.22,.61,.36,1) !important}
.lp-h4:hover{background:var(--brand-navy) !important;color:#fff !important}
.lp-h5:hover{border-color:var(--brand-blue) !important;color:var(--brand-blue) !important;background:rgba(255,255,255,.95) !important}
.lp-h6:hover{border-color:var(--brand-blue) !important;box-shadow:var(--shadow-lg) !important;color:var(--fg1) !important}
.lp-h7:hover{color:var(--brand-blue) !important;border-bottom-color:var(--brand-blue) !important}
.lp-h8:hover{border-color:var(--brand-blue) !important;box-shadow:var(--shadow-md) !important}
.lp-h9:hover{border-color:var(--brand-blue) !important;color:var(--brand-blue) !important;background:var(--brand-grad-soft) !important}
.lp-h10:hover{border-color:var(--brand-blue) !important;box-shadow:var(--shadow-md) !important;color:var(--fg1) !important}
.lp-h11:hover{border-color:var(--brand-blue) !important;color:var(--brand-blue) !important}
.lp-h12:hover{background:var(--bg-subtle) !important}
.lp-h13:focus{border-color:var(--brand-blue) !important;outline:2px solid rgba(30,95,168,.18) !important;outline-offset:1px !important}
.lp-h14:hover{background:var(--brand-navy) !important}
/* === WordPress 管理バー・テーマ側の干渉を打ち消す === */
.lp-root { max-width: none; width: 100%; }
.lp-root img { max-width: 100%; height: auto; }
#lp-main { display: block; }
.lp-root a { text-decoration: none; }
.lp-root a:hover { text-decoration: none; }

/* === ヘッダーのドロップダウン === */
.lp-navitem { position: relative; }
.lp-sub {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%) translateY(-6px);
  min-width: 240px; background: #fff; border: 1px solid var(--line);
  border-radius: var(--r-md); box-shadow: var(--shadow-lg);
  padding: 10px; display: flex; flex-direction: column; gap: 2px;
  opacity: 0; visibility: hidden;
  transition: opacity .22s cubic-bezier(.22,.61,.36,1), transform .22s cubic-bezier(.22,.61,.36,1);
  z-index: 90;
}
.lp-navitem:hover .lp-sub, .lp-navitem:focus-within .lp-sub {
  opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0);
}
.lp-sub a {
  display: block; padding: 11px 16px; border-radius: var(--r-sm);
  font-size: 14px; font-weight: 500; line-height: 1.5; color: var(--fg1); white-space: nowrap;
}
.lp-sub a:hover { background: var(--bg-subtle); color: var(--brand-blue); }

@media (max-width: 900px) {
  .lp-sub { position: static; transform: none; opacity: 1; visibility: visible;
    box-shadow: none; border: 0; padding: 0 0 8px; min-width: 0; }
}
