  :root{
    --white:#F5F5F4;
    --offwhite:#FFFFFF;
    --ink:#454545;
    --sub:#6E6E6E;
    --muted:#9B9B9B;
    --border:#E3E2E1;
    --accent:#4F8C7A;
    --accent-dark:#33604F;
    --accent-olive:#7BA448;
    --near-black:#2A2A25;
    --font-serif:'Shippori Mincho', serif;
    --font-sans:'Noto Sans JP', sans-serif;
    --max:1120px;
  }

  *{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  [id]{ scroll-margin-top:90px; }
  body{
    margin:0;
    background:var(--white);
    color:var(--ink);
    font-family:var(--font-sans);
    font-weight:400;
    line-height:1.9;
    -webkit-font-smoothing:antialiased;
  }
  img,svg{ display:block; max-width:100%; }
  a{ color:inherit; text-decoration:none; }
  ul{ margin:0; padding:0; list-style:none; }
  h1,h2,h3,h4{ margin:0; font-family:var(--font-serif); font-weight:700; letter-spacing:.02em; }
  p{ margin:0; }
  button{ font-family:inherit; cursor:pointer; }

  :focus-visible{
    outline:2px solid var(--accent);
    outline-offset:3px;
  }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }

  /* ---------- Header ---------- */
  .site-header{
    position:fixed; top:0; left:0; right:0; z-index:60;
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 40px;
    mix-blend-mode:normal;
    background:rgba(245,245,244,0.94);
    backdrop-filter:blur(6px);
    box-shadow:0 1px 0 var(--border);
    transition:background .4s ease, box-shadow .4s ease, padding .3s ease;
  }
  .site-header.scrolled{
    padding:14px 40px;
  }
  /* only the homepage has a dark hero behind the header, so only there
     does the header start transparent with white text */
  .brand{ display:inline-flex; align-items:center; }
  .brand img{ display:block; height:50px; width:auto; }

  nav.main-nav{ display:flex; gap:38px; }
  nav.main-nav a{
    font-size:.86rem; letter-spacing:.05em; color:var(--ink);
    position:relative; padding-bottom:4px;
  }
  nav.main-nav a::after{
    content:''; position:absolute; left:0; bottom:0; width:0; height:1px; background:currentColor;
    transition:width .35s ease;
  }
  nav.main-nav a:hover::after{ width:100%; }

  .nav-item{ position:relative; display:inline-flex; }
  .nav-caret{ display:inline-block; margin-left:4px; font-size:.7em; transition:transform .25s ease; }
  .nav-item:hover .nav-caret, .nav-item:focus-within .nav-caret{ transform:rotateX(180deg); }
  .nav-dropdown{
    position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(4px);
    background:var(--white); border:1px solid var(--border); border-radius:10px;
    box-shadow:0 12px 28px rgba(0,0,0,.09); padding:8px 0; min-width:190px;
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .2s ease, transform .2s ease; z-index:70;
  }
  .nav-item:hover .nav-dropdown,
  .nav-item:focus-within .nav-dropdown{
    opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(0);
  }
  .nav-dropdown a{
    display:block; padding:9px 20px; font-size:.84rem; color:var(--ink);
    white-space:nowrap; position:static;
  }
  .nav-dropdown a::after{ display:none; }
  .nav-dropdown a:hover{ background:var(--offwhite); color:var(--accent-dark); }

  .nav-toggle{
    display:none; flex-direction:column; justify-content:center; gap:5px;
    width:44px; height:44px; background:none; border:none; padding:0;
  }
  .nav-toggle span{
    display:block; width:100%; height:1.5px; background:var(--ink);
    transition:background .3s ease, transform .3s ease, opacity .3s ease;
  }
  body .nav-toggle[aria-expanded="true"] span{ background:var(--ink) !important; }
  .nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .nav-toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
  .nav-toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }

  .mobile-nav{
    position:fixed; inset:0; z-index:59;
    background:var(--white);
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
    gap:8px; padding:0 40px;
    opacity:0; visibility:hidden; transform:translateY(-8px);
    transition:opacity .35s ease, transform .35s ease, visibility 0s linear .35s;
  }
  .mobile-nav.is-open{
    opacity:1; visibility:visible; transform:translateY(0);
    transition:opacity .35s ease, transform .35s ease;
  }
  .mobile-nav a{
    font-family:var(--font-serif); font-size:1.5rem; color:var(--ink);
    padding:12px 0; border-bottom:1px solid var(--border); width:100%;
  }

  .mobile-nav-details{ width:100%; border-bottom:1px solid var(--border); }
  .mobile-nav-details summary{
    font-family:var(--font-serif); font-size:1.5rem; color:var(--ink);
    padding:12px 0; width:100%; cursor:pointer; list-style:none;
    display:flex; align-items:center; justify-content:space-between;
  }
  .mobile-nav-details summary::-webkit-details-marker{ display:none; }
  .mobile-nav-details summary::after{
    content:'▾'; font-size:.8rem; margin-left:10px; color:var(--accent-dark);
    transition:transform .25s ease;
  }
  .mobile-nav-details[open] summary::after{ transform:rotate(180deg); }
  .mobile-nav-sublink{
    display:block; font-family:var(--font-sans) !important; font-size:1rem !important;
    color:var(--sub) !important; padding:10px 0 10px 18px !important;
    border-bottom:none !important; width:100%;
  }
  .mobile-nav-details a:last-of-type{ padding-bottom:16px !important; }

  /* ---------- side rail (fixed) ---------- */
  .side-rail{
    position:fixed; top:50%; right:0; transform:translateY(-50%);
    z-index:55; display:flex; flex-direction:column;
    background:var(--near-black); border-radius:10px 0 0 10px; overflow:hidden;
    box-shadow:-4px 0 18px rgba(0,0,0,.12);
  }
  .side-rail a{
    display:flex; flex-direction:column; align-items:center; gap:6px;
    color:#fff; padding:16px 14px; font-size:.68rem; letter-spacing:.1em;
    border-bottom:1px solid rgba(255,255,255,.14);
    transition:background .25s ease;
  }
  .side-rail a:last-child{ border-bottom:none; }
  .side-rail a:hover{ background:var(--accent-dark); }
  .side-rail svg{ width:18px; height:18px; }

  /* ---------- vertical tagline ---------- */
  .vertical-tag{
    position:fixed; left:18px; top:50%; transform:translateY(-50%);
    z-index:40; writing-mode:vertical-rl; white-space:nowrap;
    font-size:.72rem; letter-spacing:.32em; color:var(--muted);
    opacity:0; animation:fadeIn 1.2s ease 1.4s forwards;
  }

  @keyframes fadeIn{ to{ opacity:1; } }

  /* ---------- Hero (crossfade slider) ---------- */
  .hero{
    position:relative; min-height:100svh; min-height:100vh; overflow:hidden;
    background:var(--near-black);
    display:flex; flex-direction:column; justify-content:flex-end;
  }

  .hero-slider{ position:absolute; inset:0; z-index:0; }
  .hero-slide{
    position:absolute; inset:0;
    background-size:cover; background-position:center;
    opacity:0;
    transition:opacity 1.3s ease-in-out;
  }
  .hero-slide.is-active{ opacity:1; }
  /* placeholder tones — replace with background-image:url('images/slide-1.jpg') etc. when photos are available */
  .hero-slide.slide-1{ background-image:url('images/hero-1.jpg'); }
  .hero-slide.slide-2{ background-image:url('images/hero-2.jpg'); }
  .hero-slide.slide-3{ background-image:url('images/hero-3.jpg'); }

  .hero-overlay{
    position:absolute; inset:0; z-index:1;
    background:
      radial-gradient(ellipse 62% 56% at 22% 92%, rgba(38,51,47,.55), rgba(38,51,47,0) 68%),
      linear-gradient(to top, rgba(0,0,0,.14) 0%, rgba(0,0,0,.03) 38%, rgba(0,0,0,0) 58%),
      rgba(255,255,255,.10);
  }
  @media (min-width:960px){
    .hero-overlay{
      background:
        radial-gradient(ellipse 50% 58% at 50% 94%, rgba(38,51,47,.5), rgba(38,51,47,0) 68%),
        linear-gradient(to top, rgba(0,0,0,.14) 0%, rgba(0,0,0,.03) 38%, rgba(0,0,0,0) 58%),
        rgba(255,255,255,.10);
    }
  }
  .hero-leaf{
    position:absolute; bottom:14px; z-index:1;
    width:74px; height:auto; pointer-events:none;
    filter:drop-shadow(0 6px 14px rgba(0,0,0,.25));
  }
  .hero-leaf.left{ left:10px; }
  .hero-leaf.right{ right:10px; transform:scaleX(-1); }
  @media (max-width:960px){
    .hero-leaf{
      display:block; width:40px;
      top:82%; bottom:auto; transform:translateY(-50%);
    }
    .hero-leaf.left{ left:6px; }
    .hero-leaf.right{ right:6px; transform:translateY(-50%) scaleX(-1); }
  }

  .leaf-fade{ opacity:0; transition:opacity 1.1s ease; }
  .leaf-fade.is-visible{ opacity:1; }
  .hero-leaf.left.leaf-fade{ transition-delay:1.3s; }
  .hero-leaf.right.leaf-fade{ transition-delay:1.65s; }
  .hours-leaf.tl.leaf-fade{ transition-delay:.15s; }
  .hours-leaf.br.leaf-fade{ transition-delay:.4s; }

  .hero-caption{
    position:relative; z-index:2;
    padding:0 28px 76px;
    min-height:7.6em;
  }
  .hero-caption-text{
    position:absolute; left:28px; right:28px; bottom:76px;
    color:#fff; font-family:var(--font-serif); font-weight:700;
    font-size:clamp(1.5rem, 6vw, 2.1rem); line-height:1.55;
    opacity:0; transition:opacity .9s ease-in-out;
    text-shadow:
      1px 0 0 rgba(32,37,34,.18),
      -1px 0 0 rgba(32,37,34,.18),
      0 1px 0 rgba(32,37,34,.18),
      0 -1px 0 rgba(32,37,34,.18),
      0 2px 8px rgba(32,37,34,.5);
    text-align:center;
  }
  .hero-caption-text.is-active{ opacity:1; }
  .hero-caption-text .sub-copy{
    display:block; font-size:.68em; font-weight:600; letter-spacing:.01em;
    margin-bottom:.2em; margin-top:.25em; opacity:.94;
  }
  .hero-caption-text .main-copy{
    display:block; font-size:1.2em; font-weight:700;
  }
  .sub-copy-desktop{ display:none; }
  @media (max-width:959px){
    .hero-caption-text .sub-copy{ font-size:1.2em; }
  }
  @media (min-width:960px){
    .sub-copy-mobile{ display:none; }
    .sub-copy-desktop{ display:block; }
  }

  .hero-dots{
    position:relative; z-index:2;
    display:flex; justify-content:center; gap:4px;
    padding-bottom:26px;
  }
  .hero-dots .dot{
    width:32px; height:32px; padding:0;
    background:none; border:none;
    display:flex; align-items:center; justify-content:center;
  }
  .hero-dots .dot::before{
    content:''; width:7px; height:7px; border-radius:50%;
    background:rgba(255,255,255,.45);
    transition:background .4s ease, transform .4s ease;
  }
  .hero-dots .dot.is-active::before{ background:#fff; transform:scale(1.3); }

  @media (min-width:640px){
    .hero-caption-text{ font-size:clamp(1.8rem, 3.6vw, 2.6rem); left:40px; right:40px; bottom:96px; }
    .hero{ min-height:92vh; }
  }
  @media (min-width:960px){
    .hero-caption-text{ max-width:640px; left:auto; right:auto; margin:0 auto; text-align:center; }
    .hero-caption{ display:flex; justify-content:center; }
  }

  /* ---------- reveal utility ---------- */
  .reveal{ opacity:0; transform:translateY(26px); transition:opacity .8s ease, transform .8s cubic-bezier(.22,1,.36,1); }
  .reveal.is-visible{ opacity:1; transform:translateY(0); }
  .reveal-mask{ overflow:hidden; }
  .reveal-mask .inner{ display:block; transform:translateY(100%); transition:transform .9s cubic-bezier(.22,1,.36,1); }
  .reveal-mask.is-visible .inner{ transform:translateY(0); }

  .stagger .reveal:nth-child(1){ transition-delay:0s; }
  .stagger .reveal:nth-child(2){ transition-delay:.12s; }
  .stagger .reveal:nth-child(3){ transition-delay:.24s; }
  .stagger .reveal:nth-child(4){ transition-delay:.36s; }

  /* ---------- section label ---------- */
  .eyebrow{
    font-size:.78rem; letter-spacing:.22em; color:var(--accent-dark); margin-bottom:18px;
    display:inline-flex; align-items:center; gap:7px;
  }
  .eyebrow::before{
    content:'';
    width:11px; height:15px; flex:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234F8C7A' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
  }
  .page-banner.has-photo .eyebrow::before{
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23A9D3A0' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
  }
  .section{ padding:120px 0; }
  .section-head{ max-width:640px; margin-bottom:64px; }
  .section-head h2{ font-size:clamp(1.7rem, 3.4vw, 2.5rem); color:var(--ink); line-height:1.55; }
  .section-head p{ margin-top:20px; color:var(--sub); font-size:.98rem; }

  /* ---------- feature strip ---------- */
  .strip-section{ background:var(--offwhite); overflow:hidden; padding:64px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
  .strip-track{ display:flex; gap:0; width:max-content; animation:marquee 34s linear infinite; }
  .strip-track:hover{ animation-play-state:paused; }
  @keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
  .strip-item{
    display:flex; align-items:center; gap:16px;
    padding:0 56px; border-right:1px solid var(--border);
    color:var(--ink); white-space:nowrap; font-size:1rem; letter-spacing:.03em;
  }
  .strip-item svg{ width:26px; height:26px; flex:none; }
  .strip-item svg *{ stroke:var(--accent); }

  /* ---------- about / feature section ---------- */
  .about{ background:var(--white); }
  .about-grid{
    display:flex; flex-direction:column; gap:48px;
  }
  .about-copy p{ color:var(--sub); font-size:1rem; margin-bottom:18px; }
  .about-copy .doctor{
    margin-top:34px; padding-top:26px; border-top:1px solid var(--border);
    font-size:.92rem; color:var(--sub);
  }
  .about-copy .doctor strong{ font-family:var(--font-serif); font-size:1.05rem; color:var(--ink); display:block; margin-bottom:4px; }

  .cta-row{ display:flex; flex-wrap:wrap; gap:16px; margin-top:36px; }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 30px; border-radius:2px; font-size:.9rem; letter-spacing:.04em;
    transition:background .3s ease, color .3s ease, border-color .3s ease;
  }
  .btn-primary{ background:var(--accent-dark); color:#fff; }
  .btn-primary:hover{ background:var(--ink); }
  .btn-outline{ border:1px solid var(--accent-dark); color:var(--accent-dark); }
  .btn-outline:hover{ background:var(--accent-dark); color:#fff; }

  .about-visual{
    position:relative; aspect-ratio:1447/1087; border-radius:6px; overflow:hidden;
    max-width:820px; width:100%; margin:0 auto;
  }
  .about-visual img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

  /* ---------- audience cards ---------- */
  .audience{ background:var(--offwhite); }
  .audience-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border); }
  .audience-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
  .audience-card{
    background:var(--white); padding:52px 40px; display:flex; flex-direction:column; gap:20px;
    min-height:340px;
  }
  .audience-icon{
    width:52px; height:52px; border-radius:50%; background:var(--offwhite);
    display:flex; align-items:center; justify-content:center;
  }
  .audience-icon svg{ width:26px; height:26px; }
  .audience-icon svg *{ stroke:var(--accent-dark); }
  .audience-card h3{ font-size:1.2rem; color:var(--ink); font-weight:700; }
  .audience-card p{ color:var(--sub); font-size:.92rem; flex:1; }
  .audience-card .go{ font-size:.82rem; letter-spacing:.04em; color:var(--accent-dark); display:inline-flex; align-items:center; gap:6px; }
  .audience-card .go svg{ width:14px; height:14px; transition:transform .3s ease; }
  .audience-card:hover .go svg{ transform:translateX(4px); }

  /* ---------- features (こだわり) ---------- */
  .features{ background:var(--white); }
  .feature-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--border); }
  .feature-card{
    background:var(--white); padding:44px 30px; display:flex; flex-direction:column; gap:16px;
  }
  .feature-icon{
    width:46px; height:46px; border-radius:50%; background:var(--offwhite);
    display:flex; align-items:center; justify-content:center;
  }
  .feature-icon svg{ width:22px; height:22px; }
  .feature-icon svg *{ stroke:var(--accent-dark); }
  .feature-card h3{ font-size:1.02rem; color:var(--ink); font-weight:700; line-height:1.5; }
  .feature-card p{ color:var(--sub); font-size:.86rem; }

  /* ---------- schedule / clinic info ---------- */
  .info{ background:var(--white); }
  .info-grid{ display:grid; grid-template-columns:1fr 1fr; gap:80px; }
  .schedule-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }
  table.schedule{ width:100%; border-collapse:collapse; font-size:.9rem; position:relative; z-index:1; }
  table.schedule th,table.schedule td{
    padding:16px 10px; text-align:center; border-bottom:1px solid var(--border); color:var(--sub);
  }
  table.schedule thead th{
    font-family:var(--font-serif); color:var(--ink); font-weight:700; font-size:.95rem;
  }
  table.schedule td.on{ color:var(--accent-dark); font-family:var(--font-serif); font-size:1.05rem; }
  table.schedule td.off{ color:var(--muted); }
  .schedule-note{ margin-top:18px; font-size:.82rem; color:var(--sub); position:relative; z-index:1; }

  @media (max-width:640px){
    table.schedule th, table.schedule td{ padding:9px 3px; font-size:.72rem; }
    table.schedule thead th{ font-size:.76rem; }
    table.schedule td.on{ font-size:.86rem; }
  }
  @media (max-width:360px){
    table.schedule th, table.schedule td{ padding:7px 2px; font-size:.66rem; }
  }

  .info-list{ display:flex; flex-direction:column; }
  .info-list .row{ display:flex; justify-content:space-between; gap:24px; padding:20px 0; border-bottom:1px solid var(--border); }
  .info-list .row dt{ color:var(--sub); font-size:.86rem; letter-spacing:.04em; white-space:nowrap; }
  .info-list .row dd{ margin:0; text-align:right; font-size:.95rem; color:var(--ink); }
  .info-list .row a{ border-bottom:1px solid transparent; transition:border-color .3s ease; }
  .info-list .row a:hover{ border-color:currentColor; }

  /* ---------- access ---------- */
  .access{ background:var(--offwhite); color:var(--ink); border-top:1px solid var(--border); }
  .access .section-head h2{ color:var(--ink); }
  .access .section-head p{ color:var(--sub); }
  .access-grid{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:start; }
  .access-map{ border-radius:6px; overflow:hidden; aspect-ratio:4/3; filter:grayscale(.35) contrast(1.02); border:1px solid var(--border); }
  .access-map iframe{ width:100%; height:100%; border:0; }
  .access-details dt{ font-size:.8rem; letter-spacing:.1em; color:var(--accent-dark); margin-top:26px; }
  .access-details dt:first-child{ margin-top:0; }
  .access-details dd{ margin:8px 0 0; font-size:1.05rem; color:var(--ink); }
  .access-details a{ border-bottom:1px solid var(--border); }

  /* ---------- footer ---------- */
  footer{ background:var(--near-black); color:rgba(255,255,255,.7); padding:60px 0 30px; border-top:1px solid rgba(255,255,255,.08); }
  .footer-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:40px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.12); }
  .footer-brand{ font-family:var(--font-serif); color:#fff; font-size:1.1rem; }
  .footer-brand span{ display:block; font-family:var(--font-sans); font-size:.78rem; color:rgba(255,255,255,.6); margin-top:8px; font-weight:300; }
  .footer-nav{ display:flex; gap:32px; flex-wrap:wrap; }
  .footer-nav a{ font-size:.85rem; }
  .footer-nav a:hover{ color:#fff; }
  .footer-bottom{ padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:.75rem; color:rgba(255,255,255,.5); }

  /* ---------- responsive ---------- */
  @media (max-width:960px){
    .side-rail, .vertical-tag{ display:none; }
    nav.main-nav{ display:none; }
    .nav-toggle{ display:flex; }
    .about-grid, .info-grid, .access-grid{ grid-template-columns:1fr; gap:48px; }
    .audience-grid{ grid-template-columns:1fr; }
    .feature-grid{ grid-template-columns:1fr 1fr; }
    .section{ padding:80px 0; }
    .wrap{ padding:0 22px; }
    .site-header{ padding:18px 22px; }
  }

  @media (max-width:480px){
    .section{ padding:56px 0; }
    .section-head{ margin-bottom:40px; }
    .wrap{ padding:0 18px; }
    .site-header{ padding:14px 18px; }
    .brand img{ height:34px; }
    .audience-card{ padding:36px 26px; min-height:0; }
    .feature-grid{ grid-template-columns:1fr; }
    .feature-card{ padding:32px 26px; }
    .footer-grid{ flex-direction:column; }
    .footer-bottom{ flex-direction:column; align-items:flex-start; }
    .cta-row{ flex-direction:column; align-items:stretch; }
    .btn{ justify-content:center; }
    .mobile-nav a{ font-size:1.25rem; }
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  }

  /* ---------- nav active state ---------- */
  nav.main-nav a.is-current{ color:var(--ink); font-weight:700; }
  nav.main-nav a.is-current::after{ width:100%; }
  .mobile-nav a.is-current{ color:var(--accent-dark); }
  .footer-nav a.is-current{ color:#fff; }

  /* ---------- page banner (subpages) ---------- */
  .page-banner{
    padding:168px 0 64px; background:var(--offwhite); border-bottom:1px solid var(--border);
  }
  .page-banner .eyebrow{ margin-bottom:14px; }
  .page-banner h1{ font-size:clamp(1.8rem, 4vw, 2.6rem); color:var(--ink); line-height:1.5; }
  .page-banner p{ margin-top:16px; color:var(--sub); font-size:.98rem; max-width:56ch; }
  @media (max-width:960px){
    .page-banner{ padding:112px 0 48px; }
  }

  .page-banner.has-photo{
    position:relative; overflow:hidden; padding-top:190px; padding-bottom:90px;
    background:none; border-bottom:none;
  }
  .page-banner-bg{
    position:absolute; inset:0; background-size:cover; background-position:center;
    opacity:0; transition:opacity 1.3s ease-in-out;
  }
  .page-banner-bg.is-active{ opacity:1; }
  .page-banner-overlay{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(30,30,28,.40) 0%, rgba(30,30,28,.18) 55%, rgba(30,30,28,.48) 100%);
  }
  .page-banner.has-photo .wrap{ position:relative; z-index:1; }
  .page-banner-caption{ opacity:0; transition:opacity .9s ease-in-out; }
  .page-banner-caption.is-active{ opacity:1; }
  .page-banner.has-photo .eyebrow{ color:var(--accent); }
  .page-banner.has-photo h1{
    color:#fff;
    text-shadow:
      1px 0 0 rgba(32,37,34,.18),
      -1px 0 0 rgba(32,37,34,.18),
      0 1px 0 rgba(32,37,34,.18),
      0 -1px 0 rgba(32,37,34,.18),
      0 2px 8px rgba(32,37,34,.5);
  }
  .page-banner.has-photo p{
    color:#fff;
    text-shadow:
      1px 0 0 rgba(32,37,34,.16),
      -1px 0 0 rgba(32,37,34,.16),
      0 1px 0 rgba(32,37,34,.16),
      0 -1px 0 rgba(32,37,34,.16),
      0 2px 8px rgba(32,37,34,.45);
  }
  @media (max-width:960px){
    .page-banner.has-photo{ padding-top:130px; padding-bottom:64px; }
  }

  /* ---------- director greeting (clinic page) ---------- */
  .greeting{ background:var(--white); position:relative; overflow:hidden; }
  .greeting::before{
    content:''; position:absolute; top:-8%; right:-6%; width:200px; height:300px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23569988' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
    opacity:.06; transform:rotate(20deg); pointer-events:none;
  }
  .greeting-grid{ display:grid; grid-template-columns:340px 1fr; gap:64px; align-items:start; position:relative; z-index:1; }
  .greeting-qualifications{ margin-top:56px; padding-top:40px; border-top:1px solid var(--border); max-width:640px; position:relative; z-index:1; }
  .greeting-photo{ border-radius:6px; overflow:hidden; aspect-ratio:4/5; }
  .greeting-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .greeting-copy p{ color:var(--sub); font-size:.98rem; margin-bottom:18px; }
  .greeting-sign{ margin-top:30px; text-align:right; }
  .greeting-sign .role{ display:block; font-size:.82rem; color:var(--sub); letter-spacing:.05em; }
  .greeting-sign .name{ display:block; margin-top:6px; font-family:var(--font-serif); font-size:1.25rem; font-weight:700; color:var(--ink); }
  @media (max-width:800px){
    .greeting-grid{ grid-template-columns:1fr; gap:32px; }
    .greeting-photo{ max-width:280px; margin:0 auto; }
  }

  /* ---------- homepage quick links ---------- */
  a.feature-card{ transition:background .3s ease; }
  a.feature-card:hover{ background:var(--offwhite); }
  .feature-card .go{
    margin-top:auto; font-size:.8rem; letter-spacing:.04em; color:var(--accent-dark);
    display:inline-flex; align-items:center; gap:6px;
  }
  .feature-card .go svg{ width:13px; height:13px; transition:transform .3s ease; }
  a.feature-card:hover .go svg{ transform:translateX(4px); }

  /* ---------- stub / coming soon page ---------- */
  .stub{
    min-height:44vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
    text-align:center; padding:64px 24px 96px;
  }
  .stub-icon{
    width:64px; height:64px; border-radius:50%; background:var(--offwhite);
    display:flex; align-items:center; justify-content:center; margin-bottom:28px;
  }
  .stub-icon svg{ width:28px; height:28px; }
  .stub-icon svg *{ stroke:var(--accent-dark); }
  .stub h1{ font-size:clamp(1.5rem, 3.4vw, 2rem); color:var(--ink); }
  .stub p{ margin-top:16px; color:var(--sub); font-size:.95rem; max-width:44ch; }
  .stub .cta-row{ justify-content:center; margin-top:32px; }

  /* ---------- homepage quicklink grid ---------- */
  .quicklink-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:1px; background:var(--border); }

  /* ---------- sticky mobile call button ---------- */
  .sticky-call-bar{ display:none; }
  @media (max-width:960px){
    .sticky-call-bar{
      display:flex; align-items:center; justify-content:center; gap:10px;
      position:fixed; left:0; right:0; bottom:0; z-index:65;
      background:var(--accent-dark); color:#fff;
      padding:15px 16px calc(15px + env(safe-area-inset-bottom));
      font-size:.95rem; font-weight:700; letter-spacing:.03em;
      box-shadow:0 -2px 14px rgba(0,0,0,.16);
      transition:opacity .25s ease;
    }
    .sticky-call-bar svg{ width:17px; height:17px; flex:none; }
    .mobile-nav.is-open ~ .sticky-call-bar{ opacity:0; pointer-events:none; }
    body{ padding-bottom:60px; }
    .hero-dots{ padding-bottom:88px; }
  }

  /* ---------- treatment x rehabilitation (home) ---------- */
  .treatment{ background:var(--offwhite); position:relative; overflow:hidden; }
  .treatment::before{
    content:''; position:absolute; top:-6%; left:-6%; width:220px; height:340px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234F8C7A' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
    opacity:.05; transform:rotate(-18deg); pointer-events:none;
  }
  .treatment::after{
    content:''; position:absolute; bottom:-8%; right:-6%; width:260px; height:400px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%2345687B' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
    opacity:.05; transform:rotate(162deg); pointer-events:none;
  }
  .treatment .section-head{ max-width:none; margin-left:auto; margin-right:auto; text-align:center; position:relative; z-index:1; }
  .treatment .eyebrow{ text-align:center; }
  .treatment-ornament{
    display:flex; justify-content:center; margin:22px 0 60px; position:relative; z-index:1;
  }
  .treatment-ornament img{ height:46px; width:auto; }
  .treatment-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:56px 40px; position:relative; z-index:1; }
  .treatment-card{ display:flex; flex-direction:column; margin-top:32px; }

  .treatment-label{
    display:block; font-family:var(--font-serif); font-size:.92rem; letter-spacing:.14em;
    color:var(--accent-dark); margin-bottom:40px;
  }
  .treatment-media-wrap{ position:relative; }
  .treatment-media{
    position:relative; aspect-ratio:4/3.2; overflow:hidden; border-radius:2px;
    background:#2A2A25;
  }
  .treatment-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  .treatment-badge{
    position:absolute; top:-24px; left:-14px; z-index:3;
    width:60px; height:60px; border-radius:50%;
    background:var(--accent-dark); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-family:var(--font-serif); font-weight:700; font-size:1.3rem;
    box-shadow:0 8px 18px rgba(28,39,56,.22);
  }

  .treatment-copy{ padding-top:28px; text-align:center; }
  .treatment-title-row{ display:flex; align-items:center; justify-content:center; gap:8px; margin:0 auto 18px; }
  .treatment-title-leaf{ width:20px; height:auto; flex:none; }
  .treatment-title-leaf.right{ transform:scaleX(-1); }
  .treatment-copy h3{
    font-family:var(--font-serif); font-weight:700; font-size:1.05rem; color:var(--ink);
    line-height:1.7; padding:14px 4px; margin:0;
    border-top:3px double var(--accent-dark); border-bottom:3px double var(--accent-dark);
  }
  .treatment-copy p{ margin:0; color:var(--sub); font-size:.88rem; line-height:1.9; }
  .treatment-copy p strong{ display:block; margin-top:4px; color:var(--accent-dark); font-weight:700; }
  .treatment-cta{ margin-top:24px; }
  .treatment-cta .btn{ padding:12px 26px; font-size:.84rem; }

  @media (max-width:800px){
    .treatment-grid{ grid-template-columns:1fr; gap:64px; }
    .treatment-media{ aspect-ratio:16/11; }
  }

  /* ---------- news carousel (home) ---------- */
  .news-teaser{ background:var(--white); padding-top:88px; padding-bottom:8px; }
  .news-teaser .section-head{ text-align:center; max-width:none; margin:0 auto 48px; }
  .news-teaser .eyebrow{ text-align:center; }

  .news-carousel{ position:relative; }
  .news-arrow{
    position:absolute; top:34%; transform:translateY(-50%); z-index:3;
    width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
    background:var(--offwhite); color:var(--ink);
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .25s ease, border-color .25s ease;
  }
  .news-arrow:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .news-arrow svg{ width:16px; height:16px; }
  .news-arrow.prev{ left:-14px; }
  .news-arrow.next{ right:-14px; }
  .news-carousel.no-scroll .news-arrow{ display:none; }

  .news-track{
    display:flex; gap:28px; overflow-x:auto; scroll-snap-type:x proximity;
    padding:2px 2px 10px; margin:0 -2px;
    scrollbar-width:none;
  }
  .news-track::-webkit-scrollbar{ display:none; }
  .news-item{
    scroll-snap-align:start; flex:0 0 auto; width:320px;
  }
  .news-item-media{
    position:relative; aspect-ratio:4/3; border-radius:8px; overflow:hidden; background:var(--offwhite);
  }
  .news-item-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  .news-item-media.is-logo{ display:flex; align-items:center; justify-content:center; background:var(--white); border:1px solid var(--border); }
  .news-item-media.is-logo img{ width:62%; height:auto; object-fit:contain; }
  .news-item-tag{
    display:inline-flex; align-items:center; gap:6px; margin-top:16px;
    color:var(--accent-dark); font-family:var(--font-serif); font-weight:700;
    font-size:.8rem; letter-spacing:.05em;
    padding:4px 0; border-top:2px double var(--accent-dark); border-bottom:2px double var(--accent-dark);
  }
  .news-item-tag::before, .news-item-tag::after{
    content:''; width:9px; height:12px; flex:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234F8C7A' d='M12 2C6 5 3 11 3 15c0 4.5 3.8 7 9 7s9-2.5 9-7c0-4-3-10-9-13z'/%3E%3C/svg%3E");
    background-size:contain; background-repeat:no-repeat;
  }
  .news-item-tag::after{ transform:scaleX(-1); }
  .news-item-title{
    margin-top:10px; font-size:.96rem; font-weight:700; color:var(--ink); line-height:1.65;
  }
  .news-item-date{ margin-top:8px; color:var(--sub); font-size:.82rem; line-height:1.7; letter-spacing:.02em; }

  /* ---------- news list page (news.html) ---------- */
  .news-category{ padding-top:64px; padding-bottom:64px; }
  .news-category-heading{ margin-bottom:36px; }
  .news-category-heading h2{
    font-family:var(--font-serif); font-weight:700; font-size:1.3rem; color:var(--ink);
    margin:0; padding:12px 4px;
    border-top:3px double var(--accent-dark); border-bottom:3px double var(--accent-dark);
  }
  .news-list-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(260px,1fr)); gap:32px 28px; }
  .news-list-grid .news-item{ width:auto; }
  @media (max-width:640px){
    .news-category{ padding-top:48px; padding-bottom:48px; }
  }
  .news-more{ text-align:right; margin-top:28px; }
  .news-more a{ font-size:.85rem; color:var(--accent-dark); font-weight:700; }

  @media (max-width:800px){
    .news-teaser{ padding-top:56px; }
    .news-teaser .section-head{ margin-bottom:30px; }
    .news-arrow{ display:none; }
    .news-track{
      display:flex; flex-direction:column; overflow-x:visible; gap:32px;
      scroll-snap-type:none; padding:0; margin:0;
    }
    .news-item{ width:auto; scroll-snap-align:none; }
  }

  /* ---------- hours card (home) ---------- */
  .hours-section{ background:var(--white); }
  .hours-card{
    max-width:840px; margin:0 auto; position:relative; overflow:hidden;
    background:var(--offwhite); border:1px solid var(--border); border-radius:20px;
    padding:44px 46px; box-shadow:0 14px 34px rgba(30,30,28,.05);
  }
  .hours-leaf{
    position:absolute; width:30px; height:auto; z-index:0; pointer-events:none;
    filter:drop-shadow(0 3px 8px rgba(0,0,0,.10));
  }
  .hours-leaf.tl{ top:10px; left:10px; }
  .hours-leaf.br{ bottom:10px; right:10px; transform:scaleX(-1); }
  @media (max-width:640px){ .hours-leaf{ width:13px; } .hours-leaf.tl{ top:6px; left:6px; } .hours-leaf.br{ bottom:6px; right:6px; } }
  table.hours{ width:100%; border-collapse:collapse; position:relative; z-index:1; }
  table.hours th, table.hours td{
    padding:14px 6px; text-align:center; border-bottom:1px solid var(--border); font-size:.86rem;
  }
  table.hours thead th{
    font-family:var(--font-serif); font-weight:700; color:var(--ink); font-size:.92rem;
  }
  table.hours thead th:first-child{ text-align:left; }
  table.hours tbody th{
    text-align:left; font-family:var(--font-serif); font-weight:700; color:var(--accent-dark);
    white-space:nowrap; padding-left:2px;
  }
  table.hours td{ color:var(--sub); line-height:1.5; }
  table.hours td.off{ color:var(--muted); }
  .hours-note{ position:relative; z-index:1; margin-top:20px; color:var(--sub); font-size:.82rem; text-align:center; }
  .hours-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

  @media (max-width:640px){
    .hours-card{ padding:24px 12px; border-radius:16px; }
    table.hours th, table.hours td{ padding:8px 2px; font-size:.68rem; line-height:1.35; }
    table.hours thead th{ font-size:.72rem; }
    table.hours tbody th{ padding-left:0; font-size:.7rem; }
  }
  @media (max-width:360px){
    table.hours th, table.hours td{ padding:6px 1px; font-size:.62rem; }
    table.hours thead th{ font-size:.66rem; }
  }

  /* ---------- access teaser (home) ---------- */
  .access-teaser{ background:var(--offwhite); }
  .access-teaser-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
  .access-teaser-map{ border-radius:14px; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--border); filter:grayscale(.3) contrast(1.02); }
  .access-teaser-map iframe{ width:100%; height:100%; border:0; }
  .access-teaser-details dl{ margin:0 0 28px; }
  .access-teaser-details dt{ font-size:.78rem; letter-spacing:.1em; color:var(--accent-dark); margin-top:18px; }
  .access-teaser-details dt:first-child{ margin-top:0; }
  .access-teaser-details dd{ margin:6px 0 0; font-size:1rem; color:var(--ink); }
  .access-teaser-details dd a{ border-bottom:1px solid var(--border); }

  @media (max-width:800px){
    .access-teaser-grid{ grid-template-columns:1fr; gap:32px; }
  }

  /* ---------- treatment menu grid (home, above FEATURE) ---------- */
  .menu-section{ background:var(--white); }
  .menu-section .section-head{ text-align:center; max-width:none; margin:0 auto 44px; }
  .menu-section .eyebrow{ text-align:center; }
  .menu-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--border); border:1px solid var(--border);
  }
  .menu-item{
    background:var(--white); display:flex; flex-direction:column; align-items:center;
    padding:30px 8px 24px; gap:14px;
  }
  .menu-icon{
    width:100px; height:100px; border-radius:50%; flex:none;
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 14px rgba(51,96,79,.22);
    overflow:hidden;
  }
  .menu-icon svg{ width:34px; height:34px; }
  .menu-icon svg *{ stroke:#fff; }
  .menu-icon img{ width:100%; height:100%; object-fit:cover; display:block; }
  .menu-item span{
    font-family:var(--font-serif); font-weight:700; font-size:.84rem; color:var(--ink);
    text-align:center; line-height:1.5;
  }

  @media (max-width:640px){
    .menu-icon{ width:80px; height:80px; }
    .menu-icon svg{ width:36px; height:36px; }
    .menu-item{ padding:22px 4px 18px; gap:10px; }
    .menu-item span{ font-size:.76rem; }
  }

  /* ---------- treatment detail blocks (department.html) ---------- */
  .detail-section{ background:var(--white); padding-top:20px; }
  .detail-block{
    display:grid; grid-template-columns:260px 1fr; gap:36px; align-items:center;
    padding:36px 0; border-bottom:1px solid var(--border);
  }
  .detail-block:last-child{ border-bottom:none; }
  .detail-image-placeholder{
    aspect-ratio:4/3; border-radius:10px; overflow:hidden;
    background:var(--offwhite); display:flex; align-items:center; justify-content:center;
    color:var(--muted); font-size:.82rem; letter-spacing:.05em;
  }
  .detail-image-placeholder:not(:has(img)){ border:2px dashed var(--border); }
  .title-row{ display:flex; align-items:center; justify-content:center; gap:8px; margin:0 0 20px; }
  .detail-text h3{
    font-family:var(--font-serif); font-size:1.1rem; font-weight:700; color:var(--ink);
    margin:0; padding:12px 4px;
    border-top:3px double var(--accent-dark); border-bottom:3px double var(--accent-dark);
  }
  .detail-text p{ color:var(--sub); font-size:.94rem; line-height:1.9; }

  @media (max-width:800px){
    .detail-block{ grid-template-columns:1fr; gap:18px; padding:28px 0; }
    .detail-image-placeholder{ aspect-ratio:16/10; }
  }

  /* ---------- facility info (clinic.html) ---------- */
  .facility-info{ background:var(--offwhite); }
  .facility-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
  .facility-facts dt{ font-size:.78rem; letter-spacing:.1em; color:var(--accent-dark); margin-top:22px; }
  .facility-facts dt:first-child{ margin-top:0; }
  .facility-facts dd{ margin:6px 0 0; color:var(--ink); font-size:.95rem; line-height:1.9; }
  .facility-message p{ color:var(--sub); font-size:.96rem; line-height:1.95; margin-bottom:18px; }
  @media (max-width:800px){
    .facility-grid{ grid-template-columns:1fr; gap:36px; }
  }

  /* ---------- detail lead / Q&A formatting ---------- */
  .detail-lead{ font-weight:700; color:var(--ink); font-size:1.05rem; margin-bottom:12px; line-height:1.8; }
  .detail-qa{ margin-bottom:16px; }
  .detail-qa .q{
    display:flex; gap:8px; font-weight:700; color:var(--ink); font-size:.98rem; margin-bottom:8px; line-height:1.7;
  }
  .detail-qa .q .mark{ color:var(--accent-dark); flex:none; }
  .detail-qa .a{
    display:flex; gap:8px; font-weight:700; color:var(--ink); font-size:1.02rem; line-height:1.8;
  }
  .detail-qa .a .mark{ color:var(--accent); flex:none; }
  .detail-image-placeholder img{
    width:100%; height:100%; object-fit:cover; border-radius:8px; display:block;
  }


  /* ---------- facility tour (facility.html) ---------- */
  .facility-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; }
  .facility-tile{
    position:relative; display:block; aspect-ratio:4/3.2; overflow:hidden;
  }
  .facility-tile img{
    position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  }
  .facility-tile::before{
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(180deg, rgba(20,26,22,0) 45%, rgba(20,26,22,.78) 100%);
  }
  .facility-tile-label{
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    padding:18px 18px 16px; color:#fff;
  }
  .facility-tile-num{
    display:block; font-family:var(--font-serif); font-size:.72rem; letter-spacing:.14em;
    color:var(--accent); font-weight:700; margin-bottom:4px;
  }
  .facility-tile-name{
    display:block; font-family:var(--font-serif); font-size:1.02rem; font-weight:700;
  }
  @media (max-width:800px){
    .facility-grid{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:480px){
    .facility-grid{ grid-template-columns:1fr 1fr; }
    .facility-tile-name{ font-size:.88rem; }
  }

  /* ---------- menu card (photo + overlapping icon + button) ---------- */
  .menu-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px 28px; }
  .menu-item{
    background:var(--white); border-radius:20px; padding:14px 14px 30px;
    text-align:center; box-shadow:0 10px 28px rgba(20,26,22,.08);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  a.menu-item:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(20,26,22,.12); }
  .menu-photo{
    position:relative; border-radius:14px; overflow:hidden; aspect-ratio:4/3.3;
    box-shadow:0 4px 16px rgba(0,0,0,.12);
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
  }
  .menu-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .menu-icon{
    width:100px; height:100px; border-radius:50%; flex:none;
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 16px rgba(20,26,22,.2);
    border:4px solid #fff;
    margin:-46px auto 14px; position:relative; z-index:2;
  }
  .menu-icon svg{ width:36px; height:36px; }
  .menu-icon svg *{ stroke:#fff; }
  .menu-item span.menu-title{
    display:block; font-family:var(--font-serif); font-weight:700; font-size:1.02rem;
    color:var(--ink); margin-bottom:20px;
  }
  .menu-item span.menu-btn{
    display:inline-flex; align-items:center; gap:8px;
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
    color:#fff; padding:11px 26px; border-radius:999px;
    font-size:.82rem; font-weight:700; letter-spacing:.03em;
  }
  .menu-btn svg{ width:13px; height:13px; }

  @media (max-width:800px){
    .menu-grid{ grid-template-columns:repeat(2,1fr); gap:26px 18px; }
  }
  @media (max-width:480px){
    .menu-icon{ width:80px; height:80px; margin-top:-38px; }
    .menu-icon svg{ width:30px; height:30px; }
    .menu-item span.menu-title{ font-size:.9rem; }
    .menu-btn{ padding:9px 20px; font-size:.76rem; }
  }

  /* ---------- recruit entry form ---------- */
  .recruit-form{ margin-top:20px; }
  .form-row{
    padding:22px 0; border-bottom:1px dashed var(--border);
    display:grid; grid-template-columns:220px 1fr; gap:20px; align-items:start;
  }
  .form-row:first-child{ padding-top:0; }
  .form-label{
    font-family:var(--font-serif); font-weight:700; color:var(--ink); font-size:.94rem;
    padding-top:10px;
  }
  .form-label .required{ color:#c0483f; font-size:.76rem; margin-left:6px; font-weight:700; }
  .form-field input[type="text"],
  .form-field input[type="tel"],
  .form-field input[type="email"],
  .form-field select,
  .form-field textarea{
    width:100%; border:1px solid var(--border); border-radius:6px;
    padding:12px 14px; font-family:var(--font-sans); font-size:.92rem; color:var(--ink);
    background:var(--offwhite);
  }
  .form-field textarea{ min-height:110px; resize:vertical; }
  .form-field .hint{ margin-top:6px; font-size:.78rem; color:var(--muted); }
  .form-radio-group{ display:flex; gap:22px; flex-wrap:wrap; }
  .form-radio-group label{ display:flex; align-items:center; gap:7px; font-size:.9rem; color:var(--ink); }
  .form-check-row{ display:flex; align-items:center; gap:10px; margin-top:26px; font-size:.88rem; color:var(--ink); }
  .form-submit{
    margin-top:26px; width:100%; text-align:center; border:none; cursor:pointer;
    background:linear-gradient(135deg, var(--accent), var(--accent-dark));
    color:#fff; padding:16px; border-radius:999px; font-size:.98rem; font-weight:700;
    font-family:var(--font-serif); letter-spacing:.05em;
  }
  @media (max-width:640px){
    .form-row{ grid-template-columns:1fr; gap:8px; }
    .form-label{ padding-top:0; }
  }

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* sponsorship */
.sponsor{ background:var(--white); border-top:1px solid var(--border); }
.sponsor-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center; }
.sponsor-media{ position:relative; border-radius:20px; overflow:hidden; box-shadow:0 10px 30px rgba(42,42,37,.10); }
.sponsor-media > img{ display:block; width:100%; height:auto; }
.sponsor-badge{ position:absolute; left:20px; bottom:20px; width:76px; height:76px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(0,0,0,.15); }
.sponsor-badge img{ width:60%; height:76%; object-fit:contain; }
.sponsor-copy .eyebrow-line{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.sponsor-copy .eyebrow-line::before{ content:""; width:40px; height:1px; background:var(--accent); }
.sponsor-copy .eyebrow{ color:var(--accent); letter-spacing:.3em; }
.sponsor-copy h2{ font-family:var(--font-serif); font-size:clamp(1.5rem,2.6vw,2.1rem); line-height:1.8; letter-spacing:.08em; color:var(--near-black); margin:0 0 22px; }
.sponsor-copy p{ color:var(--sub); line-height:2; margin:0 0 28px; }
.sponsor-links{ display:flex; flex-wrap:wrap; gap:14px; }
@media (max-width:800px){
  .sponsor-grid{ grid-template-columns:1fr; gap:28px; }
  .sponsor-badge{ width:60px; height:60px; left:14px; bottom:14px; }
  .sponsor-links .btn{ width:100%; text-align:center; justify-content:center; }
}
