/* common.css - shared header / nav / footer / buttons / CTA */

:root{
    --purple-900:#3d3153;
    --purple-800:#4a3d63;
    --purple-700:#5a4a75;
    --purple:#665085;
    --purple-500:#7c6699;
    --purple-300:#a795bc;
    --purple-100:#e9e3f0;
    --purple-050:#f6f3fa;
    --yellow:#f2c94c;
    --yellow-dark:#d9a91f;
    --yellow-050:#fdf8e9;
    --ink:#2a2233;
    --ink-soft:#453e52;
    --paper:#fffdf8;
    --line:#ded4e8;
  }

*{box-sizing:border-box;}

html{scroll-behavior:smooth; overflow-x:clip; width:100%;}

body{
    margin:0;
    overflow-x:clip;
    max-width:100%;
    font-family:"Noto Sans JP", sans-serif;
    color:var(--ink);
    background:var(--paper);
    line-height:1.9;
    font-size:16px;
    -webkit-font-smoothing:antialiased;
  }

h1,h2,h3,h4{
    font-family:"Noto Sans JP", sans-serif;
    color:var(--purple-900);
    margin:0;
    line-height:1.55;
  }

a{color:inherit;text-decoration:none;}

img{max-width:100%;display:block;}

.u-wrap{max-width:1080px;margin:0 auto;padding:0 24px;}

section{position:relative;}

.c-eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.5em;
    font-family:"Noto Sans JP", sans-serif;
    font-size:.85rem;
    letter-spacing:.14em;
    color:var(--purple-500);
    max-width:100%;
    flex-wrap:wrap;
  }

.c-eyebrow + h1,
.c-eyebrow + h2{margin-top:14px;}

.c-eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:var(--yellow-dark);
    flex:none;
  }

@media(max-width:400px){
    .c-eyebrow{font-size:.7rem; letter-spacing:.07em; gap:.4em;}
    .c-eyebrow::before{width:14px;}
  }

/* ---------- Header ---------- */
  header.l-header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }

.l-header__inner{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px; max-width:1080px; margin:0 auto;
    flex-wrap:wrap; gap:10px;
  }

.l-header__brand{font-family:"Noto Sans JP",sans-serif;font-weight:700;font-size:1.15rem;color:var(--purple-900); display:flex; align-items:center;}

.l-header__brand img{height:32px; width:auto; max-width:220px; display:block;}

@media(max-width:480px){.l-header__brand img{height:26px;}}

@media(min-width:769px){
  .l-header__brand img.l-header__logo--pc{height:28px; max-width:280px;}
}

.l-header__brand span{color:var(--yellow-dark);}

.l-header__cta{
    display:flex;align-items:center;gap:12px;
  }

/* ---------- Contact CTA buttons (call / web) ---------- */
  .c-btn-group{
    display:flex;
    gap:14px;
    flex-wrap:wrap;
  }

.c-btn{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    padding:12px 22px 14px;
    border-radius:10px;
    color:#fff;
    transition:transform .1s ease, box-shadow .15s ease, filter .15s ease;
    flex:1;
    min-width:220px;
    position:relative;
  }

.c-btn:active{transform:translateY(3px);}

.c-btn__icon{
    flex:none;
    width:38px;height:38px;
    border-radius:50%;
    background:rgba(255,255,255,.25);
    display:flex;align-items:center;justify-content:center;
  }

.c-btn__icon svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.c-btn__text{line-height:1.35; text-align:center;}

.c-btn__text .c-btn__title{display:block; font-weight:900;font-size:1.08rem;letter-spacing:.01em;}

.c-btn__ext-badge{
    position:absolute;
    right:10px; bottom:8px;
    display:flex;
    opacity:.85;
  }

.c-btn-group--compact .c-btn__ext-badge{display:none;}

.c-btn__ext-icon{
    width:13px; height:13px;
    stroke:currentColor;
    fill:none;
    stroke-width:2.4;
    stroke-linecap:round;
    stroke-linejoin:round;
    display:block;
  }

.c-btn__text .c-btn__sub{display:block; font-size:.72rem;opacity:.95;font-weight:700;}

.c-btn__title-mobile{display:none;}

@media(max-width:900px){
    .c-btn__title-full{display:none;}
    .c-btn__title-mobile{display:inline;}
  }

.c-btn--call{
    background:linear-gradient(180deg,#ff9d52,#f2751c);
    box-shadow:0 4px 0 #c65a10, 0 7px 14px rgba(194,90,16,.35);
  }

.c-btn--call:hover{filter:brightness(1.12); box-shadow:0 4px 0 #c65a10, 0 7px 14px rgba(194,90,16,.35), 0 0 18px rgba(255,157,82,.65);}

.c-btn--call:active{box-shadow:0 1px 0 #c65a10, 0 2px 6px rgba(194,90,16,.3);}

.c-btn--web{
    background:linear-gradient(180deg,#38d19a,#14a97a);
    box-shadow:0 4px 0 #0c7d5b, 0 7px 14px rgba(12,125,91,.35);
  }

.c-btn--web:hover{filter:brightness(1.12); box-shadow:0 4px 0 #0c7d5b, 0 7px 14px rgba(12,125,91,.35), 0 0 18px rgba(56,209,154,.65);}

.c-btn--web:active{box-shadow:0 1px 0 #0c7d5b, 0 2px 6px rgba(12,125,91,.3);}

/* Compact header version (same design as main CTA buttons, smaller scale) */
  .c-btn-group--compact{gap:8px;}

.c-btn-group--compact .c-btn{
    padding:7px 16px 9px;
    min-width:0;
    flex:none;
    gap:8px;
  }

.c-btn-group--compact .c-btn__icon{width:28px;height:28px;}

.c-btn-group--compact .c-btn__icon svg{width:14px;height:14px;}

.c-btn-group--compact .c-btn__text .c-btn__title{font-size:.86rem;}

.c-btn-group--compact .c-btn__text .c-btn__sub{font-size:.6rem;}

@media(max-width:900px){
    .c-btn-group--compact .c-btn__text{display:none;}
    .c-btn-group--compact .c-btn{padding:9px;}
  }

/* ---------- Sub menu bar ---------- */
  .l-submenu{
    background:var(--purple-900);
    border-bottom:1px solid rgba(255,255,255,.08);
    position:sticky;
    top:var(--header-h, 65px);
    z-index:40;
  }

.l-submenu__inner{
    max-width:1080px; margin:0 auto; padding:0 24px;
    display:flex;
    justify-content:center;
    gap:0;
  }

.l-submenu__item{position:relative;}

.l-submenu__item:not(:last-child)::after{
    content:"";
    position:absolute; right:0; top:50%; transform:translateY(-50%);
    width:1px; height:16px;
    background:rgba(255,255,255,.2);
  }

.l-submenu__item > a{
    display:flex;
    align-items:center;
    gap:5px;
    padding:13px 32px;
    font-size:.88rem;
    font-weight:700;
    color:#fff;
    letter-spacing:.02em;
    transition:color .15s ease, background .15s ease;
  }

.l-submenu__item > a:hover{
    color:var(--yellow);
    background:rgba(255,255,255,.05);
  }

.l-submenu__caret{font-size:.65rem; transform:translateY(1px);}

.l-submenu__dropdown{
    position:absolute; top:100%; left:0;
    min-width:230px;
    background:#fff;
    border-radius:0 0 10px 10px;
    box-shadow:0 16px 30px rgba(30,20,45,.2);
    padding:8px 0;
    opacity:0; visibility:hidden;
    transform:translateY(-6px);
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  }

.l-submenu__item.l-submenu__item--dropdown:hover .l-submenu__dropdown{
    opacity:1; visibility:visible; transform:translateY(0);
  }

.l-submenu__dropdown a{
    display:block;
    padding:12px 24px;
    font-size:.85rem;
    font-weight:600;
    color:var(--purple-900);
    white-space:nowrap;
  }

.l-submenu__dropdown a:hover{background:var(--purple-050); color:var(--purple);}

/* Mobile hamburger menu */
  .c-hamburger{
    background:none; border:none; cursor:pointer;
    width:26px; height:20px; position:relative; padding:0; flex:none;
    display:none;
  }

.c-hamburger span{
    position:absolute; left:0; right:0; height:2px;
    background:#fff; border-radius:2px;
    transition:transform .22s ease, opacity .18s ease, top .22s ease;
  }

.c-hamburger span:nth-child(1){top:0;}

.c-hamburger span:nth-child(2){top:9px;}

.c-hamburger span:nth-child(3){top:18px;}

.c-hamburger.is-open span:nth-child(1){top:9px; transform:rotate(45deg);}

.c-hamburger.is-open span:nth-child(2){opacity:0;}

.c-hamburger.is-open span:nth-child(3){top:9px; transform:rotate(-45deg);}

.l-mobile-menu{
    max-height:0; overflow:hidden;
    background:var(--purple-800);
    transition:max-height .3s ease;
  }

.l-mobile-menu.is-open{max-height:520px;}

.l-mobile-menu a{
    display:block; padding:14px 24px;
    color:#fff; font-size:.9rem; font-weight:600;
    border-top:1px solid rgba(255,255,255,.08);
  }

.l-mobile-menu a:hover{color:var(--yellow);}

.l-mobile-menu__toggle-input{position:absolute; opacity:0; width:0; height:0; pointer-events:none;}

.l-mobile-menu__group-title{
    margin:0; padding:14px 24px;
    color:#fff; font-size:.9rem; font-weight:600; letter-spacing:normal;
    border-top:1px solid rgba(255,255,255,.08);
    display:flex; align-items:center; justify-content:space-between;
    cursor:pointer;
  }

.l-mobile-menu__toggle-icon{color:var(--yellow); font-size:1rem; font-weight:700; transition:transform .2s ease; line-height:1;}

.l-mobile-menu__toggle-input:checked ~ .l-mobile-menu__group-title .l-mobile-menu__toggle-icon{transform:rotate(45deg);}

.l-mobile-menu__group{
    max-height:0;
    overflow:hidden;
    transition:max-height .3s ease;
  }

.l-mobile-menu__toggle-input:checked ~ .l-mobile-menu__group{max-height:260px;}

.l-mobile-menu__group a{
    padding:12px 24px 12px 40px; font-size:.86rem; border-top:none;
  }

@media(min-width:769px){
    .l-mobile-menu{display:none; max-height:0;}
  }

/* ---------- Steps (timeline) ---------- */
  .c-section{padding:56px 0;}

.c-section .c-eyebrow{}

/* ---------- Final CTA ---------- */
  .c-final-cta{
    padding:56px 0;
    background:var(--purple-900);
    color:#fff;
    text-align:center;
  }

.c-final-cta h2{color:#fff; font-size:clamp(1.1rem, 2.4vw, 1.4rem);}

.c-final-cta p{color:#fff; margin-top:16px;}

.c-final-cta__actions{margin-top:34px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

footer{
    background:#211a2c;
    color:#a597b8;
    padding:0;
    font-size:.78rem;
  }

.l-footer__wrap{max-width:1080px; margin:0 auto; padding:56px 24px 0;}

.l-footer__sitelinks{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:30px 24px;
    padding-bottom:40px;
  }

@media(max-width:768px){.l-footer__sitelinks{grid-template-columns:repeat(2, minmax(0,1fr));}}

@media(max-width:480px){.l-footer__sitelinks{grid-template-columns:minmax(0,1fr);}}

.l-footer__sitelinks-heading{
    font-family:"Noto Sans JP",sans-serif;
    color:#fff;
    font-weight:700;
    font-size:.92rem;
    margin:0 0 14px;
  }

.l-footer__sitelinks-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px;}

.l-footer__sitelinks-list a{color:#c9bfd9; font-size:.82rem; transition:color .15s ease;}

.l-footer__sitelinks-list a:hover{color:var(--yellow);}

.l-footer__services{padding-bottom:36px;}

.l-footer__services-heading{
    font-family:"Noto Sans JP",sans-serif;
    color:#fff;
    font-weight:700;
    font-size:.98rem;
    margin:0 0 16px;
  }

.l-footer__services-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:16px 24px;
  }

@media(max-width:768px){.l-footer__services-grid{grid-template-columns:repeat(2, minmax(0,1fr));}}

@media(max-width:420px){.l-footer__services-grid{grid-template-columns:minmax(0,1fr);}}

.l-footer__services-link{
    display:flex; align-items:center; gap:6px;
    color:#c9bfd9;
    font-size:.82rem;
    transition:color .15s ease;
  }

.l-footer__services-link:hover{color:var(--yellow);}

.l-footer__title{
    font-family:"Noto Sans JP",sans-serif;
    color:#fff;
    font-size:1.15rem;
    font-weight:700;
    margin:0 0 30px;
  }

.l-footer__region + .l-footer__region{margin-top:30px;}

.l-footer__region-title{
    display:flex; align-items:center; gap:10px;
    font-family:"Noto Sans JP",sans-serif;
    color:#fff;
    font-weight:700;
    font-size:.98rem;
    margin:0 0 16px;
  }

.l-footer__region-title::before{
    content:""; width:16px; height:2px; background:var(--yellow);
  }

.l-footer__branch-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(140px,1fr));
    gap:12px 16px;
  }

.l-footer__branch-link{
    display:flex; align-items:center; gap:6px;
    color:#c9bfd9;
    font-size:.82rem;
    transition:color .15s ease;
  }

.l-footer__branch-link:hover{color:var(--yellow);}

.l-footer__branch-link .l-footer__branch-icon{
    flex:none;
    width:16px;height:16px;
    border-radius:3px;
    background:rgba(255,255,255,.08);
    display:inline-flex; align-items:center; justify-content:center;
  }

.l-footer__branch-link .l-footer__branch-icon svg{width:9px;height:9px;stroke:#c9bfd9;fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;}

.l-footer__divider{border-top:1px solid rgba(255,255,255,.1); margin:10px 24px 0; }

.l-footer__bottom{
    max-width:1080px; margin:0 auto; padding:40px 24px 36px;
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:40px;
  }

.l-footer__logo{
    margin:0 0 16px;
  }

.l-footer__logo img{
    height:26px; width:auto; display:block;
  }

.l-footer__office{font-size:.8rem; color:#c9bfd9; margin:0 0 8px;}

.l-footer__address{font-size:.8rem; color:#c9bfd9; margin:0 0 14px; line-height:1.7;}

.l-footer__copy{font-size:.76rem; color:#8b8098;}

.l-footer__right-col{display:flex; flex-direction:column; gap:18px; align-items:flex-end;}

@media(max-width:640px){.l-footer__right-col{align-items:flex-start;}}

.l-footer__banner-box{display:flex; gap:12px; flex-wrap:wrap;}

.l-footer__banner{
    display:block;
    width:192px;
    border-radius:6px;
    overflow:hidden;
    line-height:0;
  }

.l-footer__banner img{width:100%; height:auto; display:block;}

@media(max-width:640px){
    .l-footer__banner-box{flex-direction:column; width:100%;}
    .l-footer__banner{width:100%; max-width:320px;}
  }

.l-footer__info{display:flex; gap:18px; flex-wrap:wrap; list-style:none; margin:0; padding:0;}

.l-footer__info a{color:#c9bfd9; font-size:.78rem;}

.l-footer__info a:hover{color:var(--yellow);}

::selection{background:var(--yellow); color:var(--purple-900);}

.c-fixed-cta{
    display:flex;
    flex-direction:column;
    position:fixed; left:0; right:0; bottom:0; z-index:70;
    background:#fff;
    border-top:1px solid var(--line);
    box-shadow:0 -6px 20px rgba(30,20,45,.12);
  }

.c-fixed-cta__note{
    margin:0;
    text-align:center;
    font-size:.86rem;
    font-weight:700;
    color:var(--purple-900);
    background:#fff;
    padding:8px 8px;
    line-height:1.4;
  }

.c-fixed-cta__buttons{
    display:flex;
    gap:16px;
    justify-content:center;
    padding:14px 24px;
  }

.c-fixed-cta .c-btn{flex:none; min-width:220px;}

@media(max-width:768px){
    .l-header__cta{display:none;}
    body{padding-bottom:120px;}
    .c-fixed-cta__note{font-size:.76rem; padding:6px 6px;}
    .c-fixed-cta__buttons{
      padding:0;
      gap:0;
    }
    .c-fixed-cta .c-btn{
      flex:1; min-width:0;
      border-radius:0;
      padding:8px 4px;
      box-shadow:none;
      gap:6px;
    }
    .c-fixed-cta .c-btn--call{flex:1;}
    .c-fixed-cta .c-btn--web{flex:1;}
    .c-fixed-cta .c-btn:active{transform:none;}
    .c-fixed-cta .c-btn__icon{width:28px;height:28px;}
    .c-fixed-cta .c-btn__icon svg{width:14px;height:14px;}
    .c-fixed-cta .c-btn__text{line-height:1.2;}
    .c-fixed-cta .c-btn__text .c-btn__title{font-size:.82rem;}
    .c-fixed-cta .c-btn__text .c-btn__sub{font-size:.58rem;}
  }

/* ---------- Highlight (gradient baked into base class) ---------- */
  .c-highlight{background:linear-gradient(180deg, transparent 62%, var(--yellow) 62%);}

/* ---------- Final CTA button group sizing (contextual) ---------- */
  .c-final-cta .c-btn-group{max-width:640px; margin:0 auto;}

:root{
    --purple-900:#3d3153;
    --purple-800:#4a3d63;
    --purple-700:#5a4a75;
    --purple:#665085;
    --purple-500:#7c6699;
    --purple-300:#a795bc;
    --purple-100:#e9e3f0;
    --purple-050:#f6f3fa;
    --yellow:#f2c94c;
    --yellow-dark:#d9a91f;
    --ink:#2a2233;
    --ink-soft:#453e52;
    --paper:#fffdf8;
    --line:#ded4e8;
  }

/* ---------- Sub-page: active nav state ---------- */
  .l-submenu__item.is-active > a{color:var(--yellow); background:rgba(255,255,255,.06);}

.l-mobile-menu a.is-active{color:var(--yellow);}

/* ---------- Breadcrumb ---------- */
  .c-breadcrumb{background:var(--purple-050); border-bottom:1px solid var(--line);}

.c-breadcrumb__inner{
    max-width:1080px; margin:0 auto; padding:14px 24px;
    display:flex; align-items:center; flex-wrap:wrap; gap:8px;
    font-size:.82rem; color:var(--ink-soft);
  }

.c-breadcrumb__inner a{
    display:inline-flex; align-items:center; gap:5px;
    color:var(--purple); font-weight:700;
  }

.c-breadcrumb__inner a:hover{color:var(--yellow-dark); text-decoration:underline;}

.c-breadcrumb__inner a svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}

.c-breadcrumb__sep{color:var(--purple-300);}

.c-breadcrumb__current{color:var(--purple-900); font-weight:700;}

/* ---------- Fee page hero ---------- */
  .c-hero{background:var(--purple-050); padding:64px 0 56px; text-align:center;}

.c-hero h1{font-size:clamp(1.5rem, 3.6vw, 2.15rem); max-width:780px; margin-left:auto; margin-right:auto;}

.c-hero p{margin:24px auto 0; max-width:660px; font-size:1rem; color:var(--ink-soft);}

/* ---------- Advantage page: hero subtitle ---------- */
  .c-hero__subtitle{
    margin:14px 0 0;
    font-size:1.05rem;
    font-weight:700;
    color:var(--purple-500);
  }

.c-note{font-size:.8rem; color:var(--purple-300);}

