/* ============================================================
   NETDELINK LP - VER7 Theme System (4テーマ完全静的化版)
   忠実再現: navy / crimson / emerald / sky
   生成: 2026-04-27 / Claude
   ============================================================ */

/* === Default CSS Variables === */
:root {
  --color-primary:#1a3c6e;--color-primary-dark:#0f2a52;--color-primary-light:#2a5298;
  --color-accent:#c5a059;--color-accent-dark:#a8823a;
  --color-accent2:#9B2C3E;--color-accent2-dark:#7A2331;
  --color-text:#222;--color-text-sub:#555;--color-text-light:#888;
  --color-bg:#fff;--color-bg-alt:#f5f7fa;--color-bg-dark:#0f1e38;
  --color-border:#e0e4ed;--color-white:#fff;
  --font-base:'Noto Sans JP',sans-serif;
  --font-heading:'Noto Serif JP',serif;
  --font-display:'Cormorant Garamond','Noto Serif JP',serif;
  --section-padding-v:64px;--section-padding-h:24px;
  --container-width:1100px;
  --radius-btn:4px;--radius-lg:16px;--radius-md:8px;--radius-sm:4px;
  --hero-min-height:580px;--hero-text-align:left;
  --hero-overlay-color:rgba(10,22,50,0.62);
  --heading-letter-spacing:0.06em;
  --btn-primary-bg:var(--color-accent);--btn-primary-color:#fff;
  --btn-primary-border:none;--btn-primary-shadow:none;
  --card-shadow:0 2px 12px rgba(0,0,0,0.07);--card-border:1px solid var(--color-border);
  --ease-spring:    cubic-bezier(0.34, 1.35, 0.64, 1);
  --ease-smooth:    cubic-bezier(0.32, 0.72, 0, 1);
  --ease-snap:      cubic-bezier(0.4, 0, 0.6, 1);
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --dur-instant: 80ms;
  --dur-fast:    160ms;
  --dur-base:    240ms;
  --dur-medium:  360ms;
  --dur-slow:    560ms;
  --header-h:    68px;
  /* ── フォントサイズ トークン（役割別・テーマで上書き可能） ── */
  --size-hero-sub:16px;
  --size-section-heading-ja:clamp(22px,3vw,36px);
  --size-d-num:clamp(28px,3.5vw,40px);
  --size-f-num:clamp(28px,3.5vw,52px);
  --size-feature-title:18px;
  --size-feature-desc:15px;
  --size-flow-title:18px;
  --size-flow-desc:15px;
  --size-cta-title:clamp(20px,3vw,36px);
}

/* === Reset === */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;overflow-x:clip}
/* ========== 改行ルール（言語別） ==========
   既定: ラテン文字系（en/de/fr/es/vi 等）→ word-break:normal で単語境界で折返し、
        長すぎる単語は overflow-wrap:break-word で強制折返し、hyphens:auto で自然な分割。
   CJK: 日本語/中国語/韓国語 → word-break:keep-all で熟語の途中で改行しない。
   行頭禁則は line-break:strict で全言語に適用。 */
body{font-family:var(--font-base);font-size:16px;line-height:1.7;color:var(--color-text);background:var(--color-bg);word-break:normal;overflow-wrap:break-word;line-break:strict;hyphens:auto;-webkit-hyphens:auto;hanging-punctuation:allow-end;text-wrap:pretty;overflow-x:clip}
h1,h2,h3,h4,h5,h6,p,span,a,li,td,th,dt,dd,div{word-break:normal;overflow-wrap:break-word;line-break:strict;hyphens:auto;-webkit-hyphens:auto;hanging-punctuation:allow-end}
/* CJK (日本語・中国語・韓国語) — 熟語/単語の途中改行を防ぐ */
:lang(ja),:lang(ja) *,
:lang(zh),:lang(zh) *,
:lang(zh-CN),:lang(zh-CN) *,
:lang(zh-TW),:lang(zh-TW) *,
:lang(ko),:lang(ko) *{word-break:keep-all;hyphens:none;-webkit-hyphens:none}
img{max-width:100%;height:auto;display:block}
a,a:visited,a:hover,a:focus,a:active{color:inherit;text-decoration:none}
ul{list-style:none}

/* === Layout === */
.section{padding:var(--section-padding-v) var(--section-padding-h)}
.section--alt{background:var(--color-bg-alt)}
.section--dark{background:var(--color-bg-dark);color:var(--color-white)}
.container{max-width:var(--container-width);margin:0 auto;padding:0 var(--section-padding-h)}
.is-hidden{display:none !important}

/* === Section Heading === */
body{counter-reset:section-num}
.section-heading{text-align:center;margin-bottom:32px;counter-increment:section-num}
.section-heading::before{content:counter(section-num,decimal-leading-zero);font-family:var(--font-display);font-size:16px;letter-spacing:.2em;color:var(--color-accent);text-transform:uppercase;display:block;margin-bottom:8px}
.section-heading__ja{font-family:var(--font-heading);font-size:var(--size-section-heading-ja);font-weight:700;letter-spacing:var(--heading-letter-spacing);color:var(--color-primary);position:relative;display:block;padding-bottom:16px;max-width:600px;margin-left:auto;margin-right:auto}
.section-heading__ja::after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:40px;height:2px;background:var(--color-accent)}
.section--dark .section-heading__ja{color:var(--color-white)}

/* === Button === */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:16px 40px;font-family:var(--font-base);font-size:clamp(13px,1.3vw,15px);font-weight:700;letter-spacing:.06em;cursor:pointer;border:none;transition:opacity .2s,transform .15s;border-radius:var(--radius-btn);text-align:center;line-height:1.3;overflow-wrap:break-word;max-width:100%}
.btn:hover{opacity:.88;transform:translateY(-1px)}
.btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-color);border:var(--btn-primary-border);box-shadow:var(--btn-primary-shadow)}
.btn--white{background:#ffffff;color:var(--color-primary);border:none}
.btn--outline{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}
.btn--large{padding:20px 56px;font-size:17px}

/* === Header === */
.header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--color-border);height:68px;display:flex;align-items:center;position:sticky;top:0;z-index:900}
.header__inner{width:100%;max-width:var(--container-width);margin:0 auto;padding:0 var(--section-padding-h);display:flex;align-items:center;justify-content:space-between}
.header__logo{display:flex;align-items:center;gap:12px;color:var(--color-primary);text-decoration:none}
.header__logo-img{width:40px;height:40px;border-radius:50%;object-fit:cover;border:1px solid var(--color-accent);flex-shrink:0;background:var(--color-primary)}
.header__logo-text{display:flex;flex-direction:column;justify-content:center;gap:2px;line-height:1.15}
.header__logo-name{font-family:var(--font-heading);font-size:13px;font-weight:700;color:#1a1a1a;letter-spacing:.04em}
.header__logo-sub{font-family:var(--font-display);font-size:9px;font-weight:400;color:var(--color-accent);letter-spacing:.14em}
@media(max-width:767px){
  .header__logo-img{width:32px;height:32px}
  .header__logo-name{font-size:12px}
  .header__logo-sub{font-size:8px}
}
.header__nav{display:flex;align-items:center;gap:24px}
.header__nav a{font-size:13px;font-weight:500;color:var(--color-text-sub);letter-spacing:.04em;white-space:nowrap}
.header__cta{display:flex}
.header__cta .btn{padding:8px 18px;font-size:13px;white-space:nowrap}

/* === Hamburger === */
.header__hamburger{display:none;position:relative;width:36px;height:36px;cursor:pointer;background:none;border:none;padding:0;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.header__hamburger::before,.header__hamburger::after{content:"";position:absolute;left:7px;right:7px;height:2px;background:var(--color-text);border-radius:2px;transition:transform var(--dur-base) var(--ease-spring),opacity var(--dur-fast) var(--ease-smooth)}
.header__hamburger::before{top:10px;box-shadow:0 7px 0 var(--color-text)}
.header__hamburger::after{bottom:10px}
.header__hamburger.open::before{transform:translateY(7px) rotate(45deg);box-shadow:none}
.header__hamburger.open::after{transform:translateY(-7px) rotate(-45deg)}

/* === Mobile Menu Overlay === */
.header__mobile-menu{display:flex;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg);z-index:850;flex-direction:column;padding:80px 24px 40px;overflow-x:hidden;overflow-y:auto;transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform var(--dur-medium) var(--ease-out-quart),opacity var(--dur-medium) var(--ease-smooth)}
.header__mobile-menu.open{transform:translateY(0);opacity:1;pointer-events:auto}
.header__mobile-menu nav{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--color-border)}
.header__mobile-menu nav a{font-size:17px;font-weight:500;color:var(--color-text);padding:18px 4px;border-bottom:1px solid var(--color-border);letter-spacing:.02em;text-decoration:none}
.header__mobile-menu nav a:hover{color:var(--color-primary)}
.header__mobile-menu nav a:last-child{border-bottom:none}

/* === Header Right + Lang Switcher === */
.header__right{display:flex;align-items:center;gap:12px}
.header__lang{position:relative;display:flex;align-items:center}
.header__lang-trigger{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-base);font-size:12px;font-weight:500;letter-spacing:.04em;color:var(--color-text-sub);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px 6px 12px;cursor:pointer;min-height:32px;-webkit-tap-highlight-color:transparent;transition:border-color var(--dur-fast) var(--ease-smooth),color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth)}
.header__lang-trigger:hover{border-color:var(--color-primary);color:var(--color-primary)}
.header__lang-globe{font-size:13px}
.header__lang-current{font-weight:700;letter-spacing:.06em;white-space:nowrap}
.header__lang-arrow{font-size:9px;margin-left:2px;transition:transform var(--dur-base) var(--ease-spring)}
.header__lang-trigger[aria-expanded="true"] .header__lang-arrow{transform:rotate(180deg)}
.header__lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:170px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 32px -8px rgba(0,0,0,0.18);padding:6px;display:flex;flex-direction:column;opacity:0;transform:translateY(-8px) scale(0.98);transform-origin:top right;pointer-events:none;visibility:hidden;transition:opacity var(--dur-base) var(--ease-smooth),transform var(--dur-base) var(--ease-out-quart),visibility 0s linear var(--dur-base);z-index:950}
.header__lang-menu.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;visibility:visible;transition:opacity var(--dur-base) var(--ease-smooth),transform var(--dur-base) var(--ease-out-quart),visibility 0s}

/* === Lang Switcher (rendered by GAS via lang_switcher_pc) === */
.lang-switcher{position:relative}
.lang-switcher-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--color-text-sub);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:6px 10px;cursor:pointer;min-height:32px}
.lang-switcher-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}
.lang-globe{font-size:13px}
.lang-current-flag{font-size:13px}
.lang-current{font-weight:700;letter-spacing:.06em}
.lang-chevron{font-size:9px;margin-left:2px;transition:transform var(--dur-base) var(--ease-spring)}
.lang-switcher-toggle[aria-expanded="true"] .lang-chevron{transform:rotate(180deg)}
.lang-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:170px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 10px 32px -8px rgba(0,0,0,0.18);padding:6px;display:flex;flex-direction:column;opacity:0;transform:translateY(-8px) scale(0.98);transform-origin:top right;pointer-events:none;visibility:hidden;transition:opacity var(--dur-base) var(--ease-smooth),transform var(--dur-base) var(--ease-out-quart),visibility 0s linear var(--dur-base);z-index:950}
.lang-switcher.is-open .lang-dropdown{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;visibility:visible;transition:opacity var(--dur-base) var(--ease-smooth),transform var(--dur-base) var(--ease-out-quart),visibility 0s}
.lang-item{display:flex !important;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;color:var(--color-text);text-decoration:none;border-radius:var(--radius-sm);transition:background-color var(--dur-fast) var(--ease-smooth)}
.lang-item:hover{background:rgba(0,0,0,0.05);color:var(--color-primary)}
.lang-item.is-active{background:var(--color-primary);color:#fff}
.lang-item-flag{font-size:14px}
.lang-item-name{font-size:13px}

/* Mobile Lang Switcher */
.lang-switcher-mobile{margin-top:28px;padding:22px 4px 0;border-top:3px solid var(--color-accent)}
.lang-switcher-mobile-toggle{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--color-text-sub);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;width:100%;justify-content:flex-start}
.lang-mobile-globe{font-size:14px}
.lang-mobile-flag{font-size:14px}
.lang-mobile-label{font-weight:700;flex:1;text-align:left}
.lang-mobile-chevron{font-size:9px;transition:transform var(--dur-base) var(--ease-spring)}
.lang-switcher-mobile-toggle[aria-expanded="true"] .lang-mobile-chevron{transform:rotate(180deg)}
.lang-mobile-dropdown{display:none;flex-direction:column;gap:4px;margin-top:8px}
.lang-switcher-mobile.is-open .lang-mobile-dropdown{display:flex}
.lang-mobile-item{display:flex !important;align-items:center;gap:8px;padding:10px 14px;font-size:14px;font-weight:500;color:var(--color-text);text-decoration:none;border-radius:var(--radius-sm)}
.lang-mobile-item:hover{background:rgba(0,0,0,0.05)}
.lang-mobile-item.is-active{background:var(--color-primary);color:#fff}

@media(max-width:1200px){
  .header__nav{display:none !important}
  .header__lang{display:none !important}
  .header__cta{display:none !important}
  .header__hamburger{display:flex !important}
}
@media(min-width:1201px){
  .header__hamburger{display:none !important}
}

/* === Hero === */
.hero{height:720px;min-height:var(--hero-min-height);background-color:var(--color-bg-dark);background-position:center;background-size:cover;background-repeat:no-repeat;position:relative;display:flex;align-items:center;overflow:hidden;animation:hero-bg-zoom 20s var(--ease-smooth) infinite alternate}
.hero::before{content:'';position:absolute;inset:0;background:var(--hero-overlay-color);pointer-events:none}
@keyframes hero-bg-zoom{from{background-size:110% auto}to{background-size:120% auto}}
@media(prefers-reduced-motion:reduce){.hero{animation:none}}
.hero__inner{position:relative;z-index:1;width:100%;max-width:1100px;margin:0 auto;padding:80px var(--section-padding-h);text-align:var(--hero-text-align)}
.hero__en{font-family:var(--font-display);font-size:12px;letter-spacing:.20em;color:#ffffff;text-transform:uppercase;margin-bottom:2px;display:inline-block;font-weight:700;opacity:.9}
.hero__title{font-family:var(--font-heading);font-size:clamp(28px,4.5vw,52px);font-weight:700;color:#ffffff;line-height:1.3;letter-spacing:.04em;margin-bottom:12px;word-break:keep-all;overflow-wrap:anywhere}
.hero__catch{font-family:var(--font-heading);font-size:clamp(16px,2vw,22px);color:rgba(255,255,255,.95);line-height:1.6;max-width:680px;margin-bottom:10px;font-weight:500;word-break:keep-all;overflow-wrap:anywhere}
.hero__sub{font-size:var(--size-hero-sub);color:rgba(255,255,255,.78);line-height:1.7;max-width:560px;margin-bottom:28px}
.hero__btns{display:flex;gap:16px;flex-wrap:wrap}
.hero__btns .btn{min-width:0;flex:none;justify-content:center;padding:16px 32px !important}

/* === Fact === */
.fact__section,#section_fact{padding:64px 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);overflow:hidden}
.fact__list{display:grid;grid-template-columns:1fr 1fr;column-gap:56px;max-width:860px;margin:0 auto;padding:0 var(--section-padding-h)}
.fact-row,.fact__row{display:grid;grid-template-columns:120px 1fr;gap:0 16px;padding:13px 0 10px;border-bottom:1px solid var(--color-border);align-items:center;min-height:54px}
.fact-row dt,.fact__row dt,.fact__key{font-size:12px;letter-spacing:.08em;color:var(--color-text);text-transform:uppercase;font-family:var(--font-display);padding-top:1px;word-break:break-word;overflow-wrap:break-word}
.fact-row dd,.fact__row dd,.fact__val{font-size:15px;font-weight:500;color:var(--color-text);line-height:1.7;margin:0;min-width:0;word-break:break-word;overflow-wrap:anywhere}
.fact-official-site a{color:var(--color-primary);font-weight:500}
.fact-official-note{font-size:12px;color:var(--color-text-light);margin-top:4px}

/* === Services === */
.services__list{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:800px;margin:0 auto;padding:0;list-style:none}
.service-item{display:flex;align-items:center;gap:14px;padding:14px 0;font-size:15px;font-weight:500;color:var(--color-text);line-height:1.5;min-height:60px;position:relative;list-style:none;line-break:auto;overflow-wrap:anywhere}
.service-item,.service-item > *{min-width:0}
.service-item::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(to right,transparent,var(--color-border) 20%,var(--color-border) 80%,transparent)}
.service-item:nth-child(odd){padding-right:32px}
.service-item:nth-child(even){padding-left:32px}
.service-item__check{width:22px;height:22px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.service-item__check i{font-size:10px;color:#fff}
.service-item:last-child:nth-child(odd){grid-column:1;max-width:100%}

/* === Achievements === */
.achievements__grid,.achievements-grid{display:grid;gap:20px;max-width:680px;margin:0 auto}
.achievements__grid.n1{grid-template-columns:1fr;max-width:340px}
.achievements__grid.n2{grid-template-columns:1fr 1fr}
.achievements__grid.n3{grid-template-columns:repeat(3,1fr);max-width:900px}
.achievements__grid.n4{grid-template-columns:repeat(2,1fr);max-width:680px}
@media(max-width:767px){
  .achievements__grid.n2,.achievements__grid.n3{grid-template-columns:1fr;max-width:340px}
  .achievements__grid.n4{grid-template-columns:repeat(2,1fr);max-width:100%}
}
.ach-d{border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}
.ach-d .d-body{flex:1;background:var(--color-accent);padding:28px 16px 20px;text-align:center;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.ach-d .d-body::before{content:'';position:absolute;top:-28px;right:-18px;width:96px;height:96px;border-radius:50%;background:rgba(255,255,255,.1)}
.ach-d .d-body::after{content:'';position:absolute;bottom:-36px;left:-22px;width:110px;height:110px;border-radius:50%;background:rgba(0,0,0,.08)}
.ach-d .d-num{font-family:var(--font-heading);font-size:var(--size-d-num);font-weight:600;color:#fff;line-height:1.1;letter-spacing:-.02em;position:relative;z-index:1}
.ach-d .d-foot{background:rgba(0,0,0,.32);padding:14px 20px;text-align:center}
.ach-d .d-lbl{font-size:clamp(14px,1.6vw,17px);font-weight:700;color:#fff;letter-spacing:.06em}
.ach-f{border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.1)}
.ach-f .f-body{flex:1;background:rgba(255,255,255,.05);padding:28px 16px 20px;text-align:center;position:relative;display:flex;align-items:center;justify-content:center}
.ach-f .f-body::after{content:'';position:absolute;bottom:0;left:10%;right:10%;height:1px;background:rgba(255,255,255,.08)}
.ach-f .f-num{font-family:var(--font-heading);font-size:var(--size-f-num);font-weight:600;color:var(--color-accent);line-height:1.1;letter-spacing:-.02em}
.ach-f .f-foot{background:var(--color-accent);padding:15px 20px;text-align:center}
.ach-f .f-lbl{font-size:clamp(12px,1.2vw,15px);font-weight:700;color:#fff;letter-spacing:.06em}

/* === Features === */
.features__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 32px}
@media(max-width:767px){.features__grid{grid-template-columns:1fr;gap:32px}}
.feature-item{display:flex;gap:20px;align-items:flex-start;min-width:0}
.feature-item__num{font-family:var(--font-display);font-size:52px;font-weight:600;color:var(--color-accent);line-height:1;flex-shrink:0;width:60px;letter-spacing:-.02em}
.feature-item__body{flex:1;min-width:0}
.feature-item__title{font-family:var(--font-heading);font-size:var(--size-feature-title);font-weight:700;color:var(--color-primary);margin-bottom:10px;line-height:1.5;min-width:0}
.feature-item__desc{font-size:var(--size-feature-desc);color:var(--color-text-sub);line-height:1.7}

/* === Voice === */
#section_voice{overflow:hidden}
.voice__scroll-wrap{overflow-x:auto;padding-bottom:16px;margin-right:calc(-1 * var(--section-padding-h));padding-right:var(--section-padding-h);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;scroll-snap-type:x mandatory;scroll-padding-left:var(--section-padding-h);-webkit-mask-image:linear-gradient(to right,black 88%,transparent);mask-image:linear-gradient(to right,black 88%,transparent)}
.voice__scroll-wrap::-webkit-scrollbar{height:4px}
.voice__scroll-wrap::-webkit-scrollbar-track{background:transparent}
.voice__scroll-wrap::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}
.voice__grid{display:flex;gap:20px}
.voice-card{flex-shrink:0;width:320px;background:var(--color-bg);border:var(--card-border);border-radius:var(--radius-lg);padding:20px 24px 18px;box-shadow:var(--card-shadow);scroll-snap-align:start}
.voice-card__stars{color:#f5a623;font-size:15px;letter-spacing:2px;margin-bottom:10px;display:block}
.voice-card__title{font-family:var(--font-heading);font-size:clamp(13px,1.3vw,15px);font-weight:700;color:var(--color-primary);margin-bottom:10px;line-height:1.4;overflow-wrap:break-word;word-break:normal;line-break:auto;text-wrap:auto}
.voice-card__text{font-size:14px;line-height:1.7;color:var(--color-text-sub);word-break:normal;overflow-wrap:break-word;line-break:auto;text-wrap:auto;hyphens:none;hanging-punctuation:none}
.voice-card__meta{display:flex;align-items:center;gap:10px;border-top:1px solid var(--color-border);padding-top:12px;margin-top:14px}
.voice-card__avatar{width:34px;height:34px;border-radius:50%;background:var(--color-bg-alt);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;overflow:hidden}
.voice-card__avatar img{width:100%;height:100%;object-fit:cover}
.voice-card__name{font-size:13px;font-weight:700;color:var(--color-primary)}
.voice-card__detail{font-size:11px;color:var(--color-text-light);margin-top:2px}

/* === Operator === */
.op-grid{display:flex;flex-direction:column;gap:16px;max-width:800px;margin:0 auto}
.op-card{background:var(--color-bg);border:var(--card-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;box-shadow:var(--card-shadow);position:relative;transition:box-shadow var(--dur-medium) var(--ease-smooth),background var(--dur-medium) var(--ease-smooth)}
/* リーダーカード強調（汎用フォールバック） */
.op-card.is-leader{
  background:color-mix(in srgb,var(--color-accent) 14%,#ffffff) !important;
  box-shadow:0 12px 32px -8px color-mix(in srgb,var(--color-accent) 38%,transparent) !important;
  border:1px solid var(--op-accent,var(--color-accent)) !important;
  margin-bottom:16px;
}
.op-card.is-leader .op-name{font-size:19px;color:var(--color-primary) !important}
.op-card.is-leader .op-body{position:relative;z-index:1;background:transparent}
.op-card::after{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--op-accent,var(--color-accent));pointer-events:none;z-index:2}
body[data-theme="navy"]    {--op-accent:#D4A040}
body[data-theme="crimson"] {--op-accent:#222222}
body[data-theme="emerald"] {--op-accent:#C76E4A}
body[data-theme="sky"]     {--op-accent:#FFC000}
.op-photo-c{width:120px;flex-shrink:0;background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center}
.op-avatar-c{width:76px;height:76px;border-radius:50%;background:var(--color-bg);border:3px solid var(--color-accent);display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--color-border);overflow:hidden}
.op-photo-d{width:120px;flex-shrink:0;background:var(--op-photo-bg,var(--color-primary));display:flex;align-items:center;justify-content:center}
/* operator アバター色バリエーション（複数人時の個性表現） */
.op-card:nth-child(1){--op-photo-bg:var(--color-primary)}
.op-card:nth-child(2){--op-photo-bg:color-mix(in srgb,var(--color-primary) 75%,var(--color-accent))}
.op-card:nth-child(3){--op-photo-bg:color-mix(in srgb,var(--color-primary) 75%,white)}
.op-card:nth-child(4){--op-photo-bg:color-mix(in srgb,var(--color-primary) 50%,var(--color-accent))}
.op-card:nth-child(5){--op-photo-bg:color-mix(in srgb,var(--color-primary) 50%,white)}
/* crimson は accent が深い赤茶のため、白ミックスで明るい階調に */
body[data-theme="crimson"] .op-card:nth-child(2){--op-photo-bg:color-mix(in srgb,var(--color-primary) 80%,white)}
body[data-theme="crimson"] .op-card:nth-child(3){--op-photo-bg:color-mix(in srgb,var(--color-primary) 70%,white)}
body[data-theme="crimson"] .op-card:nth-child(4){--op-photo-bg:color-mix(in srgb,var(--color-primary) 40%,#cccccc)}
body[data-theme="crimson"] .op-card:nth-child(5){--op-photo-bg:color-mix(in srgb,var(--color-primary) 20%,#a0a0a0)}
body[data-theme="emerald"] .op-card:nth-child(1){--op-photo-bg:color-mix(in srgb,var(--color-primary) 70%,white)}
.op-avatar-d{width:76px;height:76px;border-radius:50%;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-size:30px;color:rgba(255,255,255,.5);overflow:hidden}
.op-avatar-c img,.op-avatar-d img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.op-body{padding:18px 28px 18px 22px;flex:1}
.op-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.12em;background:var(--color-primary);color:#fff;padding:3px 10px;border-radius:var(--radius-btn);margin-bottom:8px}
.op-badge--leader{background:var(--color-accent)}
.op-badge--staff{background:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}
.op-name{font-family:var(--font-heading);font-size:clamp(15px,1.6vw,17px);font-weight:700;color:var(--color-primary);margin-bottom:3px;overflow-wrap:break-word;min-width:0}
.op-title{display:none}
.op-desc{font-size:14px;color:var(--color-text-sub);line-height:1.7;margin-bottom:10px}
.op-licenses{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px;align-items:flex-start}
.op-lic-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--color-primary);border:1px solid var(--color-primary);padding:2px 9px;border-radius:var(--radius-btn);white-space:nowrap;align-self:flex-start;height:auto}

/* === Flow === */
.flow__wrap{max-width:760px;margin:0 auto}
.flow-step{display:grid;grid-template-columns:80px 1fr;gap:0 32px;padding-bottom:56px;align-items:start}
.flow-step:last-child{padding-bottom:0}
.flow-step-number,.flow-step__num{font-family:var(--font-display);font-size:clamp(52px,6vw,72px);font-weight:700;letter-spacing:-0.04em;line-height:1;color:var(--color-accent);display:block;opacity:0.85;padding-top:4px}
.flow-step-content,.flow-step__body{display:flex;flex-direction:column;min-width:0}
.flow-step__icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--color-accent);color:#fff;font-size:18px;margin-bottom:10px;flex-shrink:0}
.flow-step-title,.flow-step__title{font-family:var(--font-heading);font-size:var(--size-flow-title);font-weight:700;color:var(--color-primary);margin-bottom:8px;line-height:1.4}
.flow-step-desc,.flow-step__desc{font-size:var(--size-flow-desc);color:var(--color-text-sub);line-height:1.7}

/* === Pricing === */
.pricing__wrap{max-width:900px;margin:0 auto}
.pricing__table-outer{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.pricing__table--head{width:100%;border-collapse:collapse;table-layout:fixed}
.pricing__table--head thead th{background:var(--color-primary);padding:13px 20px;font-size:15px;font-weight:700;letter-spacing:.08em;color:var(--color-white);text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.pricing__table--head thead th:last-child{border-right:none}
/* ★ 5プラン以下: スクロールなし / 6プラン以上 (.has-scroll): 常時スクロールバー表示 */
.pricing__scroll-wrap{overflow:visible}
.pricing__scroll-wrap.has-scroll{max-height:560px;overflow-y:scroll;overflow-x:hidden;scrollbar-width:auto;scrollbar-color:var(--color-accent) var(--color-bg-alt)}
.pricing__scroll-wrap.has-scroll::-webkit-scrollbar{width:8px}
.pricing__scroll-wrap.has-scroll::-webkit-scrollbar-track{background:var(--color-bg-alt);border-radius:4px}
.pricing__scroll-wrap.has-scroll::-webkit-scrollbar-thumb{background:var(--color-accent);border-radius:4px;border:2px solid var(--color-bg-alt)}
.pricing__scroll-wrap.has-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-accent-dark)}
.pricing__table--body{width:100%;border-collapse:collapse;table-layout:fixed}
.pricing__table--head col.col-plan,.pricing__table--body col.col-plan{width:25%}
.pricing__table--head col.col-note,.pricing__table--body col.col-note{width:50%}
.pricing__table--head col.col-price,.pricing__table--body col.col-price{width:25%}
.pricing__table--body tbody tr{border-bottom:1px solid var(--color-border)}
.pricing__table--body tbody tr:last-child{border-bottom:none}
.pricing__table--body tbody tr:nth-child(even){background:rgba(197,160,89,.05)}
.pricing__table--body tbody td{padding:16px 20px;font-size:15px;color:var(--color-text);vertical-align:middle;border-right:1px solid var(--color-border);line-height:1.7}
.pricing__table--body tbody td:last-child{border-right:none}
.pricing__plan{font-weight:700;color:var(--color-text);font-size:clamp(12px,1.3vw,14px);vertical-align:middle;overflow-wrap:break-word;text-align:center}
.pricing__price{text-align:center !important;vertical-align:middle !important;font-family:'Noto Sans JP',sans-serif !important;font-size:clamp(13px,1.6vw,18px) !important;font-weight:700 !important;color:var(--color-accent);letter-spacing:.02em;white-space:normal;overflow-wrap:break-word}
.pricing__note{font-size:14px;line-height:1.7;color:var(--color-text-sub);vertical-align:middle}
.pricing__table--body tbody td.pricing__price{text-align:center !important;vertical-align:middle !important}

/* === FAQ (details/summary accordion) === */
.faq__list{max-width:760px;margin:0 auto;border-top:1px solid var(--color-border)}
.faq-item{border-bottom:1px solid var(--color-border)}
.faq-item__q{display:flex;align-items:flex-start;gap:14px;padding:20px 4px 16px;cursor:pointer;list-style:none;transition:background-color var(--dur-fast) var(--ease-smooth)}
.faq-item__q::marker,.faq-item__q::-webkit-details-marker{display:none}
@media(hover:hover){.faq-item__q:hover{background:rgba(0,0,0,0.025)}}
.faq-item__q-badge{width:36px;height:36px;border-radius:var(--radius-btn);background:var(--color-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--color-white);flex-shrink:0;margin-top:-6px;transition:transform var(--dur-base) var(--ease-spring)}
@media(hover:hover){.faq-item__q:hover .faq-item__q-badge{transform:scale(1.08)}}
.faq-item__q-text{font-size:clamp(14px,1.4vw,16px);font-weight:700;color:var(--color-primary);line-height:1.5;flex:1;min-width:0;word-break:normal;overflow-wrap:break-word;line-break:auto;text-wrap:auto}
.faq-item__q-icon{font-size:11px;color:var(--color-text-light);flex-shrink:0;margin-top:5px;display:inline-block;transition:transform var(--dur-base) var(--ease-spring)}
details.faq-item[open] .faq-item__q-icon{transform:rotate(180deg)}
.faq-item__a{position:relative;display:block;padding:20px 4px 20px 50px;margin-top:0;overflow:hidden;max-height:0;opacity:0;transition:max-height var(--dur-medium) var(--ease-out-quart),opacity var(--dur-base) var(--ease-smooth)}
details.faq-item[open] .faq-item__a{opacity:1;max-height:1000px}
.faq-item__a-badge{position:absolute;left:4px;top:15px;width:36px;height:36px;border-radius:var(--radius-btn);background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--color-accent);transform:translateY(8px);opacity:0;transition:transform var(--dur-medium) var(--ease-spring),opacity var(--dur-base) var(--ease-smooth);transition-delay:80ms}
details.faq-item[open] .faq-item__a-badge{transform:translateY(0);opacity:1}
.faq-item__a-text{font-size:15px;color:var(--color-text-sub);line-height:1.7;word-break:normal;overflow-wrap:break-word;line-break:auto;text-wrap:auto}

/* === Access === */
.access__inner{display:grid;grid-template-columns:4fr 3fr;gap:40px;align-items:stretch;max-width:840px;margin:0 auto}
.access__title{font-family:var(--font-heading);font-size:18px;font-weight:700;color:var(--color-primary);margin-bottom:20px;margin-top:0}
.access__table{width:100%;border-collapse:collapse}
.access__table tr td{padding:11px 0;border-bottom:1px solid var(--color-border);font-size:15px;vertical-align:top;line-height:1.7}
.access__table tr:last-child td{border-bottom:none}
.access__table td:first-child{font-weight:700;color:var(--color-primary);width:88px;font-size:13px;letter-spacing:.04em;padding-right:20px;white-space:nowrap}
.access__table td:last-child{color:var(--color-text-sub);padding-left:4px}
/* fact / access セクション内のリンクは太字のみ、色は親要素を継承（テーマカラーを上書きしない） */
.fact-row dd a,.fact__row dd a,.access__table td a,.access-info dd a,.access-info dt a{color:inherit !important;font-weight:700;text-decoration:none}
.fact-row dd a:hover,.fact__row dd a:hover,.access__table td a:hover,.access-info dd a:hover{opacity:.7}
.access__map{height:100%;min-height:300px;border-radius:var(--radius-md);overflow:hidden;border:var(--card-border);background:var(--color-bg-alt)}
.access__map iframe{width:100%;height:100%;min-height:300px;border:0;display:block}
.access__info a{color:var(--color-primary)}
/* LP HTML クラス対応 */
.access-wrap{display:grid;grid-template-columns:4fr 3fr;gap:40px;align-items:stretch;max-width:840px;margin:0 auto}
.access-map{height:100%;min-height:300px;border-radius:var(--radius-md);overflow:hidden;border:var(--card-border);background:var(--color-bg-alt)}
.access-map iframe{width:100%;height:100%;min-height:300px;border:0;display:block}
.access-info dt{font-weight:700;color:var(--color-primary);font-size:13px;letter-spacing:.04em}
.access-info dd a{color:inherit !important;font-weight:700;text-decoration:none}
.access-info dd a:hover{opacity:.7}

/* === CTA === */
.cta-section{padding:80px var(--section-padding-h);text-align:center;position:relative;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}
.cta-section > *{position:relative;z-index:1}
/* 背景画像セット時：テーマカラーグラデオーバーレイ */
.cta-section--has-bg::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,
    color-mix(in srgb,var(--color-primary) 75%,transparent) 0%,
    color-mix(in srgb,var(--color-accent) 65%,transparent) 100%);
  pointer-events:none;
  z-index:0;
}
.cta-section--has-bg .cta-section__title{color:#fff}
.cta-section--has-bg .cta-section__sub,
.cta-section--has-bg .cta-section__note{color:rgba(255,255,255,.85)}
.cta-section__title{margin:0 0 12px;font-family:var(--font-heading);font-size:var(--size-cta-title);font-weight:700;color:var(--color-primary);letter-spacing:.04em}
.cta-section__sub{font-size:16px;color:rgba(0,0,0,.55);margin-bottom:32px;line-height:1.6;max-width:560px;margin-left:auto;margin-right:auto}
.cta-section__btns{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.cta-section__btns .btn{flex:none;justify-content:center;padding:16px 40px !important;font-size:16px !important;min-width:240px}
.cta-section__note{font-size:12px;color:rgba(0,0,0,.4);margin-top:16px}
.cta-section .btn--primary{background:var(--color-primary);color:var(--color-white);border:none}
.cta-section .btn--outline{background:#ffffff;color:var(--color-primary);border:none}

/* Hero buttons consistent width on desktop */
@media(min-width:768px){
  .hero__btns .btn{min-width:200px}
  /* PC版: 代表バッジを氏名と同じ行にインライン配置（全テーマ共通） */
  .op-card.is-leader .op-badge{display:inline;margin-bottom:0;margin-right:6px;vertical-align:middle;font-size:9px}
  .op-card.is-leader .op-name{display:inline;vertical-align:middle}
}

/* === Footer === */
.footer{background:var(--color-bg-dark);color:rgba(255,255,255,.65);padding:48px var(--section-padding-h) 28px;overflow:hidden}
.footer__inner{max-width:var(--container-width);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:48px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1)}
.footer__logo-link{display:inline-block;margin-bottom:12px}
.footer__logo-img{height:44px;width:auto;display:block;filter:drop-shadow(0 0 10px rgba(255,255,255,.65))}
.footer__logo{font-family:var(--font-heading);font-size:18px;font-weight:700;color:var(--color-white);margin-bottom:4px}
.footer__tagline{font-size:12px;line-height:1.9;margin-bottom:2px}
.footer__col-title{font-size:10px;font-weight:700;letter-spacing:.14em;color:var(--color-accent);margin-bottom:8px;text-transform:uppercase}
.footer__links{display:flex;flex-direction:column;gap:4px;list-style:none;padding:0;margin:0;min-width:0}
.footer__links li{list-style:none}
.footer__links a{font-size:12px;color:rgba(255,255,255,.55);text-decoration:none;transition:color .2s;overflow-wrap:anywhere;word-break:break-all}
.footer__links a:hover{color:var(--color-white)}
.footer__bottom{max-width:var(--container-width);margin:20px auto 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;font-size:11px;color:rgba(255,255,255,.35)}
.footer__bottom > span{grid-column:2;text-align:center}
.footer__bottom .footer__lang{grid-column:3;justify-self:end}
.footer__lang{display:none}
.footer__lang a{font-size:10px;padding:3px 8px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);color:rgba(255,255,255,.55);text-decoration:none;transition:border-color var(--dur-fast) var(--ease-smooth),color var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth)}
.footer__lang a:hover{border-color:rgba(255,255,255,.5);color:#fff}
.footer__lang a.is-active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}

/* === Mobile responsive === */
@media(max-width:767px){
  :root{--section-padding-v:40px;--section-padding-h:16px}
  .section-heading{margin-bottom:24px}
  .section-heading__ja{font-size:clamp(20px,5.5vw,28px) !important;max-width:100% !important}
  .section-heading::before{font-size:13px !important}
  .hero{height:auto;min-height:520px;padding:0;background-size:cover !important;animation:none}
  .hero__inner{padding:64px 16px 56px}
  .hero__en{white-space:normal !important;word-break:normal;overflow-wrap:break-word}
  .hero__title{font-size:clamp(26px,7vw,36px) !important;line-height:1.25 !important}
  .hero__sub{font-size:15px !important;max-width:100% !important}
  .hero__btns{display:none}
  .fact__list{grid-template-columns:1fr;column-gap:0;max-width:100%}
  .services__list{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .service-item{font-size:13px;min-height:auto;gap:8px;padding:10px 0}
  .service-item:nth-child(odd){padding-right:8px}
  .service-item:nth-child(even){padding-left:8px}
  .service-item__check{width:18px;height:18px}
  .features__grid{grid-template-columns:1fr;gap:24px}
  .flow__wrap{max-width:100%}
  .flow-step{grid-template-columns:56px 1fr;gap:0 16px}
  .flow-step__num,.flow-step-number{font-size:clamp(36px,10vw,48px) !important}
  .voice-card{width:260px}
  .op-card{display:grid;grid-template-columns:36% 1fr;overflow:hidden;position:relative}
  /* モバイル: ::after = 全カード共通の左帯ストライプ（内側absolute→overflow:hiddenでカードと完全同一角丸） */
  .op-card::after{display:block !important;content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--op-accent,var(--color-accent));pointer-events:none;z-index:4}
  /* ::before = 写真/テキスト区切り線 */
  .op-card::before{content:"";position:absolute;left:36%;top:0;bottom:0;width:1px;background:var(--color-primary);opacity:0.35;z-index:2}
  /* photo背景のborder-radiusを0に: overflow:hiddenが角丸クリップを担当し二重radius問題を解消 */
  .op-photo-d,.op-photo-c{grid-column:1;grid-row:1/6;width:auto;height:auto;flex-direction:column;justify-content:flex-start;align-items:center;padding:16px 8px 48px;gap:6px;border-radius:0}
  .op-avatar-d,.op-avatar-c{width:56px;height:56px;font-size:20px;flex-shrink:0}
  .op-body{display:contents}
  /* バッジ: 写真(56px)+top padding(16px)=72px, やや上気味に76px */
  .op-badge{position:absolute;top:76px;left:18%;transform:translateX(-50%);width:auto;max-width:calc(36% - 12px);font-size:clamp(7px,2.1vw,9px);padding:2px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;z-index:5}
  .op-card.is-leader .op-badge{border:1px solid rgba(255,255,255,0.7)}
  body[data-theme="emerald"] .op-card .op-name{color:#ffffff !important;text-shadow:0 1px 3px rgba(0,0,0,0.6)}
  /* 代表: 名前はカード下部に固定 */
  .op-card.is-leader .op-name{position:absolute;left:0;width:36%;top:96px;bottom:auto;text-align:center;font-size:13px !important;line-height:1.3;margin:0;padding:0 4px;z-index:3}
  /* 代表以外: 名前は写真の直下に配置 */
  .op-card:not(.is-leader) .op-name{position:absolute;left:0;width:36%;top:86px;bottom:auto;text-align:center;font-size:13px !important;line-height:1.3;margin:0;padding:0 4px;z-index:3}
  /* ★ スマホ: licenseは右カラムのop-descの上に配置 */
  .op-licenses{grid-column:2;grid-row:1;margin:14px 24px 6px 16px;gap:4px;justify-content:flex-start;flex-wrap:wrap}
  .op-lic-badge{font-size:clamp(9px,2.6vw,11px);padding:3px 8px;white-space:normal;max-width:100%;word-break:keep-all;overflow-wrap:anywhere}
  .op-desc{grid-column:2;grid-row:2/6;padding:8px 24px 14px 16px;font-size:13px;align-self:start;word-break:break-word;overflow-wrap:anywhere;min-width:0}
  .access__inner{grid-template-columns:1fr;gap:24px}
  .access__map{height:260px;min-height:260px}
  .access__table{table-layout:fixed;width:100%}
  .access__table td:first-child{white-space:normal;width:7.5em;word-break:keep-all;overflow-wrap:break-word}
  .access__table td:last-child{word-break:break-word;overflow-wrap:anywhere}
  .access-wrap{grid-template-columns:1fr;gap:24px}
  .access-map{height:260px;min-height:260px}
  .lp-hero{background-size:cover !important;background-position:center center !important}
  #section_pricing .pricing__wrap{margin-left:calc(-1 * var(--section-padding-h));margin-right:calc(-1 * var(--section-padding-h))}
  .pricing__table--head thead th{padding:10px 8px;font-size:11px;word-break:keep-all;overflow-wrap:break-word}
  .pricing__table--body tbody td{padding:12px 8px;font-size:13px;word-break:keep-all;overflow-wrap:break-word}
  .pricing__price{font-size:clamp(11px,3vw,14px) !important;white-space:normal !important;overflow-wrap:break-word}
  .cta-section{padding:56px 16px}
  .cta-section__title{font-size:clamp(20px,5vw,26px) !important}
  .cta-section__btns{flex-direction:row;gap:12px;flex-wrap:nowrap;justify-content:center}
  .cta-section__btns .btn{flex:1 !important;padding:14px 16px !important;font-size:14px !important;max-width:220px;min-width:0 !important}
  .hero__btns .btn{min-width:0 !important}
  .footer__inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 20px;padding-bottom:24px}
  .footer__col-info,.footer__col-links,.footer__col-contact{min-width:0}
  .footer__logo{font-size:15px;line-height:1.4;word-break:break-word}
  .footer__tagline,.footer__col-title,.footer__links a{word-break:break-word;overflow-wrap:anywhere}
  .footer__col-info{grid-column:1;grid-row:1 / 3}
  .footer__col-links{grid-column:2;grid-row:1}
  .footer__col-contact{grid-column:2;grid-row:2}
  /* グループ内は詰めて、グループ間は広げてメリハリを出す */
  .footer__col-links .footer__col-title,
  .footer__col-contact .footer__col-title{margin-bottom:4px}
  .footer__col-links .footer__links{gap:2px}
  .footer__col-links .footer__links a,
  .footer__col-contact .footer__links a{line-height:1.4}
  .footer__col-contact .footer__col-title[style*="margin-top"]{margin-top:16px !important}
  .footer{padding:40px 16px 24px}
}

/* === Hero entry animation === */
.hero__en,.hero__title,.hero__catch,.hero__sub,.hero__btns{opacity:0;transform:translateY(16px);animation:hero-in var(--dur-slow) var(--ease-out-quart) forwards}
.hero__en{animation-delay:100ms}
.hero__title{animation-delay:240ms}
.hero__catch{animation-delay:380ms}
.hero__sub{animation-delay:500ms}
.hero__btns{animation-delay:640ms}
@keyframes hero-in{to{opacity:1;transform:translateY(0)}}

/* === Scroll reveal === */
.reveal{opacity:0;transform:translateY(16px);transition:opacity var(--dur-slow) var(--ease-out-quart),transform var(--dur-slow) var(--ease-out-quart)}
.reveal.visible{opacity:1;transform:translateY(0)}

/* === Hover micro-interactions === */
.btn{position:relative;transition:transform var(--dur-fast) var(--ease-spring),box-shadow var(--dur-fast) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth),filter var(--dur-fast) var(--ease-smooth);will-change:transform}
.btn i{transition:transform var(--dur-fast) var(--ease-spring)}
@media(hover:hover){
  .btn--primary:hover{transform:translateY(-3px);box-shadow:0 8px 20px -4px color-mix(in srgb,var(--btn-primary-bg) 45%,transparent);filter:brightness(1.05)}
  .btn--white:hover,.btn--outline:hover{transform:translateY(-2px);box-shadow:0 6px 16px -4px rgba(0,0,0,0.15)}
  .btn:hover .fa-arrow-down{transform:scale(1.12)}
  .btn:hover .fa-calendar-check{transform:scale(1.12)}
  .btn:hover .fa-phone{animation:phone-shake 0.6s var(--ease-smooth)}
  .voice-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px -8px rgba(0,0,0,0.15)}
  .voice-card:hover .voice-card__stars{text-shadow:0 0 12px color-mix(in srgb,currentColor 55%,transparent)}
  .op-card:hover{transform:translateY(-6px);box-shadow:0 16px 32px -8px rgba(0,0,0,0.14)}
  .op-card:hover .op-photo-d,.op-card:hover .op-photo-c{filter:brightness(1.08) saturate(1.1)}
  .op-card:hover .op-badge{transform:translateY(-1px)}
  .ach-d:hover,.ach-f:hover{transform:translateY(-4px);box-shadow:0 12px 28px -8px rgba(0,0,0,0.25)}
  .ach-d:hover .d-num,.ach-f:hover .f-num{transform:scale(1.06)}
  .pricing__table--body tbody tr:hover{background:color-mix(in srgb,var(--color-accent) 8%,transparent) !important}
  .pricing__table--body tbody tr:hover .pricing__price{transform:scale(1.05)}
  .service-item:hover{transform:translateX(6px);color:var(--color-primary)}
  .service-item:hover .service-item__check{transform:scale(1.15) rotate(-8deg)}
  .footer__links a:hover{color:#fff !important;transform:translateX(2px)}
  .header__nav a:hover{color:var(--color-primary)}
  .header__nav a:hover::after{width:100%}
}
.service-item{transition:transform var(--dur-medium) var(--ease-out-quart),color var(--dur-base) var(--ease-smooth)}
.service-item__check{transition:transform var(--dur-medium) var(--ease-spring),background-color var(--dur-base) var(--ease-smooth)}
.voice-card{transition:transform var(--dur-medium) var(--ease-spring),box-shadow var(--dur-medium) var(--ease-smooth)}
.voice-card__stars{transition:text-shadow var(--dur-base) var(--ease-smooth)}
.op-card{transition:transform var(--dur-medium) var(--ease-spring),box-shadow var(--dur-medium) var(--ease-smooth)}
.op-photo-d,.op-photo-c{transition:filter var(--dur-base) var(--ease-smooth)}
.op-badge{transition:transform var(--dur-base) var(--ease-spring)}
.ach-d,.ach-f{transition:transform var(--dur-medium) var(--ease-spring),box-shadow var(--dur-medium) var(--ease-smooth)}
.ach-d .d-num,.ach-f .f-num{display:inline-block;transition:transform var(--dur-base) var(--ease-spring)}
.pricing__table--body tbody tr{transition:background-color var(--dur-fast) var(--ease-smooth)}
.pricing__price{transition:transform var(--dur-fast) var(--ease-spring)}
.header__nav a{position:relative;transition:color var(--dur-fast) var(--ease-smooth)}
.header__nav a::after{content:'';position:absolute;bottom:-2px;left:50%;width:0;height:1.5px;background:currentColor;transform:translateX(-50%);transition:width var(--dur-base) var(--ease-smooth)}
.footer__links a{display:inline-block;transition:color var(--dur-fast) var(--ease-smooth),transform var(--dur-fast) var(--ease-smooth)}
.btn:active{transform:translateY(0) scale(0.97);box-shadow:0 2px 4px rgba(0,0,0,0.15);filter:brightness(0.95);transition-duration:var(--dur-instant)}
@keyframes phone-shake{0%,100%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(3deg)}}

/* === Theme-specific button hover === */
.hero .btn,.cta-section .btn,.header__cta .btn{transition:transform var(--dur-medium) var(--ease-out-quart),box-shadow var(--dur-medium) var(--ease-smooth),background-color var(--dur-fast) var(--ease-smooth),filter var(--dur-medium) var(--ease-smooth)}
@media(hover:hover){
  .hero .btn:hover,.cta-section .btn:hover{transform:translateY(-3px)}
  .header__cta .btn:hover{transform:translateY(-3px)}
  body[data-theme="navy"] .btn--primary:hover{transform:translateY(-3px);box-shadow:0 12px 28px -8px color-mix(in srgb,var(--btn-primary-bg) 40%,transparent)}
  body[data-theme="crimson"] .btn--primary:hover{transform:translateY(-3px);box-shadow:0 10px 24px -4px color-mix(in srgb,var(--btn-primary-bg) 60%,transparent)}
  body[data-theme="emerald"] .btn--primary:hover{transform:translateY(-3px) scale(1.02)}
  body[data-theme="crimson"] .cta-section .btn--primary:hover,body[data-theme="crimson"] .cta-section .btn--outline:hover{box-shadow:0 8px 20px -4px rgba(255,255,255,0.30);filter:brightness(1.10)}
}

/* === Header scrolled === */
.header.is-scrolled{background:rgba(255,255,255,0.85);backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);box-shadow:0 4px 20px -8px rgba(0,0,0,0.1)}

section[id]{scroll-margin-top:calc(var(--header-h) + 16px)}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:0.01ms !important;transition-duration:0.01ms !important}
}

/* ============================================================
/* ============================================================
   THEME: navy (Sansan / Apple系)
   ============================================================ */
body[data-theme="navy"]{
  --color-primary:#042a6d;--color-primary-dark:#021d4d;--color-primary-light:#e8f0fc;
  --color-bg:#ffffff;--color-bg-alt:#f5f5f7;--color-bg-dark:#042a6d;
  --color-border:#e0e0e0;--color-text:#1d1d1f;
  --color-text-sub:rgba(0,0,0,0.54);--color-text-light:rgba(0,0,0,0.38);
  --font-heading:"SF Pro Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --radius-btn:980px;--radius-lg:16px;--radius-md:8px;
  --hero-text-align:center;--hero-overlay-color:rgba(4,42,109,0.62);
  --section-padding-v:80px;--heading-letter-spacing:-0.01em;
  --btn-primary-bg:#2566d4;--btn-primary-color:#ffffff;
  --btn-primary-border:none;--btn-primary-shadow:none;
  --card-shadow:rgba(0,0,0,0.22) 3px 5px 30px 0px;--card-border:none;
  --color-accent:#2566d4;--color-accent-dark:#1a4fb0;
  --color-accent2:#D4A040;--color-accent2-dark:#B8872E;
  letter-spacing:-0.022em;line-height:1.47;
  /* サイズ差分 */
  --size-hero-sub:17px;
  --size-section-heading-ja:clamp(22px,3vw,36px);
  --size-cta-title:clamp(28px,3.5vw,40px);
  --size-feature-desc:15px;
  --size-flow-desc:15px;
}
body[data-theme="navy"] .hero__inner{text-align:center}
body[data-theme="navy"] .hero__btns{justify-content:center}
body[data-theme="navy"] .hero::before{background:radial-gradient(ellipse at 50% 50%, rgba(20,40,80,0.05) 0%, rgba(15,30,60,0.35) 55%, rgba(5,15,40,0.70) 100%)}
body[data-theme="navy"] .hero__en{display:inline-block;background:none;border:none;padding:0;font-size:13px;letter-spacing:0.18em;color:#ffffff;font-weight:700}
body[data-theme="navy"] .hero__catch,body.navy .hero__catch{margin-left:auto !important;margin-right:auto !important;text-align:center}
body[data-theme="navy"] .hero__title{font-size:clamp(36px,5.5vw,56px);font-weight:600;line-height:1.07;letter-spacing:-0.022em;color:#ffffff}
body[data-theme="navy"] .hero__sub{font-size:17px;line-height:1.47;letter-spacing:-0.022em;margin-left:auto;margin-right:auto}
body[data-theme="navy"] .hero .btn{border-radius:980px;padding:14px 28px;font-size:16px;font-weight:500}
body[data-theme="navy"] .hero .btn--primary{background:#2566d4;color:#fff;border:none;box-shadow:none}
body[data-theme="navy"] .hero .btn--white{background:#ffffff;color:#042a6d;border:none;font-weight:600}
body[data-theme="navy"] .header{background:linear-gradient(135deg,#042a6d,#021d4d) !important;border-bottom:none !important}
body[data-theme="navy"] .header__logo{color:#ffffff}
body[data-theme="navy"] .header__logo-name,body.navy .header__logo-name{color:#ffffff !important}
body[data-theme="navy"] .header__logo-sub{color:rgba(255,255,255,0.7) !important}
body[data-theme="navy"] .header__nav a{color:rgba(255,255,255,0.80)}
body[data-theme="navy"] .header__cta .btn{background:#2566d4 !important;color:#ffffff !important;border:none !important;box-shadow:none !important}
body[data-theme="navy"] .header__hamburger::before,body[data-theme="navy"] .header__hamburger::after{background:rgba(255,255,255,0.9) !important}
body[data-theme="navy"] .header__hamburger::before{box-shadow:0 7px 0 rgba(255,255,255,0.9) !important}
body[data-theme="navy"] .section-heading{text-align:left}
body[data-theme="navy"] .section-heading::before{font-size:16px;letter-spacing:0.12em;font-weight:700;text-align:left;color:#D4A040 !important}
body[data-theme="navy"] .section-heading__ja{font-size:clamp(22px,3vw,36px);font-weight:700;line-height:1.2;letter-spacing:-0.01em;color:#042a6d;text-align:left;margin-left:0;margin-right:0}
body[data-theme="navy"] .section-heading__ja::after{left:0 !important;transform:none !important;margin:12px 0 0;width:40px;height:3px;background:#D4A040;border-radius:0}
body[data-theme="navy"] .voice-card__stars{color:#D4A040}
body[data-theme="navy"] .voice-card{border:none;box-shadow:0 14px 32px -10px rgba(0,0,0,0.20),0 4px 10px -6px rgba(0,0,0,0.08)}
body[data-theme="navy"] .voice-card__title{color:#042a6d !important}
body[data-theme="navy"] .voice-card__name{color:#042a6d !important}
body[data-theme="navy"] .op-card{background:#ffffff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.08)}
body[data-theme="navy"] .op-card.is-leader,body.navy .op-card.is-leader{border:1px solid #D4A040 !important;box-shadow:0 4px 20px rgba(212,160,64,0.20) !important}
body[data-theme="navy"] .op-name{color:#042a6d !important}
body[data-theme="navy"] .op-desc{color:#444444 !important}
body[data-theme="navy"] .op-badge--leader{background:#D4A040 !important;color:#ffffff !important;border-radius:4px}
body[data-theme="navy"] .pricing__table-outer{border:none;box-shadow:rgba(0,0,0,0.22) 3px 5px 30px 0px}
body[data-theme="navy"] .fact-row dt,body[data-theme="navy"] .fact__row dt{color:rgba(0,0,0,0.70) !important}
body[data-theme="navy"] .fact-row dd,body[data-theme="navy"] .fact__row dd{color:#042a6d !important}
body[data-theme="navy"] .access__title{color:#042a6d;font-weight:700}
body[data-theme="navy"] .access__table tr td:first-child{color:#042a6d;font-weight:700}
body[data-theme="navy"] .ach-d .d-body{background:linear-gradient(135deg,#2566D4 0%,#1a4fb0 100%);padding:28px 16px 20px}
body[data-theme="navy"] .ach-f .f-num,body[data-theme="navy"] .ach-d .d-num{color:#ffffff;font-weight:600;line-height:1.1;letter-spacing:-0.01em}
body[data-theme="navy"] .ach-d .d-foot{background:rgba(0,0,0,.32)}
body[data-theme="navy"] .ach-f .f-foot{background:#D4A040}
body[data-theme="navy"] .ach-d .d-lbl,body[data-theme="navy"] .ach-f .f-lbl{color:#ffffff}
body[data-theme="navy"] .feature-item__num{color:#D4A040 !important}
body[data-theme="navy"] .feature-item__title{font-weight:600;line-height:1.14;letter-spacing:-0.01em}
body[data-theme="navy"] .feature-item__desc{line-height:1.7;letter-spacing:-0.022em}
body[data-theme="navy"] .flow-step-number,body[data-theme="navy"] .flow-step__num{color:#D4A040;opacity:1;font-size:clamp(40px,5vw,60px) !important;font-weight:700;letter-spacing:-0.022em}
body[data-theme="navy"] .flow-step__title{font-weight:600;line-height:1.14;letter-spacing:-0.01em;color:#042a6d}
body[data-theme="navy"] .flow-step__desc{line-height:1.7;letter-spacing:-0.022em;color:rgba(0,0,0,0.54)}
body[data-theme="navy"] .cta-section:not(.cta-section--has-bg){background:linear-gradient(135deg,#042a6d 0%,#021440 100%) !important}
body[data-theme="navy"] .cta-section--has-bg::before{background:linear-gradient(135deg,rgba(4,42,109,0.85) 0%,rgba(4,42,109,0.10) 100%)}
body[data-theme="navy"] .cta-section__title{font-weight:600;line-height:1.1;letter-spacing:-0.01em;color:#fff}
body[data-theme="navy"] .cta-section__sub{color:rgba(255,255,255,0.85) !important}
body[data-theme="navy"] .cta-section .btn{border-radius:980px}
body[data-theme="navy"] .cta-section .btn--primary{background:#2566d4;border:none}
body[data-theme="navy"] .cta-section .btn--outline{background:#ffffff !important;color:#042a6d !important;border:none !important}
body[data-theme="navy"] .pricing__table--head thead th{background:#042a6d;color:#ffffff}
body[data-theme="navy"] .pricing__table--body tbody tr:nth-child(even){background:rgba(4,42,109,0.04)}
body[data-theme="navy"] .pricing__plan{color:#042a6d !important;font-weight:700}
body[data-theme="navy"] .pricing__price{color:#042a6d !important;font-weight:700}
body[data-theme="navy"] .faq-item__q-badge{background:#042a6d;border:none;color:#fff;border-radius:980px;font-weight:700}
body[data-theme="navy"] .faq-item__a-badge{background:#D4A040;border:none;color:#fff;border-radius:980px;font-weight:700}
body[data-theme="navy"] .faq-item__q-text{color:#042a6d;font-weight:700}
body[data-theme="navy"] .faq-item__a-text{color:#444444}
body[data-theme="navy"] .footer{background:#010e2b !important}
body[data-theme="navy"] .footer__col-title{color:#2566d4;text-transform:uppercase;letter-spacing:0.12em}
body[data-theme="navy"] .footer__logo{color:#ffffff !important}
body[data-theme="navy"] .footer__tagline{color:#dddddd !important}
body[data-theme="navy"] .footer__links a{color:#aaaaaa !important}
body[data-theme="navy"] #section_achievements,body[data-theme="navy"] .ach-sec{background:radial-gradient(ellipse at 50% 45%, #1847b0 0%, #0b3278 45%, #021440 100%);color:#fff}
body[data-theme="navy"] #section_achievements .section-heading,body[data-theme="navy"] .ach-sec .section-heading{text-align:center !important}
body[data-theme="navy"] #section_achievements .section-heading::before,body[data-theme="navy"] .ach-sec .section-heading::before{color:#ffffff !important;text-align:center !important}
body[data-theme="navy"] #section_achievements .section-heading__ja,body[data-theme="navy"] .ach-sec .section-heading__ja{color:#fff !important;text-align:center !important;margin-left:auto;margin-right:auto}
body[data-theme="navy"] #section_achievements .section-heading__ja::after,body[data-theme="navy"] .ach-sec .section-heading__ja::after{background:#D4A040 !important;left:50% !important;transform:translateX(-50%) !important}
body[data-theme="navy"] .ach-d{border-radius:20px}
body[data-theme="navy"] .ach-f{border-radius:20px}

/* ============================================================
   THEME: crimson (Toyota系)
   ============================================================ */
body[data-theme="crimson"]{
  --color-primary:#eb0a1e;--color-primary-dark:#cc0000;--color-primary-light:#fde8ea;
  --color-bg:#ffffff;--color-bg-alt:#f5f5f5;--color-bg-dark:#1a1a1a;
  --color-border:#e0e0e0;--color-text:#222222;
  --color-text-sub:#444444;--color-text-light:#777777;
  --font-heading:"SF Pro Display","Helvetica Neue",Helvetica,Arial,sans-serif;
  --radius-btn:8px;--radius-lg:8px;--radius-md:4px;
  --hero-text-align:left;--hero-overlay-color:rgba(0,0,0,0.42);
  --section-padding-v:80px;--heading-letter-spacing:0.02em;
  --btn-primary-bg:#eb0a1e;--btn-primary-color:#ffffff;
  --btn-primary-border:none;--btn-primary-shadow:0 4px 16px rgba(255,255,255,0.25);
  --card-shadow:0 2px 8px rgba(0,0,0,0.08);--card-border:1px solid #e0e0e0;
  --color-accent:#eb0a1e;--color-accent-dark:#cc0000;
  --color-accent2:#1a1a1a;--color-accent2-dark:#000000;
  letter-spacing:0.04em;line-height:1.5;
  /* サイズ差分 */
  --size-section-heading-ja:clamp(26px,3vw,36px);
  --size-flow-title:16px;
}
body[data-theme="crimson"] .hero__inner{text-align:left}
body[data-theme="crimson"] .hero__btns{justify-content:flex-start}
body[data-theme="crimson"] .hero::before{background:radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.05) 0%, rgba(30,10,10,0.35) 55%, rgba(50,15,15,0.70) 100%)}
body[data-theme="crimson"] .hero__en{display:inline-block;background:none;border:none;padding:0;font-size:13px;letter-spacing:0.18em;color:#ffffff;font-weight:700;white-space:nowrap}
body[data-theme="crimson"] .hero__catch,body.crimson .hero__catch{margin-left:0;margin-right:auto;text-align:left}
body[data-theme="crimson"] .hero__title{font-size:clamp(36px,5.5vw,56px);font-weight:700;line-height:1.15;letter-spacing:0.02em;text-shadow:none;color:#ffffff}
body[data-theme="crimson"] .hero__sub{font-size:16px;line-height:1.6;letter-spacing:0.02em;margin-left:0;margin-right:auto}
body[data-theme="crimson"] .hero .btn{border-radius:8px;padding:14px 28px;font-size:16px;font-weight:700}
body[data-theme="crimson"] .hero .btn--primary{background:#eb0a1e;color:#fff;border:none;box-shadow:0 4px 16px rgba(235,10,30,0.35)}
body[data-theme="crimson"] .hero .btn--white{background:#ffffff;color:#eb0a1e;border:none;font-weight:700}
body[data-theme="crimson"] .header{background:#ffffff !important;box-shadow:0 2px 8px rgba(0,0,0,0.10) !important;border-bottom:1px solid #e0e0e0 !important}
body[data-theme="crimson"] .header__logo{color:#222222}
body[data-theme="crimson"] .header__nav a{color:rgba(0,0,0,0.70) !important}
body[data-theme="crimson"] .header__cta .btn,body[data-theme="crimson"] .header__cta .btn--primary{background:#eb0a1e !important;color:#ffffff !important;border:none !important;box-shadow:none !important}
body[data-theme="crimson"] .section-heading{text-align:left}
body[data-theme="crimson"] .section-heading::before{font-size:16px;letter-spacing:0.12em;font-weight:700;text-align:left;color:#eb0a1e}
body[data-theme="crimson"] .section-heading__ja{font-size:clamp(26px,3vw,36px);font-weight:700;line-height:1.2;letter-spacing:0.02em;color:#222222;text-align:left;margin-left:0;margin-right:0}
body[data-theme="crimson"] .section-heading__ja::after{left:0 !important;transform:none !important;margin:10px 0 0;width:32px;height:2px;background:#222222;border-radius:0}
body[data-theme="crimson"] .voice-card__stars{color:#FFC000}
body[data-theme="crimson"] .voice-card__title{color:#1a1a1a !important}
body[data-theme="crimson"] .voice-card__name{color:#1a1a1a !important}
body[data-theme="crimson"] .op-card .op-name,body[data-theme="crimson"] .op-card.is-leader .op-name{color:#222222 !important}
body[data-theme="crimson"] .op-card{background:#fffaf6 !important;border:1px solid #e8e0d8 !important;box-shadow:0 2px 8px rgba(0,0,0,0.07) !important;border-radius:8px !important}
body[data-theme="crimson"] .op-card.is-leader,body.crimson .op-card.is-leader{border:1px solid #222222 !important;box-shadow:0 4px 16px rgba(34,34,34,0.15) !important}
body[data-theme="crimson"] .op-desc{color:#444444 !important}
body[data-theme="crimson"] .op-badge--leader{background:#eb0a1e !important;color:#ffffff !important;border-radius:8px}
body[data-theme="crimson"] .feature-item__title{color:#222222 !important;font-weight:700}
body[data-theme="crimson"] .pricing__table-outer{border:1px solid #e0e0e0;box-shadow:0 4px 16px rgba(0,0,0,0.08);border-radius:8px}
body[data-theme="crimson"] .pricing__table--head thead th{background:#1a1a1a;color:#ffffff;font-weight:700}
body[data-theme="crimson"] .fact-row dt,body[data-theme="crimson"] .fact__row dt{color:#4a4a4a !important}
body[data-theme="crimson"] .fact-row dd,body[data-theme="crimson"] .fact__row dd{color:#222222 !important}
body[data-theme="crimson"] .access__title{color:#222222;font-weight:700}
body[data-theme="crimson"] .access__table tr td:first-child{color:#eb0a1e;font-weight:700}
body[data-theme="crimson"] .ach-f{background:#ffffff !important;border:none;box-shadow:0 4px 20px rgba(0,0,0,0.15)}
body[data-theme="crimson"] .ach-f .f-body{background:#ffffff !important}
body[data-theme="crimson"] .ach-f .f-num{font-size:clamp(20px,2.5vw,36px);font-weight:700;line-height:1.1;letter-spacing:0;color:#1a1a1a}
body[data-theme="crimson"] .ach-f .f-foot{background:#1a1a1a !important;padding:14px 16px}
body[data-theme="crimson"] .ach-f .f-lbl{color:#ffffff;font-weight:700;letter-spacing:.04em}
body[data-theme="crimson"] .ach-d .d-body{background:#ffffff}
body[data-theme="crimson"] .ach-d .d-num{font-size:clamp(20px,2.5vw,36px);font-weight:700;line-height:1.1;letter-spacing:0;color:#eb0a1e}
body[data-theme="crimson"] .ach-d .d-foot{background:#1a1a1a}
body[data-theme="crimson"] .flow-step-title,body[data-theme="crimson"] .flow-step__title{font-weight:700;line-height:1.4;letter-spacing:0;color:#222222}
body[data-theme="crimson"] .flow-step__desc{line-height:1.7;letter-spacing:0;color:#444444}
body[data-theme="crimson"] .pricing__table--body tbody tr:nth-child(even){background:rgba(235,10,30,0.04)}
body[data-theme="crimson"] .pricing__plan{color:#222222 !important;font-weight:700}
body[data-theme="crimson"] .pricing__price{color:#eb0a1e !important;font-weight:700}
body[data-theme="crimson"] .pricing__table--body tbody tr:hover{background:rgba(0,0,0,0.04) !important}
body[data-theme="crimson"] .faq-item__q-badge{background:#eb0a1e;border:none;color:#fff;border-radius:8px;font-weight:700}
body[data-theme="crimson"] .faq-item__a-badge{background:#1a1a1a;border:none;color:#fff;border-radius:8px;font-weight:700}
body[data-theme="crimson"] .faq-item__q-text{color:#222222;font-weight:700}
body[data-theme="crimson"] .faq-item__a-text{color:#444444}
body[data-theme="crimson"] .flow-step__num,body[data-theme="crimson"] .flow-step-number{color:#1a1a1a;opacity:1}
body[data-theme="crimson"] .cta-section:not(.cta-section--has-bg){background:linear-gradient(135deg,#1c0606,#0f0f0f) !important}
body[data-theme="crimson"] .cta-section--has-bg::before{background:linear-gradient(135deg,rgba(0,0,0,0.55) 0%,color-mix(in srgb,var(--color-primary) 35%,transparent) 50%,rgba(0,0,0,0.55) 100%)}
body[data-theme="crimson"] .cta-section__title{font-weight:700;line-height:1.15;letter-spacing:0.02em;color:#ffffff !important}
body[data-theme="crimson"] .cta-section__sub{color:#222222 !important}
body[data-theme="crimson"] .cta-section .btn{border-radius:8px}
body[data-theme="crimson"] .cta-section .btn--primary{background:#eb0a1e;color:#ffffff;border:none;font-weight:700}
body[data-theme="crimson"] .cta-section .btn--outline{background:#1a1a1a !important;color:#ffffff !important;border:none !important;border-radius:8px;box-shadow:0 4px 16px rgba(255,255,255,0.25)}
body[data-theme="crimson"] .footer{background:linear-gradient(135deg,#1a1a1a,#222222) !important;color:#cccccc !important}
body[data-theme="crimson"] .footer__logo{color:#dddddd !important}
body[data-theme="crimson"] .footer__tagline{color:#dddddd !important}
body[data-theme="crimson"] .footer__col-title{color:#eb0a1e !important;text-transform:uppercase;letter-spacing:0.12em}
body[data-theme="crimson"] .footer__links a{color:#aaaaaa !important}
body[data-theme="crimson"] #section_achievements,body[data-theme="crimson"] .ach-sec{background:radial-gradient(ellipse at 50% 45%, #eb0a1e 0%, #c50817 45%, #8b0512 100%);color:#fff}
body[data-theme="crimson"] #section_achievements .section-heading,body[data-theme="crimson"] .ach-sec .section-heading{text-align:center !important}
body[data-theme="crimson"] #section_achievements .section-heading::before,body[data-theme="crimson"] .ach-sec .section-heading::before{color:#ffffff !important;text-align:center !important}
body[data-theme="crimson"] #section_achievements .section-heading__ja,body[data-theme="crimson"] .ach-sec .section-heading__ja{color:#fff !important;text-align:center !important;margin-left:auto;margin-right:auto}
body[data-theme="crimson"] #section_achievements .section-heading__ja::after,body[data-theme="crimson"] .ach-sec .section-heading__ja::after{background:#ffffff !important;left:50% !important;transform:translateX(-50%) !important}

/* ============================================================
   THEME: emerald (LINE系)
   ============================================================ */
body[data-theme="emerald"]{
  --color-primary:#5A7C5A;--color-primary-dark:#425E42;--color-primary-light:rgba(90,124,90,0.10);
  --color-bg:#ffffff;--color-bg-alt:#f5f7f5;--color-bg-dark:#2D4A2D;
  --color-border:#e5e5e5;--color-text:#000000;
  --color-text-sub:#444444;--color-text-light:#777777;
  --font-heading:"SF Pro Display","Helvetica Neue","Noto Sans JP",Arial,sans-serif;
  --radius-btn:8px;--radius-lg:12px;--radius-md:8px;
  --hero-text-align:center;--hero-overlay-color:rgba(0,0,0,0.48);
  --section-padding-v:80px;--heading-letter-spacing:0;
  --btn-primary-bg:#5A7C5A;--btn-primary-color:#ffffff;
  --btn-primary-border:none;--btn-primary-shadow:none;
  --card-shadow:0 2px 8px rgba(0,0,0,0.08);--card-border:1px solid #e5e5e5;
  --color-accent:#5A7C5A;--color-accent-dark:#425E42;
  --color-accent2:#C76E4A;--color-accent2-dark:#A8553A;
  /* サイズ差分 */
  --size-section-heading-ja:clamp(22px,3vw,36px);
  --size-flow-desc:15px;
}
body[data-theme="emerald"] .hero__inner{text-align:center}
body[data-theme="emerald"] .hero__btns{justify-content:center}
body[data-theme="emerald"] .hero::before{background:radial-gradient(ellipse at 50% 50%, rgba(45,80,50,0.03) 0%, rgba(30,60,40,0.25) 55%, rgba(15,40,25,0.55) 100%)}
body[data-theme="emerald"] .hero__en{font-size:13px;letter-spacing:0.18em;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .hero__catch,body.emerald .hero__catch{margin-left:auto;margin-right:auto;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .hero__title{font-size:clamp(36px,5.5vw,60px);font-weight:700;line-height:1.27;text-shadow:0 2px 8px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .hero__sub{font-size:16px;line-height:1.6;color:rgba(255,255,255,0.85);margin-left:auto;margin-right:auto;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .hero .btn{border-radius:8px;padding:12px 32px;font-size:16px;font-weight:700}
body[data-theme="emerald"] .hero .btn--primary{background:#5A7C5A;color:#ffffff}
body[data-theme="emerald"] .hero .btn--white{background:#ffffff;color:#5A7C5A;font-weight:700}
body[data-theme="emerald"] .header__cta .btn,body[data-theme="emerald"] .header__cta .btn--primary{background:#5A7C5A !important;color:#ffffff !important;border:none !important;box-shadow:none !important}
body[data-theme="emerald"] .section-heading{text-align:center}
body[data-theme="emerald"] .section-heading::before{font-size:16px;letter-spacing:0.14em;font-weight:700;color:#C76E4A;text-align:center}
body[data-theme="emerald"] .section-heading__ja{font-size:clamp(22px,3vw,36px);font-weight:700;line-height:1.2;color:#000000;margin-left:auto;margin-right:auto}
body[data-theme="emerald"] .section-heading__ja::after{left:50% !important;transform:translateX(-50%) !important;margin:12px 0 0;width:40px;height:3px;background:#C76E4A;border-radius:4px}
body[data-theme="emerald"] .fact-row dt,body[data-theme="emerald"] .fact__row dt{color:#4a4a4a !important}
body[data-theme="emerald"] .fact-row dd,body[data-theme="emerald"] .fact__row dd{color:#000000 !important}
body[data-theme="emerald"] .voice-card{background:#ffffff;border:1px solid #e5e5e5;box-shadow:0 2px 8px rgba(0,0,0,0.08);border-radius:12px}
body[data-theme="emerald"] .voice-card__title{color:#000000 !important}
body[data-theme="emerald"] .voice-card__name{color:#000000 !important}
body[data-theme="emerald"] .voice-card__stars{color:#5A7C5A}
body[data-theme="emerald"] .op-card{background:#ffffff;border:1px solid #e5e5e5;box-shadow:0 2px 8px rgba(0,0,0,0.08);border-radius:12px}
body[data-theme="emerald"] .op-card.is-leader,body.emerald .op-card.is-leader{background:color-mix(in srgb,var(--color-accent) 7%,#ffffff) !important;border:1px solid #C76E4A !important;box-shadow:0 4px 16px rgba(199,110,74,0.15) !important}
body[data-theme="emerald"] .op-name{color:#000000 !important}
body[data-theme="emerald"] .op-desc{color:#444444 !important}
body[data-theme="emerald"] .op-badge--leader{background:#5A7C5A !important;color:#ffffff !important;border-radius:6px}
body[data-theme="emerald"] .ach-f{background:#ffffff !important;border:none;border-radius:12px;box-shadow:0 8px 24px -6px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .ach-f .f-body{background:#ffffff !important}
body[data-theme="emerald"] .ach-f .f-num{color:#C76E4A;font-weight:800;font-size:clamp(28px,3.5vw,52px)}
body[data-theme="emerald"] .ach-f .f-foot{background:#C76E4A !important;padding:14px 16px}
body[data-theme="emerald"] .ach-d{box-shadow:0 8px 24px -6px rgba(0,0,0,0.30)}
body[data-theme="emerald"] .ach-d .d-body{background:#ffffff !important;border-radius:0}
body[data-theme="emerald"] .ach-d .d-num{color:#C76E4A;font-weight:800}
body[data-theme="emerald"] .ach-d .d-foot{background:#C76E4A}
body[data-theme="emerald"] .feature-item__num{color:#C76E4A;font-weight:700}
body[data-theme="emerald"] .feature-item__title{font-weight:700;color:#000000}
body[data-theme="emerald"] .flow-step__num,body[data-theme="emerald"] .flow-step-number{color:#C76E4A;opacity:1}
body[data-theme="emerald"] .flow-step-title,body[data-theme="emerald"] .flow-step__title{font-weight:700;line-height:1.4;letter-spacing:0;color:#000000}
body[data-theme="emerald"] .flow-step__desc{line-height:1.7;letter-spacing:0;color:#444444}
body[data-theme="emerald"] .pricing__table-outer{border:1px solid #e5e5e5;box-shadow:0 2px 8px rgba(0,0,0,0.08);border-radius:12px}
body[data-theme="emerald"] .pricing__table--head thead th{background:#5A7C5A;color:#ffffff}
body[data-theme="emerald"] .pricing__table--body tbody tr:nth-child(even){background:rgba(90,124,90,0.04)}
body[data-theme="emerald"] .pricing__plan{color:#000000 !important;font-weight:700}
body[data-theme="emerald"] .pricing__price{color:#C76E4A !important;font-weight:700}
body[data-theme="emerald"] .faq-item__q-badge{background:#5A7C5A;color:#fff;border-radius:8px}
body[data-theme="emerald"] .faq-item__a-badge{background:#f5f7f5;color:#C76E4A;border:1px solid #e5e5e5;border-radius:8px}
body[data-theme="emerald"] .faq-item__q-text{color:#000000;font-weight:700}
body[data-theme="emerald"] .faq-item__a-text{color:#444444}
body[data-theme="emerald"] .access__title{color:#000000;font-weight:700}
body[data-theme="emerald"] .access__table tr td:first-child{color:#C76E4A;font-weight:700}
body[data-theme="emerald"] .cta-section:not(.cta-section--has-bg){background:linear-gradient(160deg,#4F7848 0%,#3D6033 35%,#2D4A2D 100%) !important}
body[data-theme="emerald"] .cta-section__title{color:#ffffff;font-weight:700}
body[data-theme="emerald"] .cta-section__sub{color:rgba(255,255,255,0.9) !important}
body[data-theme="emerald"] .cta-section .btn{border-radius:8px;padding:12px 32px}
body[data-theme="emerald"] .cta-section .btn--primary{background:#5A7C5A;color:#ffffff;font-weight:700}
body[data-theme="emerald"] .cta-section .btn--outline{background:#ffffff !important;color:#5A7C5A !important;border:none !important;font-weight:700}
body[data-theme="emerald"] .footer{background:#2D4A2D !important;border-top:3px solid #C76E4A}
body[data-theme="emerald"] .footer__col-title{color:#C76E4A;font-weight:700}
body[data-theme="emerald"] #section_achievements,body[data-theme="emerald"] .ach-sec{background:linear-gradient(180deg,#4F7848 0%,#3D6033 35%,#2D4A2D 100%);color:#fff}
body[data-theme="emerald"] #section_achievements .section-heading,body[data-theme="emerald"] .ach-sec .section-heading{text-align:center !important}
body[data-theme="emerald"] #section_achievements .section-heading::before,body[data-theme="emerald"] .ach-sec .section-heading::before{color:#ffffff !important;text-align:center !important}
body[data-theme="emerald"] #section_achievements .section-heading__ja,body[data-theme="emerald"] .ach-sec .section-heading__ja{color:#fff !important;text-align:center !important;margin-left:auto;margin-right:auto}
body[data-theme="emerald"] #section_achievements .section-heading__ja::after,body[data-theme="emerald"] .ach-sec .section-heading__ja::after{background:#C76E4A !important;left:50% !important;transform:translateX(-50%) !important}

/* ============================================================
/* ============================================================
   THEME: sky (Cyan × Gold)
   ============================================================ */
body[data-theme="sky"]{
  --color-primary:#00C0D4;--color-primary-dark:#00A8BA;--color-primary-light:rgba(0,192,212,0.12);
  --color-bg:#ffffff;--color-bg-alt:#f5f6f6;--color-bg-dark:#00C0D4;
  --color-border:#e0e0e0;--color-text:#1a1a1a;
  --color-text-sub:#444444;--color-text-light:#777777;
  /* Sky: クリーンミニマル設計のため --font-heading を本文と同じ Noto Sans JP に統一（意図的） */
  --font-heading:"Noto Sans JP","Helvetica Neue",Arial,sans-serif;
  --radius-btn:4px;--radius-lg:8px;--radius-md:4px;
  --hero-text-align:center;--hero-overlay-color:rgba(0,0,0,0.52);
  --section-padding-v:80px;--heading-letter-spacing:0;
  --btn-primary-bg:#FFC000;--btn-primary-color:#1a1a1a;
  --btn-primary-border:none;--btn-primary-shadow:none;
  --card-shadow:0 2px 8px rgba(0,0,0,0.08);--card-border:1px solid #e0e0e0;
  --color-accent:#FFC000;--color-accent-dark:#917300;
  line-height:1.6;
  /* サイズ差分 */
  --size-section-heading-ja:clamp(24px,3vw,36px);
  --size-feature-desc:16px;
  --size-flow-desc:16px;
}
body[data-theme="sky"] .hero__inner{text-align:center}
body[data-theme="sky"] .hero__btns{justify-content:center}
body[data-theme="sky"] .hero::before{background:radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0) 0%, rgba(180,210,225,0.15) 55%, rgba(120,170,200,0.40) 100%)}
body[data-theme="sky"] .hero__en{display:inline-block;background:none;border:none;padding:0;font-size:13px;letter-spacing:0.18em;color:#ffffff;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="sky"] .hero__catch,body.sky .hero__catch{margin-left:auto;margin-right:auto;text-align:center;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="sky"] .hero__title{font-size:clamp(36px,5.5vw,60px);font-weight:700;line-height:1.2;letter-spacing:0;color:#ffffff;text-shadow:0 2px 8px rgba(0,0,0,0.30)}
body[data-theme="sky"] .hero__sub{font-size:16px;line-height:1.6;letter-spacing:0;color:rgba(255,255,255,0.85);margin-left:auto;margin-right:auto;text-shadow:0 1px 4px rgba(0,0,0,0.30)}
body[data-theme="sky"] .hero .btn{border-radius:4px;padding:12px 32px;font-size:16px;font-weight:700}
body[data-theme="sky"] .hero .btn--primary{background:#FFC000;color:#1a1a1a;border:none;box-shadow:none}
body[data-theme="sky"] .hero .btn--white{background:#ffffff;color:#1a1a1a;border:none;font-weight:700}
body[data-theme="sky"] .header{background:#ffffff !important;box-shadow:0 1px 0 #e0e0e0 !important;border-bottom:none !important}
body[data-theme="sky"] .header__logo{color:#1a1a1a}
body[data-theme="sky"] .header__logo-sub{color:#FFC000 !important}
body[data-theme="sky"] .header__logo span{color:#FFC000 !important}
/* header__logo-name を後ろに置き詳細度も上げて span rule に勝つ */
body[data-theme="sky"] .header-logo span.header__logo-name,
body[data-theme="sky"] span.header__logo-name,
body.sky span.header__logo-name,
body.sky .header__logo-name{color:#1a1a1a !important}
body[data-theme="sky"] .header__nav a{color:#555555 !important}
body[data-theme="sky"] .header__nav a:hover{color:#00C0D4 !important}
body[data-theme="sky"] .header__cta .btn,body[data-theme="sky"] .header__cta .btn--primary{background:#00C0D4 !important;color:#ffffff !important;border:none !important;box-shadow:none !important}
body[data-theme="sky"] .section-heading{text-align:left}
body[data-theme="sky"] .section-heading::before{font-size:16px;letter-spacing:0.18em;font-weight:700;color:#FFC000;text-align:left}
body[data-theme="sky"] .section-heading__ja{font-size:clamp(24px,3vw,36px);font-weight:700;line-height:1.3;letter-spacing:0;color:#1a1a1a;text-align:left;margin-left:0;margin-right:0}
body[data-theme="sky"] .section-heading__ja::after{left:0 !important;transform:none !important;margin:10px 0 0;width:40px;height:3px;background:#FFC000;border-radius:2px}
body[data-theme="sky"] .voice-card{background:#ffffff !important;border:1px solid #e0e0e0 !important;box-shadow:0 2px 8px rgba(0,0,0,0.08) !important;border-radius:8px !important;border-top:3px solid #00C0D4 !important}
body[data-theme="sky"] .voice-card__title{color:#1a1a1a !important}
body[data-theme="sky"] .voice-card__name{color:#1a1a1a !important}
body[data-theme="sky"] .voice-card__text{color:#444444}
body[data-theme="sky"] .voice-card__stars{color:#FFC000}
body[data-theme="sky"] .fact-row dt,body[data-theme="sky"] .fact__row dt{color:#4a4a4a !important}
body[data-theme="sky"] .fact-row dd,body[data-theme="sky"] .fact__row dd{color:#1a1a1a !important}
body[data-theme="sky"] .op-card{background:#ffffff !important;border:1px solid #e0e0e0 !important;box-shadow:0 2px 8px rgba(0,0,0,0.08) !important;border-radius:8px !important}
body[data-theme="sky"] .op-card.is-leader,body.sky .op-card.is-leader{border:1px solid #FFC000 !important;box-shadow:0 4px 16px rgba(255,192,0,0.20) !important}
body[data-theme="sky"] .op-card .op-name,body[data-theme="sky"] .op-card.is-leader .op-name{color:#1a1a1a !important}
body[data-theme="sky"] .op-desc{color:#444444 !important}
body[data-theme="sky"] .op-badge--leader{background:#FFC000 !important;color:#1a1a1a !important;border-radius:4px}
body[data-theme="sky"] .ach-f{background:#ffffff !important;border:none;box-shadow:0 8px 24px -8px rgba(0,0,0,0.35)}
body[data-theme="sky"] .ach-f .f-body{background:#ffffff !important}
body[data-theme="sky"] .ach-f .f-num{color:#005C68;font-weight:800;font-size:clamp(28px,3.5vw,52px)}
body[data-theme="sky"] .ach-f .f-foot{background:#00C0D4 !important;padding:14px 16px}
body[data-theme="sky"] .ach-f .f-lbl{color:#ffffff}
body[data-theme="sky"] .ach-d{box-shadow:0 8px 24px -8px rgba(0,0,0,0.35)}
body[data-theme="sky"] .ach-d .d-body{background:#ffffff !important;border-radius:0}
body[data-theme="sky"] .ach-d .d-num{color:#005C68;font-weight:800}
body[data-theme="sky"] .ach-d .d-foot{background:#00C0D4}
body[data-theme="sky"] .feature-item{border-top:3px solid #00C0D4;padding-top:16px}
body[data-theme="sky"] .feature-item__num{color:#FFC000;font-weight:700;font-size:48px;line-height:1.1;letter-spacing:0}
body[data-theme="sky"] .feature-item__title{font-weight:700;line-height:1.4;letter-spacing:0;color:#1a1a1a}
body[data-theme="sky"] .feature-item__desc{line-height:1.6;letter-spacing:0;color:#333333}
body[data-theme="sky"] .flow-step__num,body[data-theme="sky"] .flow-step-number{font-size:clamp(40px,5vw,60px) !important;font-weight:700;letter-spacing:-0.02em;color:#00C0D4;opacity:0.9;font-family:inherit}
body[data-theme="sky"] .flow-step__title{font-weight:700;line-height:1.4;letter-spacing:0;color:#1a1a1a}
body[data-theme="sky"] .flow-step__desc{line-height:1.6;letter-spacing:0;color:#444444}
body[data-theme="sky"] .pricing__table-outer{border:1px solid #e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,0.08);border-radius:8px}
body[data-theme="sky"] .pricing__table--head thead th{background:#FFC000;color:#1a1a1a;font-weight:700}
body[data-theme="sky"] .pricing__table--body tbody tr:nth-child(even){background:rgba(0,192,212,0.04)}
body[data-theme="sky"] .pricing__plan{color:#1a1a1a !important;font-weight:700}
body[data-theme="sky"] .pricing__price{color:#00C0D4 !important;font-weight:700}
body[data-theme="sky"] .faq-item__q-badge{background:#00C0D4;border:none;color:#ffffff;border-radius:4px;font-weight:700}
body[data-theme="sky"] .faq-item__a-badge{background:#F5F6F6;border:1px solid #e0e0e0;color:#FFC000;border-radius:4px;font-weight:700}
body[data-theme="sky"] .faq-item__q-text{color:#1a1a1a;font-weight:700}
body[data-theme="sky"] .faq-item__a-text{color:#444444}
body[data-theme="sky"] .access__title{color:#1a1a1a;font-weight:700}
body[data-theme="sky"] .access__table tr td:first-child{color:#00C0D4;font-weight:700}
body[data-theme="sky"] .access__table tr td{border-bottom-color:#e0e0e0;color:#444444}
body[data-theme="sky"] .cta-section:not(.cta-section--has-bg){background:#007A8A !important}
body[data-theme="sky"] .cta-section__title{color:#ffffff;font-weight:700;line-height:1.3;letter-spacing:0}
body[data-theme="sky"] .cta-section__sub{color:rgba(255,255,255,0.9) !important}
body[data-theme="sky"] .cta-section .btn{border-radius:4px;padding:12px 32px}
body[data-theme="sky"] .cta-section .btn--primary{background:#FFC000;color:#1a1a1a;border:none;font-weight:700}
body[data-theme="sky"] .cta-section .btn--outline{background:#ffffff !important;color:#007A8A !important;border:none !important;border-radius:4px}
body[data-theme="sky"] .footer{background:#2e2e2e !important}
body[data-theme="sky"] .footer__tagline{color:#b4b4b4}
body[data-theme="sky"] .footer__col-title{color:#00C0D4;letter-spacing:0.1em;font-weight:700;text-transform:uppercase}
body[data-theme="sky"] .footer__links a{color:#b4b4b4}
body[data-theme="sky"] #section_achievements,body[data-theme="sky"] .ach-sec{background:radial-gradient(ellipse at 50% 30%, #10CED8 0%, #00AABB 45%, #007A8A 100%);color:#fff}
body[data-theme="sky"] #section_achievements .section-heading,body[data-theme="sky"] .ach-sec .section-heading{text-align:center !important}
body[data-theme="sky"] #section_achievements .section-heading::before,body[data-theme="sky"] .ach-sec .section-heading::before{color:#FFC000 !important;text-align:center !important}
body[data-theme="sky"] #section_achievements .section-heading__ja,body[data-theme="sky"] .ach-sec .section-heading__ja{color:#fff !important;text-align:center !important;margin-left:auto;margin-right:auto}
body[data-theme="sky"] #section_achievements .section-heading__ja::after,body[data-theme="sky"] .ach-sec .section-heading__ja::after{background:#FFC000 !important;left:50% !important;transform:translateX(-50%) !important}

/* ============================================================
   LP HTML (index.html) テーマ対応 — ヘッダー
   inline CSSより高い詳細度で上書き
   ============================================================ */

/* --- Base: CSS変数ベースに統一（inline #fff を上書き） --- */
.lp-header{background:var(--color-bg,#fff) !important;border-bottom:1px solid var(--color-border,#e0e0e0) !important;transition:background .2s}

/* --- NAVY: 濃紺グラデ / 白テキスト --- */
body[data-theme="navy"] .lp-header,body.navy .lp-header{background:linear-gradient(135deg,#042a6d,#021d4d) !important;border-bottom:none !important;box-shadow:none !important}
body[data-theme="navy"] .header-nav-list a,body.navy .header-nav-list a{color:rgba(255,255,255,0.80) !important}
body[data-theme="navy"] .header-nav-list a:hover,body.navy .header-nav-list a:hover{color:#ffffff !important}
body[data-theme="navy"] .mobile-menu-btn span,body.navy .mobile-menu-btn span{background:#ffffff !important}
body[data-theme="navy"].menu-open .header-nav,body.navy.menu-open .header-nav{background:#042a6d !important}
body[data-theme="navy"].menu-open .header-nav-list a,body.navy.menu-open .header-nav-list a{color:rgba(255,255,255,0.85) !important;border-bottom-color:rgba(255,255,255,0.12) !important}

/* --- CRIMSON: 白ヘッダー / 暗テキスト --- */
body[data-theme="crimson"] .lp-header,body.crimson .lp-header{background:#ffffff !important;box-shadow:0 2px 8px rgba(0,0,0,0.10) !important;border-bottom:1px solid #e0e0e0 !important}
body[data-theme="crimson"] .header-nav-list a,body.crimson .header-nav-list a{color:rgba(0,0,0,0.68) !important}
body[data-theme="crimson"] .header-nav-list a:hover,body.crimson .header-nav-list a:hover{color:#eb0a1e !important}
body[data-theme="crimson"] .mobile-menu-btn span,body.crimson .mobile-menu-btn span{background:#222222 !important}

/* --- EMERALD: 白ヘッダー --- */
body[data-theme="emerald"] .lp-header,body.emerald .lp-header{background:#ffffff !important;box-shadow:0 1px 0 #e5e5e5 !important;border-bottom:none !important}
body[data-theme="emerald"] .header-nav-list a,body.emerald .header-nav-list a{color:#666666 !important}
body[data-theme="emerald"] .header-nav-list a:hover,body.emerald .header-nav-list a:hover{color:#06c755 !important}
body[data-theme="emerald"] .mobile-menu-btn span,body.emerald .mobile-menu-btn span{background:#222222 !important}

/* --- SKY: 白ヘッダー / ゴールドアクセント --- */
body[data-theme="sky"] .lp-header,body.sky .lp-header{background:#ffffff !important;box-shadow:0 1px 0 #e0e0e0 !important;border-bottom:none !important}
body[data-theme="sky"] .header-nav-list a,body.sky .header-nav-list a{color:#555555 !important}
body[data-theme="sky"] .header-nav-list a:hover,body.sky .header-nav-list a:hover{color:#00C0D4 !important}
body[data-theme="sky"] .mobile-menu-btn span,body.sky .mobile-menu-btn span{background:#222222 !important}

/* ============================================================
   LP HTML (index.html) — hero・footer 間隔調整
   ============================================================ */
/* Hero: eyebrow(サブ名称) ↔ catch(事務所名) */
.hero-eyebrow{margin-bottom:2px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:700;display:block}
/* h1のブラウザデフォルトmargin-top(約21px)をリセット → eyebrow直下に密着 */
.hero-catch{margin-top:0;margin-bottom:8px}
/* Footer: <figure>のブラウザデフォルトmargin(1em 40px)をリセット */
.footer-logo-wrap{margin:0 0 6px 0}
/* Footer: office-name 上の余白を詰める */
.footer-office-name{margin-top:4px;margin-bottom:2px}
/* ★ モバイル上書き（テーマCSSより後に配置: カスケード勝利のため） */
@media(max-width:767px){
  /* Sky: 外側border-leftの4pxを1pxに → ::afterの内側ストライプで統一管理 */
  body[data-theme="sky"] .op-card,body.sky .op-card{border-left-width:1px !important}
  body[data-theme="sky"] .op-card.is-leader,body.sky .op-card.is-leader{border-left-width:1px !important}
}

/* ★ モバイル: バッジhoverアニメ無効化（translateX(-50%)を維持し、Y移動を防ぐ） */
@media(max-width:767px){
  .op-card:hover .op-badge{transform:translateX(-50%) !important}
}

/* ★ Navy モバイル: 左カラムが濃紺背景のため op-name を白に */
@media(max-width:767px){
  body[data-theme="navy"] .op-card .op-name,body.navy .op-card .op-name{color:#ffffff !important}
}

/* ★ Navy: ヘッダー濃紺背景のため言語切替ボタン文字・ボーダーを白に（全言語） */
body[data-theme="navy"] .header__lang-trigger,body.navy .header__lang-trigger{color:rgba(255,255,255,0.85) !important;border-color:rgba(255,255,255,0.35) !important}
body[data-theme="navy"] .header__lang-trigger:hover,body.navy .header__lang-trigger:hover{color:#ffffff !important;border-color:rgba(255,255,255,0.7) !important}
body[data-theme="navy"] .lang-switcher-toggle,body.navy .lang-switcher-toggle{color:rgba(255,255,255,0.85) !important;border-color:rgba(255,255,255,0.35) !important}
body[data-theme="navy"] .lang-switcher-toggle:hover,body.navy .lang-switcher-toggle:hover{color:#ffffff !important;border-color:rgba(255,255,255,0.7) !important}
/* === Sample notice bar (multilingual LP sample annotation) === */
.sample-bar{background:#1a1a1a;color:rgba(255,255,255,.85);padding:8px var(--section-padding-h);text-align:center;font-size:12px;letter-spacing:.04em}
.sample-bar__text{margin:0;line-height:1.6}
.sample-bar__ja{margin:2px 0 0;font-size:11px;line-height:1.5;color:rgba(255,255,255,.55)}
.sample-bar a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}
.sample-bar a:hover{color:#fff}
.footer__bottom a{color:rgba(255,255,255,.65);text-decoration:underline;text-underline-offset:2px;transition:color .2s}
.footer__bottom a:hover{color:#fff}
@media(max-width:767px){
  .sample-bar{padding:6px 12px;font-size:11px}
  .sample-bar__ja{font-size:10px}
}

/* === Sticky CTA bar (mobile only) === */
.sticky-cta{display:none}
@media(max-width:767px){
  .sticky-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:700;padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:8px;background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--color-border);box-shadow:0 -4px 16px rgba(0,0,0,.1)}
  .sticky-cta__btn{flex:1;min-width:0;padding:13px 10px !important;font-size:14px !important;letter-spacing:.04em}
  .sticky-cta__btn i{margin-right:4px}
  .sticky-cta .btn--white{border:1px solid var(--color-border)}
  body{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
}

/* モバイルメニュー内の言語切替 */
body[data-theme="navy"] .lang-switcher-mobile-toggle,body.navy .lang-switcher-mobile-toggle{color:var(--color-text) !important;border-color:var(--color-border) !important}