/* 2026-10-12 additions: typography audit, keyword H1 line, FAQ links, legal pages, mobile contact bar. Loaded last. */

/* Typography: Hangul/CJK/Thai display text must not be tracked tighter than -0.01em; Arabic is never tracked. */
html:is([lang='ko'],[lang='ja'],[lang='zh-Hans'],[lang='zh-Hant'],[lang='th']) body :is(h1,h2,h3,h4,.answer-body .typed-visual,.answer-complete,.book-copy h3,.campaign-beyond,.campaign-home .cinema-caption h1,.campaign-home .image-stamp,.campaign-home .image-stamp i,.campaign-home .kinetic-band>div,.campaign-wind,.chapter-heading h2,.chapter-numeral,.cms-article-body>h2,.cms-public-heading h1,.console-marker,.dial-number,.dossier-hero h1,.dossier-prologue h2,.dossier-treatment-name,.explorer-heading h2,.explorer-panels h3,.footer-brand>span,.founder-quote,.freedom-facts strong,.freedom-title,.freedom-title i,.freedom-title>.freedom-emphasis,.freedom-watermark,.hero h1,.hero-poetry,.home-notes h2,.home-page .brand>span,.home-page .footer-brand>span,.image-stamp,.journey-number,.kinetic-band>div,.manifesto-chapters blockquote,.manuscript-quote blockquote,.manuscript-section h3,.manuscript-section p,.menu-layout aside p,.menu-layout nav>a,.method-abbreviation,.method-mark,.mission-visual>p,.navigation-dialog .brand>span,.note-card .cms-list-title,.note-card h3,.note-hero h1,.note-section h2,.notes-related h2,.page-curtain span,.page-hero h1,.portrait-caption h3,.portrait-heading h2,.principle-leaf-number,.profile-info blockquote,.profile-info h1,.scene-heading h2,.service-copy h3,.service-number,.service-tagline,.signature-display,.signature-display i,.site-header .brand>span,.space-display,.space-display i,.strand-reading h2,.trust-strip>div>span,.voice-copy h3,.voice-heading h2,.wind-editorial h2,.wind-film-copy h2){letter-spacing:-.01em}
html:is([lang='ko'],[lang='ja'],[lang='zh-Hans'],[lang='zh-Hant'],[lang='th']) body :is(p,li,dd,dt,summary,blockquote,figcaption,.page-lead,.dossier-deck,.chapter-deck,.note-standfirst,.service-tagline,.manuscript-section p,.menu-layout aside p,.note-section p){letter-spacing:0}
html[lang='ar'] body :is(h1,h2,h3,h4,p,li,.answer-body .typed-visual,.answer-complete,.book-copy h3,.campaign-beyond,.campaign-home .cinema-caption h1,.campaign-home .image-stamp,.campaign-home .image-stamp i,.campaign-home .kinetic-band>div,.campaign-wind,.chapter-heading h2,.chapter-numeral,.cms-article-body>h2,.cms-public-heading h1,.console-marker,.dial-number,.dossier-hero h1,.dossier-prologue h2,.dossier-treatment-name,.explorer-heading h2,.explorer-panels h3,.footer-brand>span,.founder-quote,.freedom-facts strong,.freedom-title,.freedom-title i,.freedom-title>.freedom-emphasis,.freedom-watermark,.hero h1,.hero-poetry,.home-notes h2,.home-page .brand>span,.home-page .footer-brand>span,.image-stamp,.journey-number,.kinetic-band>div,.manifesto-chapters blockquote,.manuscript-quote blockquote,.manuscript-section h3,.manuscript-section p,.menu-layout aside p,.menu-layout nav>a,.method-abbreviation,.method-mark,.mission-visual>p,.navigation-dialog .brand>span,.note-card .cms-list-title,.note-card h3,.note-hero h1,.note-section h2,.notes-related h2,.page-curtain span,.page-hero h1,.portrait-caption h3,.portrait-heading h2,.principle-leaf-number,.profile-info blockquote,.profile-info h1,.scene-heading h2,.service-copy h3,.service-number,.service-tagline,.signature-display,.signature-display i,.site-header .brand>span,.space-display,.space-display i,.strand-reading h2,.trust-strip>div>span,.voice-copy h3,.voice-heading h2,.wind-editorial h2,.wind-film-copy h2){letter-spacing:0}
html[lang='ko'] body :is(h1,h2,h3,h4,h5,p,li,dd,dt,summary,blockquote,figcaption,.page-lead){word-break:keep-all;overflow-wrap:break-word}
html:is([lang='ko'],[lang='ja'],[lang='zh-Hans'],[lang='zh-Hant']) body :is(.freedom-title,.signature-display,.space-display,.hero-poetry,.campaign-beyond,.campaign-wind){line-height:1.18}
html:is([lang='ko'],[lang='ja'],[lang='zh-Hans'],[lang='zh-Hant']) body :is(.page-hero h1,.dossier-hero h1,.note-hero h1,.cms-public-heading h1,.profile-info h1){line-height:1.3}

/* Home H1: keyword line (small) above the brand slogan. */
.cinema-caption h1 .h1-kicker{display:block;margin:0 0 14px;font-family:var(--sans);font-size:clamp(12px,1vw,14px);font-weight:600;line-height:1.5;letter-spacing:.04em;opacity:.9;text-transform:none}
html[lang='ko'] .cinema-caption h1 .h1-kicker,html[lang='ja'] .cinema-caption h1 .h1-kicker{letter-spacing:0}

/* FAQ: answers live on one page only; elsewhere questions link to them. */
.faq-link-list{list-style:none;margin:0;padding:0;border-top:1px solid #d7e2e8}
.faq-link-list li{border-bottom:1px solid #d7e2e8}
.faq-link-list a{display:block;padding:18px 34px 18px 0;color:inherit;text-decoration:none;position:relative;line-height:1.55}
.faq-link-list a:after{content:'→';position:absolute;inset-inline-end:4px;top:18px;opacity:.6}
html[dir='rtl'] .faq-link-list a:after{content:'←'}
.faq-link-list a:hover,.faq-link-list a:focus-visible{color:var(--blue,#1d5575)}
.faq-more{margin-top:24px}
.faq-item:target summary{outline:2px solid #9cc1d5;outline-offset:4px}

/* Treatment hubs: chapter summary instead of the full note. */
.chapter-summary .chapter-topics{margin:0 0 22px;padding-inline-start:1.1em;line-height:1.7}
.chapter-summary .chapter-topics li{margin:4px 0}

/* Footer legal line. */
.footer-legal{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;margin:26px 0 0;padding-top:20px;border-top:1px solid #405665;font-size:13px;line-height:1.6;color:#d5dfe4}
.footer-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.footer-legal strong{font-weight:700}

/* Privacy / terms pages. */
.legal-page .page-hero h1{font-size:clamp(30px,4vw,46px)}
.legal-effective{margin-top:14px;font-size:14px;opacity:.75}
.legal-body{max-width:900px;padding:10px 0 90px;line-height:1.8}
.legal-body section{margin:0 0 42px}
.legal-body h2{font-size:clamp(19px,2vw,23px);margin:0 0 14px;line-height:1.4}
.legal-body p,.legal-body li{font-size:15px}
.legal-body ul{padding-inline-start:1.2em}
.legal-table{overflow-x:auto;margin:14px 0}
.legal-table table{border-collapse:collapse;width:100%;min-width:620px;font-size:14px;line-height:1.6}
.legal-table th,.legal-table td{border:1px solid #d7e2e8;padding:10px 12px;text-align:start;vertical-align:top}
.legal-table th{background:#f2f7f9;font-weight:650}
.legal-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding-top:20px;border-top:1px solid #d7e2e8}
.legal-links a{color:inherit;text-decoration:underline}

/* Mobile contact bar (phone / messenger / booking / directions) — replaces the single floating call pill. */
.mobile-call{display:none!important}
.mobile-contact-bar{display:none}
@media (max-width:768px){
  .mobile-contact-bar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#123f5bf2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid #ffffff2e;padding:0 0 env(safe-area-inset-bottom,0px)}
  .mobile-contact-bar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;color:#fff;font-size:11.5px;font-weight:600;line-height:1.2;text-decoration:none;text-align:center;padding:6px 2px}
  .mobile-contact-bar a+a{border-inline-start:1px solid #ffffff1f}
  .mobile-contact-bar svg{width:20px;height:20px}
  body{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}
  #chat-launcher{bottom:calc(70px + env(safe-area-inset-bottom,0px))!important}
  .home-page .mobile-contact-bar{transform:translateY(110%);transition:transform .3s}
  .home-page.past-cinema .mobile-contact-bar{transform:none}
}
@media print{.mobile-contact-bar{display:none!important}}
@media (prefers-reduced-motion:reduce){.home-page .mobile-contact-bar{transition:none}}

/* Reservation form (2026-10-13). */
.reservation-wrap{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:48px;padding:10px 0 90px;align-items:start}
.reservation-form{display:grid;gap:18px;max-width:680px}
.reservation-form label{display:grid;gap:7px;font-size:15px;font-weight:600}
.reservation-form input,.reservation-form select,.reservation-form textarea{font:inherit;font-size:16px;font-weight:400;padding:12px 14px;border:1px solid #b9cdd8;border-radius:10px;background:#fff;color:inherit;width:100%;box-sizing:border-box}
.reservation-form input:focus-visible,.reservation-form select:focus-visible,.reservation-form textarea:focus-visible{outline:2px solid #1d5575;outline-offset:2px}
.reservation-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.reservation-form .req{color:#b4462d}
.field-hint{margin:-8px 0 0;font-size:13px;line-height:1.6;opacity:.75}
.consent-box{border:1px solid #d7e2e8;border-radius:12px;padding:14px 16px;margin:0}
.consent-box legend{font-weight:700;font-size:14px;padding:0 6px}
.consent-box p{margin:0 0 10px;font-size:13px;line-height:1.7}
.consent-box .check{display:flex;gap:10px;align-items:center;font-weight:600}
.consent-box .check input{width:20px;height:20px}
.reservation-notice{font-size:13px;line-height:1.6;margin:0;opacity:.8}
.reservation-submit{min-height:52px;border:0;border-radius:30px;background:#123f5b;color:#fff;font:inherit;font-weight:700;font-size:16px;cursor:pointer}
.reservation-submit[disabled]{opacity:.6}
#reservation-status{min-height:1.4em;margin:0;color:#b4462d}
.reservation-done{padding:28px;border:1px solid #9cc1d5;border-radius:14px;background:#f3f8fb}
.reservation-aside{display:grid;gap:10px;padding:20px;border-radius:14px;background:#f2f7f9;font-size:14px}
.reservation-aside a{color:inherit;font-weight:700}
.hp-field{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-band .reservation-cta,.contact-dialog .reservation-cta{display:inline-flex;margin-top:14px;padding:10px 18px;border:1px solid currentColor;border-radius:24px;color:inherit;text-decoration:none;font-weight:600}
@media (max-width:860px){.reservation-wrap{grid-template-columns:1fr}.reservation-row{grid-template-columns:1fr}}

/* Notice popups: fixed overlay deck (PC) / single card (mobile). */
.notice-popups{position:fixed;z-index:95;left:24px;top:110px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.notice-deck{position:relative;min-height:120px}
.notice-card{position:absolute;top:0;left:0;width:100%;background:#fff;color:#173448;border-radius:16px;box-shadow:0 18px 60px #10283840;overflow:hidden;pointer-events:auto;transform:translate(calc(var(--depth,0)*14px),calc(var(--depth,0)*14px));z-index:calc(20 - var(--depth,0));transition:transform .25s;max-height:calc(100vh - 220px);display:flex;flex-direction:column}
.notice-card:not(.is-front){cursor:pointer;filter:brightness(.97)}
.notice-card img{display:block;width:100%;height:auto;max-height:52vh;object-fit:contain;background:#f2f7f9}
.notice-body{padding:16px 18px 6px;overflow:auto}
.notice-body h2{font-size:18px;line-height:1.4;margin:0 0 8px;letter-spacing:-.01em}
.notice-body p{margin:0 0 8px;font-size:14px;line-height:1.65;white-space:pre-line}
.notice-link{font-weight:700;color:#1d5575}
.notice-actions{display:flex;justify-content:space-between;border-top:1px solid #e3ecf1}
.notice-actions button{flex:1;min-height:46px;border:0;background:#fff;font:inherit;font-size:13px;color:#4a6577;cursor:pointer}
.notice-actions .notice-x{border-inline-start:1px solid #e3ecf1;font-weight:700;color:#173448}
.notice-popups-bar{position:relative;display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:calc(var(--bar-offset,0px) + 8px);pointer-events:auto}
.notice-popups-bar button{min-height:36px;min-width:36px;border:1px solid #c9d8e1;border-radius:18px;background:#fff;font:inherit;font-size:13px;cursor:pointer}
.notice-count{font-size:13px;background:#fffd;border-radius:10px;padding:2px 8px}
.notice-popups:not([data-count]) .notice-popups-bar,.notice-popups[data-count="1"] .notice-close-all{display:none}
@media (max-width:768px){
  .notice-popups{left:16px;right:16px;top:auto;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:auto}
  .notice-card{position:relative;display:none;transform:none;max-height:calc(100vh - 220px)}
  .notice-card.is-front{display:flex}
  .notice-deck{min-height:0}
}
@media (prefers-reduced-motion:reduce){.notice-card{transition:none}}
@media print{.notice-popups{display:none!important}}

/* Pricing page. */
.pricing-tables{padding:10px 0 90px;max-width:900px}
.pricing-tables h2{font-size:20px;margin:30px 0 12px}
