/* FamilyTrip editorial design system — 2026.10
   Additive only: shared typography and accessible polish, never alters planner/ranking logic. */
:root {
 --ft-font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
 --ft-font-display:"Instrument Serif",Georgia,"Times New Roman",serif;
 --ft-ease:cubic-bezier(.22,1,.36,1);
}
html {text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body {font-family:var(--ft-font-body);letter-spacing:-.008em}
h1,h2,h3,.disp,.title {text-wrap:balance}
p,li {text-wrap:pretty}
a,button,input,select,textarea,summary {touch-action:manipulation}
button,input,textarea,select {font:inherit}
button,a,.tile,.card,.stay,.idea { -webkit-tap-highlight-color:transparent }
:where(a,button,input,select,textarea,summary):focus-visible {
 outline:3px solid #eaba74!important;outline-offset:3px!important;
}
:where(.cta,.primary,.btn-main,.ghost,.btn-line){transition:transform .28s var(--ft-ease),box-shadow .28s var(--ft-ease),border-color .28s ease,background-color .28s ease}
:where(.cta,.primary,.btn-main):hover{transform:translateY(-2px)}
:where(.cta,.primary,.btn-main):active{transform:translateY(0)}
/* Cinematic landing: restraint, not oversized metrics. */
body.ft-editorial-home .hero h1{font-family:var(--ft-font-display);font-weight:450;letter-spacing:-.055em;line-height:1.045}
body.ft-editorial-home .hero .lede{font-size:clamp(1.04rem,1.7vw,1.23rem);max-width:49ch;line-height:1.75}
body.ft-editorial-home .kicker{letter-spacing:.16em;font-size:.72rem;font-weight:700}
body.ft-editorial-home .tile{overflow:hidden;box-shadow:0 18px 54px rgba(5,9,23,.18)}
body.ft-editorial-home .tile img{transition:transform .85s var(--ft-ease),filter .85s ease}
body.ft-editorial-home .tile:hover img{transform:scale(1.045)}
/* Working planner: calm text, legible controls, clear hierarchy. */
body.ft-editorial-planner :where(.setup h1,.head h1,.hero-trip h1){font-family:var(--ft-font-display);font-weight:450;line-height:1.06;letter-spacing:-.045em}
body.ft-editorial-planner :where(.stay,.day,.idea,.panel){border-radius:18px}
body.ft-editorial-planner :where(.small,.sub,small){line-height:1.55}
body.ft-editorial-planner :where(input[type="range"]){accent-color:#e5b66f}
body.ft-editorial-planner :where(.tabs button,.stay-quick button){min-height:39px}
body.ft-editorial-planner :where(.stay-search input,.budget input){min-height:42px}
/* Guides and utility pages: lighter travel-journal appearance. */
body.ft-editorial-light{--ft-paper:#f8f5ee;--ft-forest:#16243a;background:#f8f5ee;color:#16243a}
body.ft-editorial-light :where(h1,h2,h3,.guides h1,.atlas-card strong){font-family:var(--ft-font-display);letter-spacing:-.035em}
body.ft-editorial-light :where(.guides h1){font-size:clamp(2.7rem,6vw,4.6rem);font-weight:430;line-height:1.08;color:#16243a}
body.ft-editorial-light :where(.guides){max-width:1180px;padding-block:clamp(48px,7vw,94px)}
body.ft-editorial-light :where(.grid a){border-radius:19px;box-shadow:0 10px 40px rgba(22,36,58,.065);transition:transform .3s var(--ft-ease),box-shadow .3s var(--ft-ease),border-color .3s ease}
body.ft-editorial-light :where(.grid a:hover){transform:translateY(-3px);box-shadow:0 18px 48px rgba(22,36,58,.11);border-color:#a9b4c6}
body.ft-editorial-light :where(.grid a strong){font-family:var(--ft-font-display);letter-spacing:-.02em;font-weight:500}
body.ft-editorial-light :where(.grid a p){font-size:.91rem;line-height:1.65}
body.ft-editorial-light :where(.note){line-height:1.7}
@media(max-width:720px){
 body.ft-editorial-home .hero h1{font-size:clamp(2.8rem,10.8vw,4.2rem)}
 body.ft-editorial-light :where(.guides){padding:36px 18px}
 body.ft-editorial-planner :where(.stay,.day,.idea,.panel){border-radius:15px}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}
}
