:root{
  --bg:#f4f8fc;
  --bg-elev:#ffffff;
  --bg-soft:#e8f2fa;
  --bg-muted:#eef6ff;
  --ink:#0f172a;
  --ink-muted:#334155;
  --ink-soft:#475569;
  --brand:#0c4a6e;
  --brand-light:#0369a1;
  --accent:#0284c7;
  --accent-soft:#e0f2fe;
  --line:#e2e8f0;
  --line-strong:#cbd5e1;
  --radius-sm:10px;
  --radius:14px;
  --radius-lg:22px;
  --shadow-sm:0 1px 3px rgba(15,23,42,.06);
  --shadow:0 16px 48px -16px rgba(15,23,42,.14);
  --font-ui:'Noto Sans JP',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-display:'Noto Serif JP','Shippori Mincho',serif;
  --section-y:clamp(5rem,11vw,8.75rem);
  --section-x:clamp(1.35rem,5vw,3.25rem);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;min-height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);font-weight:400;font-size:1rem;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0px);}
a{color:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* Nav */
nav{position:fixed;top:0;left:0;right:0;z-index:100;padding-top:max(.9rem, env(safe-area-inset-top));padding-right:max(1.2rem, env(safe-area-inset-right));padding-bottom:.9rem;padding-left:max(1.2rem, env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);box-shadow:var(--shadow-sm);}
.logo-wrap{display:flex;align-items:center;gap:.85rem;text-decoration:none;color:inherit;}
.logo-wrap:hover .logo-text{color:var(--brand);}
.logo-wrap:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:var(--radius-sm);}
.logo-mark{width:44px;height:44px;object-fit:contain;background:var(--bg-elev);border-radius:10px;box-shadow:0 0 0 1px var(--line);}
.logo-text{font-family:var(--font-display);font-size:.92rem;font-weight:600;letter-spacing:.12em;color:var(--ink);line-height:1.2;}
.logo-text small{display:block;font-family:'Cormorant Garamond',serif;font-size:.62rem;letter-spacing:.28em;color:var(--brand-light);font-weight:500;margin-top:.2rem;}
.nav-links{display:flex;gap:1.85rem;list-style:none;align-items:center;}
.nav-links a{color:var(--ink-soft);text-decoration:none;font-size:.8125rem;font-weight:600;letter-spacing:.06em;padding:.4rem 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s;}
.nav-links a:hover{color:var(--accent);border-bottom-color:var(--accent);}
.nav-toggle{display:none;background:transparent;border:none;cursor:pointer;padding:.5rem;flex-direction:column;justify-content:center;gap:6px;z-index:101;min-width:48px;min-height:48px;align-items:center;box-sizing:border-box;border-radius:var(--radius-sm);}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--ink-muted);border-radius:1px;}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:98;}
body.nav-open{overflow:hidden;}
body.nav-open .nav-backdrop{display:block;}

/* Buttons */
.btn{padding:1rem 1.85rem;font-family:var(--font-ui);font-size:.9375rem;font-weight:700;letter-spacing:.06em;text-decoration:none;transition:transform .2s,box-shadow .25s,background .2s,border-color .2s,color .2s;cursor:pointer;border:none;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-sm);min-height:52px;}
.btn .arrow{font-family:'Cormorant Garamond',serif;font-weight:600;transition:transform .3s;}
.btn:hover .arrow{transform:translateX(4px);}
.btn-primary{background:linear-gradient(165deg,#0284c7 0%,#0369a1 100%);color:#fff;box-shadow:0 8px 28px -6px rgba(2,132,199,.5),0 2px 0 rgba(255,255,255,.2) inset;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 36px -8px rgba(2,132,199,.55),0 2px 0 rgba(255,255,255,.25) inset;}
.btn-primary:active{transform:translateY(0);}
.btn-outline{background:var(--bg-elev);color:var(--brand);border:2px solid var(--brand-light);box-shadow:var(--shadow-sm);}
.btn-outline:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--brand);}

/* Sections */
section:not(.hero){padding:var(--section-y) var(--section-x);position:relative;}
.section-eyebrow{font-family:'Cormorant Garamond',serif;font-size:.72rem;letter-spacing:.32em;color:var(--brand-light);text-transform:uppercase;margin-bottom:1.1rem;display:flex;align-items:center;gap:.75rem;font-weight:600;}
.section-eyebrow::before{content:'';width:32px;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-soft));border-radius:1px;}
.section-title{font-family:var(--font-display);font-size:clamp(1.55rem,2.6vw,2.25rem);font-weight:600;line-height:1.38;margin-bottom:clamp(1.15rem,2.8vw,1.65rem);color:var(--ink);letter-spacing:.03em;}

/* Hero */
.hero{padding:0;margin:0;position:relative;overflow:hidden;background:var(--bg-soft);height:100svh;min-height:100svh;max-height:100svh;box-sizing:border-box;display:flex;flex-direction:column;padding:max(5rem, calc(env(safe-area-inset-top) + 4rem)) 0 0;width:100%;max-width:100vw;padding-inline:0;}
.hero-banner{position:relative;width:100%;flex:1 1 0;min-height:0;background:linear-gradient(180deg,#dbeafe 0%,#f0f9ff 45%,#f8fafc 100%);display:flex;align-items:center;justify-content:center;overflow:hidden;margin:0;padding:clamp(.35rem,1.6vw,.9rem) clamp(.65rem,3.5vw,2.25rem);box-sizing:border-box;}
.hero-banner picture{flex:1 1 0;min-height:0;width:100%;max-width:100%;display:flex;align-items:center;justify-content:center;margin:0;}
.hero-top-img{width:auto;max-width:min(819px,100%);height:auto;max-height:100%;object-fit:contain;object-position:center;display:block;transform:translateZ(0);image-rendering:auto;}
.hero-overlay{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:flex-start;padding:clamp(1.25rem,5vh,3rem) clamp(1rem,4vw,3rem) clamp(.75rem,3vh,1.5rem);box-sizing:border-box;pointer-events:none;}
.hero-overlay-inner{pointer-events:auto;max-width:min(22rem,88vw);padding:0;margin:0;background:none;border:none;border-radius:0;box-shadow:none;}
.hero-kicker{font-family:var(--font-ui);font-size:clamp(.66rem,1.55vw,.76rem);font-weight:700;letter-spacing:.22em;color:rgba(255,255,255,.94);margin:0 0 .55rem;text-shadow:0 1px 2px rgba(15,23,42,.55),0 4px 24px rgba(15,23,42,.28);}
.hero-title{font-family:var(--font-display);font-weight:600;color:#fff;line-height:1.26;margin:0 0 .85rem;letter-spacing:.08em;font-size:clamp(1.38rem,4.25vw,2.12rem);text-wrap:pretty;text-shadow:0 2px 4px rgba(15,23,42,.5),0 6px 36px rgba(15,23,42,.25),0 0 1px rgba(15,23,42,.35);}
.hero-title-line{display:block;}
.hero-title-line--rule::after{content:'';display:block;width:clamp(2.85rem,15vw,4.25rem);height:2px;margin:.48rem 0 .52rem;background:linear-gradient(90deg,#bae6fd,var(--accent));border-radius:2px;box-shadow:0 1px 8px rgba(14,165,233,.45);}
.hero-body{margin:0;padding:0;}
.hero-copy{font-family:var(--font-ui);font-size:clamp(.72rem,2vw,.85rem);line-height:1.72;color:rgba(248,250,252,.95);margin:.42rem 0 0;letter-spacing:.03em;text-wrap:pretty;text-shadow:0 1px 2px rgba(15,23,42,.55),0 3px 18px rgba(15,23,42,.3);}
.hero-copy:first-of-type{margin-top:0;}
.hero-br-lg{display:none;}
@supports (image-rendering:high-quality){.hero-top-img{image-rendering:high-quality;}}
.hero-actions{flex:0 0 auto;flex-shrink:0;display:flex;flex-wrap:wrap;gap:1rem 1.25rem;justify-content:center;align-items:center;padding:clamp(.85rem,2dvh,1.35rem) max(1.35rem, env(safe-area-inset-right)) max(clamp(.85rem,2dvh,1.35rem), env(safe-area-inset-bottom)) max(1.35rem, env(safe-area-inset-left));background:var(--bg-elev);border-top:1px solid var(--line);box-shadow:0 -8px 32px rgba(15,23,42,.04);}

/* CTA block (reusable) */
.cta-band{margin-top:clamp(2.25rem,4vw,3rem);padding:clamp(1.5rem,3.6vw,2.25rem);border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(165deg,#ffffff 0%,var(--accent-soft) 100%);box-shadow:var(--shadow-sm);text-align:center;}
.cta-band p{color:var(--ink-soft);line-height:1.9;margin:0 0 1.15rem;font-size:.95rem;}
.cta-actions{display:flex;flex-wrap:wrap;gap:.85rem;justify-content:center;align-items:stretch;}
.cta-actions .btn{min-width:min(280px,100%);}

/* About */
.about{background:var(--bg-elev);border-block:1px solid var(--line);}
.about-content{max-width:min(62rem,min(94vw,1180px));margin:0 auto;width:100%;text-align:center;}
.about-intro-bar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:.75rem 1.25rem;margin-bottom:clamp(2rem,4vw,2.75rem);padding:clamp(1rem,2vw,1.25rem) 0;border-bottom:1px solid var(--line);}
.about-label-jp{font-family:var(--font-display);font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:600;letter-spacing:.1em;color:var(--brand);margin:0;line-height:1.35;width:100%;text-align:center;}
.about-label-en{font-family:'Cormorant Garamond',serif;font-size:clamp(.8rem,1.15vw,.92rem);letter-spacing:.3em;text-transform:uppercase;color:var(--brand-light);margin:0;width:100%;text-align:center;}
.about-split{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.08fr);gap:clamp(2rem,5vw,4rem);align-items:center;margin-top:clamp(.75rem,2vw,1.25rem);justify-items:center;}
.about-visual{margin:0;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-muted);box-shadow:var(--shadow);}
.about-visual img{width:100%;max-width:100%;height:auto;display:block;aspect-ratio:1/1;object-fit:contain;object-position:center;}
.about-copy{max-width:min(44rem,94vw);margin-inline:auto;padding-inline:clamp(.5rem,2vw,1rem);}
.about-body{font-size:clamp(.975rem,.92rem + .35vw,1.0625rem);line-height:1.95;letter-spacing:.02em;color:var(--ink-soft);margin:0;max-width:100%;text-align:center;overflow-wrap:anywhere;}
.about-body + .about-body{margin-top:clamp(1rem,2.2vw,1.35rem);}
.about-pull{font-family:var(--font-display);font-size:clamp(1rem,1.1vw + .55rem,1.12rem);font-weight:600;line-height:1.85;letter-spacing:.04em;color:var(--brand);margin:clamp(1.15rem,2.5vw,1.6rem) 0;text-align:center;}

/* Trust sections */
.trust{background:var(--bg-muted);border-block:1px solid var(--line);}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,1.5rem);}
.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.25rem,2.6vw,1.75rem);box-shadow:var(--shadow-sm);}
.card h3{font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--brand);margin:0 0 .65rem;letter-spacing:.03em;}
.card p{color:var(--ink-soft);line-height:1.85;margin:0;font-size:.95rem;}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.85rem,2vw,1.25rem);margin-top:clamp(1.25rem,2.5vw,1.75rem);}
.stat{background:linear-gradient(165deg,#fff 0%,var(--accent-soft) 100%);border:1px solid rgba(2,132,199,.18);border-radius:var(--radius-lg);padding:1.15rem 1.2rem;box-shadow:var(--shadow-sm);text-align:center;}
.stat b{display:block;font-family:var(--font-display);font-size:1.35rem;letter-spacing:.04em;color:var(--brand);margin-bottom:.25rem;}
.stat span{display:block;color:var(--ink-soft);font-size:.82rem;letter-spacing:.04em;}
.testimonials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.2vw,1.5rem);margin-top:clamp(1.25rem,2.5vw,1.75rem);}
.quote{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.25rem,2.4vw,1.65rem);box-shadow:var(--shadow-sm);}
.quote p{margin:0;color:var(--ink-soft);line-height:1.9;font-size:.95rem;}
.quote footer{margin-top:1rem;color:#64748b;font-size:.82rem;letter-spacing:.04em;}

/* Services */
.services{background:var(--bg-muted);text-align:left;border-block:1px solid var(--line);}
.services-inner{max-width:min(1180px,100%);margin:0 auto;padding-left:max(0px, env(safe-area-inset-left));padding-right:max(0px, env(safe-area-inset-right));}
.services-header{text-align:center;max-width:min(52rem,100%);margin:0 auto clamp(2.25rem,4vw,3.25rem);}
.services-header .section-eyebrow{justify-content:center;}
.services-header .section-eyebrow::before{display:none;}
.services-section-title{white-space:nowrap;margin-inline:auto;max-width:100%;line-height:1.35;font-size:min(2.35rem,max(0.72rem,calc((100vw - 3.5rem)/13)));text-wrap:pretty;}
@media (max-width:520px){.services-section-title{white-space:normal;font-size:clamp(1.25rem,6vw,1.75rem);}}
.svc-tab-scroll{margin:0 0 1.5rem;-webkit-overflow-scrolling:touch;overflow-x:auto;padding:.6rem max(.75rem, env(safe-area-inset-right)) .6rem max(.75rem, env(safe-area-inset-left));scroll-padding-inline:1rem;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);}
.svc-tablist{display:flex;flex-wrap:nowrap;gap:.45rem;padding:.25rem .2rem;min-width:min-content;border-bottom:none;}
.svc-tab{flex:1 0 auto;min-width:max(5rem,fit-content);max-width:100%;padding:.7rem 1.25rem;min-height:48px;font-family:var(--font-ui);font-size:clamp(.74rem,2.4vw,.875rem);font-weight:600;letter-spacing:.03em;color:var(--ink-soft);background:transparent;border:1px solid transparent;border-radius:999px;cursor:pointer;transition:color .22s,background .22s,box-shadow .22s,border-color .22s,transform .2s;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;}
.svc-tab:hover{color:var(--brand);background:var(--bg-muted);}
.svc-tab[aria-selected="true"]{color:#fff;background:linear-gradient(165deg,#0c4a6e 0%,#075985 100%);border-color:rgba(12,74,110,.55);box-shadow:0 10px 26px -12px rgba(12,74,110,.55),inset 0 1px 0 rgba(255,255,255,.22);}
.svc-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.svc-tabpanel{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(1.75rem,3.5vw,2.75rem);box-shadow:var(--shadow);overflow:hidden;}
.svc-tabpanel[hidden]{display:none!important;}
.svc-tabpanel-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,min(400px,40vw));gap:clamp(1.75rem,3.5vw,2.85rem);align-items:center;}
.svc-tabpanel-copy{text-align:left;position:relative;padding:clamp(1.5rem,2.8vw,2.15rem) clamp(1.35rem,2.6vw,2rem);background:linear-gradient(165deg,#fff 0%,var(--bg-muted) 100%);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);}
.svc-tabpanel-copy::before{content:'';position:absolute;left:0;top:12%;bottom:12%;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--accent) 0%,var(--brand-light) 100%);}
.svc-tab-label{display:inline-block;font-family:'Cormorant Garamond',serif;font-size:.7rem;letter-spacing:.28em;color:var(--brand-light);text-transform:uppercase;margin:0 0 .95rem;padding:.4rem 1rem .45rem;border:1px solid rgba(3,105,161,.35);border-radius:999px;background:rgba(255,255,255,.85);}
.svc-tabpanel-copy h3{font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.48rem);font-weight:600;margin:0 0 .95rem;padding-bottom:.75rem;color:var(--brand);line-height:1.35;letter-spacing:.04em;border-bottom:1px solid var(--line);position:relative;text-wrap:pretty;}
.svc-tabpanel-copy h3::after{content:'';position:absolute;left:0;bottom:-1px;width:3rem;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-soft));border-radius:1px;}
.svc-tabpanel-copy .svc-desc{font-size:.975rem;line-height:1.9;color:var(--ink-soft);margin:0;max-width:42em;text-wrap:pretty;}
.svc-bullets{margin:1.15rem 0 0;padding:0;list-style:none;color:var(--ink-soft);}
.svc-bullets li{position:relative;padding-left:1.4rem;margin:.52rem 0;font-size:.9rem;line-height:1.78;letter-spacing:.02em;text-wrap:pretty;}
.svc-bullets li::before{content:'';position:absolute;left:.2rem;top:.62em;width:6px;height:6px;background:var(--accent);border-radius:2px;opacity:.9;box-shadow:0 0 0 1px rgba(2,132,199,.2);}
.svc-visual-col{display:flex;flex-direction:column;align-items:stretch;gap:.55rem;width:100%;min-width:0;}
.svc-hint{font-family:'Cormorant Garamond',serif;font-size:.68rem;color:var(--brand-light);letter-spacing:.12em;text-transform:uppercase;margin:0;text-align:center;opacity:.95;}
.svc-visual{position:relative;width:100%;aspect-ratio:1/1;max-width:100%;margin-inline:auto;background:linear-gradient(145deg,var(--bg-muted),#fff);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;overflow:hidden;outline:none;box-shadow:var(--shadow-sm);}
.svc-visual:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
.svc-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;padding:clamp(2px,1.2%,8px);opacity:0;transition:opacity .45s ease;z-index:1;}
.svc-tabpanel[data-svc-step="1"] .svc-photo[data-layer="1"],
.svc-tabpanel[data-svc-step="2"] .svc-photo[data-layer="2"],
.svc-tabpanel[data-svc-step="3"] .svc-photo[data-layer="3"],
.svc-tabpanel[data-svc-step="4"] .svc-photo[data-layer="4"]{opacity:1;z-index:2;}
.svc-dots{display:flex;justify-content:center;gap:.45rem;margin-top:.35rem;}
.svc-dot{width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .2s,transform .2s,box-shadow .2s;}
.svc-dot.is-on{background:var(--accent);transform:scale(1.2);box-shadow:0 0 0 2px rgba(2,132,199,.25);}

/* Marquee */
section.showcase-marquee{padding-block:clamp(1.5rem,3vw,2.5rem);padding-inline:0;}
.showcase-marquee{position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;width:100vw;max-width:100vw;box-sizing:border-box;background:linear-gradient(180deg,#0f172a 0%,#0c4a6e 55%,#0f172a 100%);border-block:1px solid rgba(125,211,252,.12);overflow:hidden;}
.showcase-marquee-inner{overflow:hidden;width:100%;}
.showcase-marquee-track{display:flex;width:max-content;align-items:center;animation:showcase-marquee 55s linear infinite;will-change:transform;}
.showcase-marquee-track:hover{animation-play-state:paused;}
.showcase-marquee-set{display:flex;align-items:center;flex-shrink:0;gap:clamp(.65rem,1.5vw,1.1rem);padding-right:clamp(.65rem,1.5vw,1.1rem);}
.showcase-marquee-item{flex:0 0 auto;height:clamp(140px,20vw,220px);display:flex;align-items:center;}
.showcase-marquee-item img{height:100%;width:auto;max-width:none;object-fit:contain;display:block;border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.35);}
@keyframes showcase-marquee{0%{transform:translateX(0);}100%{transform:translateX(-50%);}}
@media (prefers-reduced-motion:reduce){
  .showcase-marquee-track{animation:none;flex-wrap:wrap;justify-content:center;width:100%!important;max-width:min(1100px,94vw);margin:0 auto;row-gap:.75rem;}
  .showcase-marquee-set{padding-right:0;flex-wrap:wrap;justify-content:center;}
}

/* Contact */
.contact-form{background:var(--bg-soft);border-block:1px solid var(--line);}
.contact-form-inner{max-width:min(40rem,100%);margin:0 auto;padding-inline:clamp(.5rem,2vw,1rem);}
.contact-form-header{text-align:center;margin-bottom:clamp(2.25rem,4.5vw,3.25rem);}
.contact-form-header .section-eyebrow{justify-content:center;}
.contact-form-header .section-eyebrow::before{display:none;}
.contact-form-lead{font-size:1rem;color:var(--ink-soft);line-height:1.9;margin:1rem auto 0;max-width:min(36rem,100%);padding-inline:clamp(.25rem,.5vw,.5rem);text-wrap:pretty;}
.contact-cta-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev);padding:clamp(1.75rem,4vw,2.75rem);text-align:center;max-width:min(36rem,100%);margin:0 auto;box-shadow:var(--shadow-sm);}
.contact-cta-lead{font-size:.9375rem;color:var(--ink-soft);line-height:1.88;margin-bottom:1.65rem;padding-inline:clamp(.25rem,.5vw,.5rem);text-wrap:pretty;}
.contact-cta-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:stretch;margin-bottom:1.5rem;}
.contact-cta-actions .btn{min-height:52px;}
.contact-cta-tel-intro{font-size:.875rem;color:var(--ink-soft);line-height:1.55;margin:0 0 .6rem;padding-inline:clamp(0,.5vw,.35rem);}
.contact-cta-tel{font-size:clamp(.78rem,3.1vw,.9rem);color:var(--ink-soft);line-height:1.45;padding-inline:clamp(.25rem,.5vw,.35rem);margin:0;}
.contact-tel-line{display:inline-flex;flex-wrap:wrap;align-items:baseline;justify-content:center;column-gap:.5rem;row-gap:.2rem;max-width:100%;}
.contact-tel-line>a{color:var(--accent);text-decoration:none;border-bottom:2px solid rgba(2,132,199,.4);font-weight:700;white-space:nowrap;}
.contact-tel-line>a:hover{color:var(--brand);}
.contact-tel-hours{white-space:nowrap;letter-spacing:.02em;}
.cf-note{font-size:.8125rem;color:var(--ink-soft);line-height:1.85;margin:1.15rem auto 0;max-width:min(36rem,100%);padding-inline:clamp(.25rem,.5vw,.35rem);text-align:center;text-wrap:pretty;}
.cf-note a{color:var(--brand-light);text-decoration:none;border-bottom:1px solid rgba(3,105,161,.45);font-weight:600;}
.cf-note a:hover{color:var(--brand);}

/* Info */
.info{background:var(--bg-elev);border-block:1px solid var(--line);}
.info-wrap{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2.5rem,6vw,4.5rem);align-items:start;}
.info-table{width:100%;border-collapse:collapse;}
.info-table tr{border-bottom:1px solid var(--line);}
.info-table th,.info-table td{padding:1.2rem 0;text-align:left;vertical-align:top;}
.info-table th{font-family:var(--font-display);font-weight:600;color:var(--brand);width:30%;font-size:.875rem;letter-spacing:.06em;}
.info-table td{color:var(--ink-soft);font-size:.9375rem;line-height:1.72;}
.info-table td a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(2,132,199,.45);font-weight:600;}
.info-table td a:hover{color:var(--brand);}
.map-wrap{display:flex;flex-direction:column;gap:.75rem;}
.map-heading{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--brand);letter-spacing:.04em;margin:0;line-height:1.45;}
.map-note{font-size:.82rem;color:var(--ink-soft);margin:0;line-height:1.65;}
.map-frame{aspect-ratio:4/3;border:1px solid var(--line);overflow:hidden;background:var(--bg-muted);border-radius:var(--radius-sm);}
.map-frame iframe{width:100%;height:100%;min-height:280px;border:0;display:block;}
.map-external{margin:0;font-size:.88rem;}
.map-external a{color:var(--accent);text-decoration:none;border-bottom:1px solid rgba(2,132,199,.45);letter-spacing:.05em;font-weight:600;}
.map-external a:hover{color:var(--brand);}

/* Footer */
footer{background:linear-gradient(180deg,#0f172a 0%,#0c4a6e 100%);color:#e2e8f0;padding:clamp(3.5rem,8vw,4.5rem) max(1.25rem, env(safe-area-inset-left)) max(2rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-right));text-align:center;}
.footer-logo{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;}
.footer-logo img{width:56px;height:56px;object-fit:contain;border-radius:14px;box-shadow:0 0 0 1px rgba(148,163,184,.25);}
.footer-logo-text{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:.14em;color:#fff;text-align:left;}
.footer-logo-text small{display:block;font-family:'Cormorant Garamond',serif;font-size:.68rem;letter-spacing:.28em;color:#7dd3fc;margin-top:.3rem;}
.footer-tag{font-family:'Cormorant Garamond',serif;font-size:.82rem;letter-spacing:.22em;color:rgba(226,232,240,.65);margin-bottom:2.75rem;}
.footer-privacy{margin-bottom:1.25rem;font-size:.8125rem;letter-spacing:.04em;}
.footer-privacy a{color:#7dd3fc;text-decoration:none;border-bottom:1px solid rgba(125,211,252,.4);}
.footer-privacy a:hover{color:#fff;}
.footer-bottom{font-family:'Cormorant Garamond',serif;font-size:.78rem;letter-spacing:.18em;color:rgba(148,163,184,.55);border-top:1px solid rgba(148,163,184,.2);padding-top:2rem;}
.footer-links a{display:inline-block;color:#7dd3fc;text-decoration:none;font-size:.82rem;margin:.35rem .5rem;font-weight:600;border-bottom:1px solid rgba(125,211,252,.35);padding-bottom:2px;}
.footer-links a:hover{color:#fff;border-bottom-color:#fff;}
.footer-copy{font-family:'Cormorant Garamond',serif;font-size:.74rem;letter-spacing:.14em;color:rgba(148,163,184,.55);margin-top:1rem;}

/* Page: form / thanks / privacy (layout helpers) */
.page-center{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:max(2rem, env(safe-area-inset-top)) max(1.35rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.35rem, env(safe-area-inset-left));text-align:center;}
.panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(2rem,5vw,2.75rem) clamp(1.5rem,4vw,2.25rem);max-width:32rem;box-shadow:var(--shadow);}
.panel h1{font-family:var(--font-display);font-size:clamp(1.35rem,4vw,1.55rem);font-weight:600;margin-bottom:1rem;letter-spacing:.04em;color:var(--brand);}
.panel p{color:var(--ink-soft);margin-bottom:1.5rem;font-size:.95rem;line-height:1.85;}
.panel .links{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;justify-content:center;margin-bottom:1.25rem;}
.panel a{font-family:var(--font-ui);font-size:.9rem;font-weight:600;letter-spacing:.04em;color:var(--accent);text-decoration:none;border-bottom:2px solid rgba(2,132,199,.35);padding-bottom:2px;}
.panel a:hover{color:var(--brand);}

/* Responsive */
@media (max-width:900px){
  .nav-toggle{display:flex;}
  nav{padding-top:max(.7rem, env(safe-area-inset-top));padding-right:max(1.1rem, env(safe-area-inset-right));padding-bottom:.7rem;padding-left:max(1.1rem, env(safe-area-inset-left));}
  .nav-links{position:fixed;top:0;right:0;width:min(300px,86vw);height:100vh;margin:0;padding:max(5rem, calc(env(safe-area-inset-top) + 4.25rem)) 1.5rem max(2rem, env(safe-area-inset-bottom)) 1.5rem;flex-direction:column;gap:0;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);box-shadow:-8px 0 36px rgba(15,23,42,.12);transform:translateX(102%);transition:transform .35s ease;z-index:99;list-style:none;}
  .nav-links.is-open{transform:translateX(0);}
  .nav-links li{border-bottom:1px solid var(--line);}
  .nav-links a{display:flex;align-items:center;min-height:52px;padding:.9rem 0;font-size:.95rem;}
  .hero{padding-top:max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem));padding-inline:0;height:100svh;min-height:100svh;max-height:100svh;}
  .hero-banner{flex:1 1 0;min-height:0;width:100%;max-width:none;margin:0;padding:.65rem max(.5rem, env(safe-area-inset-right)) .35rem max(.5rem, env(safe-area-inset-left));display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.75rem;box-sizing:border-box;}
  .hero-banner picture{flex:0 0 auto;width:min(calc((100vw - 1.25rem) * .92),calc((100svh - max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem)) - 7.1rem) * .92));max-width:min(calc((100vw - 1.25rem) * .92),calc((100svh - max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem)) - 7.1rem) * .92));aspect-ratio:4/3;max-height:calc(100svh - max(4.5rem, calc(env(safe-area-inset-top) + 3.75rem)) - 7.1rem);min-height:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;}
  .hero-top-img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:cover;object-position:center 35%;display:block;border-radius:14px;}
  .hero-overlay{position:relative;inset:auto;padding:0;align-items:stretch;justify-content:center;width:100%;pointer-events:auto;}
  .hero-overlay-inner{max-width:min(24.5rem,94vw);padding:.85rem 1rem;background:rgba(255,255,255,.66);border-radius:14px;box-shadow:0 10px 26px rgba(15,23,42,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(226,232,240,.9);}
  .hero-kicker{color:var(--brand);text-shadow:none;}
  .hero-title{font-size:clamp(1.22rem,5.1vw,1.6rem);margin-bottom:.5rem;line-height:1.3;letter-spacing:.05em;color:var(--ink);text-shadow:none;}
  .hero-title-line{display:inline;}
  .hero-title-line--rule::after{margin:.42rem 0 .35rem;}
  .hero-copy{font-size:clamp(.74rem,3.25vw,.86rem);line-height:1.9;margin-top:.55rem;max-width:34ch;color:var(--ink-soft);text-shadow:none;}
  .hero-br-lg{display:none;}
  .hero-actions{padding:.55rem max(.95rem, env(safe-area-inset-right)) max(.5rem, env(safe-area-inset-bottom)) max(.95rem, env(safe-area-inset-left));flex-direction:column;align-items:center;gap:.45rem;}
  .hero-actions .btn{width:100%;max-width:17.5rem;margin-inline:auto;padding:.55rem .95rem;font-size:.78rem;min-height:40px;box-sizing:border-box;border-radius:10px;}
  section:not(.hero){padding:clamp(3.75rem,8vw,5rem) max(1.25rem, env(safe-area-inset-left)) clamp(3.75rem,8vw,5rem) max(1.25rem, env(safe-area-inset-right));}
  .about-split{grid-template-columns:1fr;}
  .svc-tabpanel-grid{grid-template-columns:1fr;}
  .svc-tab-scroll{overflow-x:visible;overflow-y:visible;-webkit-overflow-scrolling:auto;padding:.75rem max(.85rem, env(safe-area-inset-right)) .85rem max(.85rem, env(safe-area-inset-left));}
  .svc-tablist{flex-wrap:wrap;justify-content:stretch;gap:.5rem;min-width:0;width:100%;padding:.35rem .15rem;}
  .svc-tab{flex:1 1 100%;width:100%;max-width:none;white-space:normal;text-align:center;justify-content:center;line-height:1.38;border-radius:var(--radius-sm);padding:.65rem .95rem;min-height:auto;}
  .svc-visual-col{max-width:min(420px,100%);margin-inline:auto;}
  .info-wrap{grid-template-columns:1fr;gap:2.5rem;}
  .info-table th{display:block;width:100%;font-size:.85rem;padding-bottom:.2rem;}
  .info-table td{display:block;width:100%;font-size:.92rem;line-height:1.65;padding-top:0;}
  .map-frame iframe{min-height:220px;}
  .footer-logo{flex-direction:column;gap:.6rem;}
  .footer-logo-text{text-align:center;}
  .grid-3{grid-template-columns:1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .testimonials{grid-template-columns:1fr;}
}

/* =========================
   Page: technical-form.html
   ========================= */

main.tf-main{padding:clamp(2.5rem,5vw,3.25rem) max(1.25rem, env(safe-area-inset-left)) 5.25rem max(1.25rem, env(safe-area-inset-right));max-width:900px;margin:0 auto;}
.tf-breadcrumb{font-family:'Cormorant Garamond',serif;font-size:.78rem;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:1.5rem;}
.tf-breadcrumb a{color:var(--brand-light);text-decoration:none;border-bottom:1px solid rgba(3,105,161,.4);font-weight:600;}
.tf-breadcrumb a:hover{color:var(--brand);}
.tf-eyebrow{font-family:'Cormorant Garamond',serif;font-size:.76rem;letter-spacing:.28em;color:var(--brand-light);text-transform:uppercase;margin-bottom:.85rem;font-weight:600;}
.tf-title{font-family:var(--font-display);font-size:clamp(1.5rem,3.8vw,2.05rem);font-weight:600;letter-spacing:.03em;margin-bottom:1rem;line-height:1.35;color:var(--brand);}
.tf-lead{font-size:1rem;color:var(--ink-soft);margin-bottom:2rem;line-height:1.9;text-wrap:pretty;}
.tf-note{font-size:.86rem;color:var(--ink-soft);background:linear-gradient(165deg,#fff 0%,var(--accent-soft) 100%);border:1px solid rgba(2,132,199,.18);border-radius:var(--radius-lg);padding:1.2rem 1.25rem;margin-bottom:2.25rem;line-height:1.8;box-shadow:var(--shadow-sm);}
.tf-form{border:1px solid var(--line);background:var(--bg-elev);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:clamp(1.75rem,4vw,2.75rem) clamp(1.35rem,3vw,2.25rem);}
.tf-field{margin-bottom:1.6rem;}
.tf-field-row{display:grid;gap:1.35rem;}
@media(min-width:720px){.tf-field-row{grid-template-columns:1fr 1fr;}}
.tf-label{display:block;font-size:.8125rem;font-weight:700;letter-spacing:.04em;margin-bottom:.55rem;color:var(--brand);}
.tf-req{color:#b45309;font-size:.72rem;margin-left:.25rem;}
.tf-hint{font-size:.8rem;color:var(--ink-soft);margin-top:.45rem;line-height:1.65;text-wrap:pretty;}
.tf-hint a{color:var(--brand-light);text-decoration:none;border-bottom:1px solid rgba(3,105,161,.4);font-weight:600;}
.tf-hint a:hover{color:var(--brand);}
.tf-input,.tf-select,.tf-textarea{width:100%;padding:.85rem 1.05rem;font-family:var(--font-ui);font-size:16px;border:1px solid var(--line);background:#f8fafc;color:var(--ink);border-radius:12px;transition:border-color .2s,box-shadow .2s;}
.tf-input:focus,.tf-select:focus,.tf-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(2,132,199,.18);}
.tf-textarea{min-height:120px;resize:vertical;}
.tf-radio-group{display:flex;flex-wrap:wrap;gap:.85rem 1rem;align-items:center;}
.tf-radio-group label{display:inline-flex;align-items:center;gap:.5rem;font-size:.95rem;color:var(--ink-soft);cursor:pointer;}
.tf-radio-group input{width:1.05rem;height:1.05rem;accent-color:var(--accent);}
.tf-hr{border:none;border-top:1px dashed var(--line);margin:2.25rem 0;}

.tf-fieldset{border:1px solid var(--line);padding:1.5rem 1.25rem;margin-bottom:1.65rem;background:var(--bg-muted);border-radius:var(--radius-lg);}
.tf-legend{font-family:var(--font-display);font-size:1.05rem;font-weight:600;padding:0 .5rem;margin-bottom:.85rem;color:var(--brand);}

.tf-toggle{margin:1.1rem 0;display:flex;align-items:center;gap:.6rem;font-size:.95rem;color:var(--ink-soft);}
.tf-toggle input{width:1.05rem;height:1.05rem;accent-color:var(--accent);}
.tf-order-extra[hidden]{display:none!important;}

/* Tooth grid */
.tooth-grid{width:100%;border-collapse:collapse;font-size:.72rem;margin:.75rem 0 0;text-align:center;table-layout:fixed;}
.tooth-grid caption{caption-side:top;text-align:left;font-size:.82rem;color:var(--ink-soft);padding-bottom:.6rem;}
.tooth-grid th,.tooth-grid td{border:1px solid var(--line);padding:.25rem .1rem;background:#f8fafc;}
.tooth-grid thead th{font-size:.68rem;font-weight:600;letter-spacing:.02em;line-height:1.35;padding:.4rem .25rem;background:#f1f5f9;}
.tooth-grid .tg-corner{width:2.75rem;background:#f1f5f9;}
.tooth-grid .tg-rowhead{width:2.75rem;font-size:.7rem;font-weight:700;letter-spacing:.04em;background:var(--accent-soft);vertical-align:middle;color:var(--brand);}
.tooth-grid .tg-cell{padding:0;}
.tooth-grid .tg-cell label{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.35rem .1rem;cursor:pointer;font-size:.65rem;color:var(--ink-soft);}
.tooth-grid .tg-cell input{accent-color:var(--accent);}
@media(max-width:640px){
  .tooth-grid{font-size:.62rem;}
  .tooth-grid .tg-cell label{font-size:.58rem;padding:.25rem .05rem;}
  .tooth-grid .tg-rowhead,.tooth-grid .tg-corner{width:2.2rem;font-size:.62rem;}
}
.tf-field:has(.tooth-grid){overflow-x:auto;-webkit-overflow-scrolling:touch;margin-left:-.35rem;margin-right:-.35rem;padding-bottom:.4rem;}
.tf-field:has(.tooth-grid) .tooth-grid{min-width:480px;}

/* File area */
.tf-file-zone{border:2px dashed rgba(3,105,161,.35);border-radius:var(--radius-lg);padding:1.15rem 1.2rem 1.25rem;margin-bottom:1rem;background:#fff;text-align:center;transition:border-color .2s,background .2s;box-shadow:var(--shadow-sm);}
.tf-file-zone:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
.tf-file-zone.is-drag{border-color:var(--accent);background:var(--accent-soft);}
.tf-file-zone-hint{font-size:.86rem;color:var(--ink-soft);line-height:1.75;margin:0;text-align:left;text-wrap:pretty;}
.tf-file-pick-btn{margin-top:.9rem;font-family:var(--font-ui);font-size:.9rem;font-weight:800;letter-spacing:.05em;padding:.75rem 1.6rem;min-height:48px;background:var(--bg-elev);color:var(--brand);border:2px solid var(--brand-light);cursor:pointer;border-radius:12px;transition:background .2s,border-color .2s,color .2s;}
.tf-file-pick-btn:hover{background:var(--accent-soft);border-color:var(--accent);}
.tf-file-slots{display:flex;flex-direction:column;gap:.9rem;margin-top:.3rem;}
.tf-file-slot .tf-label{margin-bottom:.4rem;}
.tf-files{width:100%;}
.tf-files input[type=file],input.tf-files[type=file]{width:100%;font-size:.9rem;padding:.5rem 0;}

/* Consent & submit */
.tf-consent-block{margin-top:1.65rem;padding:1.25rem 1.25rem;background:var(--accent-soft);border:1px solid rgba(2,132,199,.22);border-radius:var(--radius-lg);}
.tf-consent-block label{display:flex;align-items:flex-start;gap:.65rem;font-size:.9rem;line-height:1.85;color:var(--ink-soft);cursor:pointer;text-align:left;}
.tf-consent-block input{flex-shrink:0;width:1.1rem;height:1.1rem;margin-top:.25rem;accent-color:var(--accent);}
.tf-consent-block a{color:var(--brand-light);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(3,105,161,.4);}
.tf-consent-block a:hover{color:var(--brand);}
.tf-submit-wrap{margin-top:2.75rem;padding-top:2rem;border-top:1px solid var(--line);text-align:center;}
.tf-submit{font-family:var(--font-ui);font-size:1rem;font-weight:800;letter-spacing:.08em;padding:1.1rem 2.75rem;background:linear-gradient(165deg,#0284c7 0%,#0369a1 100%);color:#fff;border:none;border-radius:14px;cursor:pointer;box-shadow:0 8px 28px -6px rgba(2,132,199,.45);transition:transform .2s,box-shadow .25s;min-height:52px;}
.tf-submit:hover{transform:translateY(-2px);box-shadow:0 14px 36px -8px rgba(2,132,199,.5);}
.tf-submit:disabled{opacity:.55;cursor:not-allowed;transform:none;}

@media(max-width:900px){
  main.tf-main{padding-top:clamp(2rem,5vw,2.5rem);}
  .tf-form{padding:1.75rem 1.15rem;}
  .tf-submit{width:100%;max-width:100%;}
}
