/* Shared reading and interaction scale. rem sizes respect browser text settings. */
:root{--reading-font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;--ink:#1b3137;--muted:#506268;--line:#d7dfd8;--copy:1.0625rem;--support:.875rem;--control:1rem}
html{font-size:100%;scroll-padding-block:1rem;scroll-behavior:smooth}
body{font-family:var(--reading-font);font-size:var(--copy);line-height:1.6}
button,input,select,textarea{font-family:var(--reading-font);font-size:var(--control);line-height:1.4}
h1,h2,h3,h4,.brand,.mobile-brand,.step,.quote-letter,.hotel-monogram,.hotel-card .rate,.estimate .big-total,.quote-result .result-total,.fact .value{font-family:var(--reading-font)}
button,a,summary,input,select{scroll-margin-block:1rem}
a,button,p,small,span,b,strong,h1,h2,h3,h4,li{overflow-wrap:break-word}
input::placeholder,.field input::placeholder{color:#58686b;opacity:1}
input:focus,select:focus{border-color:#0969c3}
input[aria-invalid=true],select[aria-invalid=true]{border:2px solid #9c3227}
.hero h1,.screen-title h1{font-size:clamp(2rem,3vw,2.75rem);line-height:1.2;letter-spacing:-.035em;font-weight:750}
.hero h1 .soft{color:#475569}
.hero p,.screen-title p{font-size:var(--copy);line-height:1.65;max-width:60ch;color:var(--muted)}
.hero p{margin-top:1rem}
.eyebrow{font-size:var(--support);line-height:1.5;letter-spacing:.08em;color:#475569}
.hero-art{width:225px}
.art-stamp{font-size:.875rem;line-height:1.5;padding:.5rem .75rem;max-width:13rem;right:0;top:0}
.hero-art>svg{margin-top:2rem}
.app{grid-template-columns:260px minmax(0,1fr)}
.sidebar{width:260px;padding:1.75rem 1rem;overflow-y:auto;overscroll-behavior:contain}
.brand{font-size:1.125rem;letter-spacing:-.035em;align-items:center;line-height:1.3;padding:0 .25rem;gap:.625rem}
.brand small{font-size:.875rem;letter-spacing:.03em;line-height:1.5;color:#475569}
.brand-mark{width:40px;height:44px;flex-shrink:0}
.nav-label{font-size:.875rem;line-height:1.5;letter-spacing:.06em;margin:2rem .75rem .75rem;color:#475569}
.nav-item{font-size:1rem;line-height:1.4;min-height:52px;gap:.75rem;padding:.75rem;border-radius:.625rem;margin:.25rem 0}
.nav-item .count{font-size:.875rem;line-height:1.2;color:#475569;min-width:1.5rem;text-align:center;padding:.25rem}
.sidebar-note{font-size:.875rem;line-height:1.6;margin-top:2rem;padding:1rem;color:#475569}
.sidebar-note strong{font-size:1rem;line-height:1.5}
.sidebar-footer{font-size:.875rem;line-height:1.6;color:#475569}
.sidebar-close{display:none}
.topbar{height:auto;min-height:80px;padding:1rem 2rem;gap:1rem}
.breadcrumb{font-size:.875rem;flex-wrap:wrap;gap:.625rem}
.top-actions{font-size:.875rem;gap:.625rem;flex-shrink:0}
.top-actions>a,.menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;border-radius:.5rem}
.top-actions>a:hover{background:#eef3e8}
.pill,.pill.pilot{font-size:.875rem;line-height:1.45;padding:.375rem .625rem;white-space:normal}
.pill{color:#3e553e;background:#edf2e7}.pill.pilot{color:#665020}
.main{padding:2rem;max-width:1480px}
.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;border:0;overflow:visible;margin-bottom:1.5rem}
.tab{font-size:1rem;line-height:1.4;min-height:56px;display:flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;padding:.75rem .625rem;border:1px solid #cbd6c9;border-radius:.625rem;white-space:normal;margin:0;background:#fff;color:#44594c;flex-wrap:wrap}
.tab:hover{background:#f0f5e9}.tab.active{border:2px solid #0969c3;color:#243e2c;background:#e9f2dd;padding:calc(.75rem - 1px) calc(.625rem - 1px)}
.tab svg{width:20px;height:20px}.tab-short{display:none}
.layout{grid-template-columns:minmax(0,1fr) minmax(290px,.65fr);gap:1.5rem}
.layout>*,.compare-cards>*,.panel-head>div{min-width:0;max-width:100%}
.segment{min-width:0;overflow-wrap:anywhere}
.segment.active{box-shadow:inset 0 0 0 2px #0969c3}
.button.light{border-color:#788a79}
.panel{padding:1.5rem}
.panel h2,.section-heading h2{font-size:1.375rem;line-height:1.4;letter-spacing:-.025em}
.panel-head{gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.panel-head p,.section-caption{font-size:var(--support);line-height:1.6;margin-top:.5rem;color:var(--muted)}
.badge-outline{font-size:.875rem;line-height:1.4;white-space:normal;color:#465c3e;padding:.375rem .5rem}
.step{font-size:.875rem;width:28px;height:28px;margin-right:.5rem;vertical-align:1px}
.field-grid{gap:1.25rem 1rem;align-items:start}
.field-grid.three{grid-template-columns:1fr 1fr 1fr}.field-grid.three .field:last-child{grid-column:auto}
.field{gap:.5rem;min-width:0}
.field>span,.label,.quote-card .field>span{font-size:1rem;line-height:1.5;font-weight:600;color:#475569}
.field input,.field select,#parking-form .field select,#parking-form .field input[type=datetime-local],.field input[type=datetime-local]{font-size:1rem;line-height:1.4;height:auto;min-height:52px;padding:.75rem;border:1px solid #788a79;border-radius:.5rem;width:100%;max-width:100%;min-width:0;color:#243c42;background:#fff}
.field input[type=file]{padding:.875rem .5rem}
.field small,.tiny,.compare-toolbar .tiny,.quote-result .tiny{font-size:.875rem;line-height:1.6;color:#475569}
.field small{font-weight:400}
.segmented{padding:.25rem;gap:.25rem;flex-wrap:wrap}
.segment{font-size:1rem;line-height:1.4;min-height:48px;padding:.625rem;flex-basis:8rem;white-space:normal;color:#475569}
.segment svg{width:20px;height:20px}
.details{margin-top:1rem}
.details summary{font-size:1rem;line-height:1.5;min-height:48px;padding:.75rem .125rem;color:#0969c3;cursor:pointer}
.details[open] summary{margin-bottom:1rem}
.details summary::marker{color:#0969c3}
.hint{font-size:.875rem;line-height:1.6;color:#475569;padding:.875rem 1rem;gap:.625rem}
.hint svg{width:20px;height:20px}
.button,.button.small,.text-button,.quote-card .remove{font-size:1rem;line-height:1.4;min-height:48px;min-width:48px;padding:.75rem 1rem;gap:.625rem;white-space:normal;text-align:center}
.button{border-radius:.625rem;min-height:52px}
.button.small{min-height:48px;padding:.625rem .875rem}
.text-button{color:#0969c3;text-decoration:underline;text-underline-offset:.2em;border-radius:.5rem}
.text-button:hover{background:#edf2e6}
.button-row{gap:.75rem;margin-top:1.25rem;align-items:stretch}
.button-row>.button,.button-row>.text-button{flex:0 1 auto}
.error{font-size:1rem;line-height:1.6;padding:1rem;margin-top:1rem}
.error a{text-decoration:underline;font-weight:600}
.estimate{padding:1.5rem;overflow:visible;top:1rem}
.estimate .overline{font-size:.875rem;line-height:1.5;letter-spacing:.06em;color:#d0e0d7}
.estimate .hotel-title{font-size:1.25rem;line-height:1.5;margin-top:1.25rem;color:#f0f6f0}
.estimate .big-total{font-size:3rem;line-height:1.2;font-weight:650;letter-spacing:-.035em;margin:.625rem 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.estimate .big-total.unknown{font-size:1.625rem;line-height:1.4;letter-spacing:-.02em}
.estimate .estimate-caption,.estimate .result-note{font-size:.875rem;line-height:1.65;color:#d1e0d7}
.estimate .result-empty{font-size:1rem;line-height:1.65;color:#d1e0d7}
.estimate .row,.quote-result .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(5ch,.65fr);font-size:1rem;line-height:1.6;gap:.875rem;align-items:start;padding:.5rem 0;margin:0}
.estimate .row span{color:#d1e0d7}.estimate .row b,.quote-result .row b{font-size:1rem;line-height:1.6;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.estimate .row b{color:#fff;font-weight:600}
.estimate .details summary,.estimate .details summary::marker{color:#e1f1d3}
.estimate .warning-list{font-size:.875rem;color:#d7e5db}
.estimate .button.light{border-color:#c1d0bd;background:#fff;color:#29432f}
.estimate .divider{margin:1.25rem 0}
.estimate .status-tag{font-size:.875rem;line-height:1.6;color:#e0edca;padding:.375rem .5rem;white-space:normal}
.source-mini{font-size:1rem;line-height:1.6;color:#475569;gap:.5rem;min-height:48px;align-items:center}
.source-mini a{font-size:1rem}
.source-mini svg{width:18px;height:18px}
.below-section{margin-top:2rem}
.section-heading{align-items:center;flex-wrap:wrap;margin-bottom:1rem;gap:.75rem}
.section-heading .small-link{font-size:1rem;line-height:1.5;min-height:48px;color:#0969c3}
.hotel-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.hotel-card{padding:1.25rem;display:block}
:is(.hotel-card h2,.hotel-card h3){font-size:1.125rem;line-height:1.4;letter-spacing:-.02em}
.hotel-card .area{font-size:.875rem;line-height:1.5;letter-spacing:.035em;color:#475569;margin-top:.375rem}
.hotel-card .rate{font-size:1.75rem;line-height:1.4;font-weight:700;margin:1rem 0 .25rem;letter-spacing:-.025em}
.hotel-card .rate small{font:400 .875rem/1.5 var(--reading-font);color:#475569;display:block;margin-top:.25rem;letter-spacing:0}
.hotel-card .card-foot{font-size:1rem;line-height:1.5;padding-top:1rem;margin-top:1rem;color:#475569;gap:.75rem}
.hotel-monogram{font-size:1.25rem;width:44px;height:44px}
.callout{align-items:start;gap:1.25rem;padding:1.5rem;flex-wrap:wrap}
.callout h3{font-size:1.125rem;line-height:1.5;margin-bottom:.5rem}
.callout p{font-size:1rem;line-height:1.65;color:#475569;max-width:60ch}
.callout .button{white-space:normal}
.footer{font-size:.875rem;line-height:1.7;color:#475569;gap:1.25rem;padding:1.5rem 0}
.footer nav{gap:.5rem 1.25rem}
.footer nav a{min-height:48px;display:inline-flex;align-items:center;font-size:1rem}
.quote-card h3{font-size:1.25rem;line-height:1.5}.quote-letter{font-size:1rem;width:36px;height:36px}
.quote-card .field-grid{gap:1.125rem 1rem}
.quote-card .remove{font-size:1rem;padding:.625rem .875rem;color:#78402b;background:#fcf0e9}
.quote-result{padding:1.25rem;margin-top:1.5rem}
.quote-result .result-total{font-size:2.5rem;line-height:1.25;font-weight:700;letter-spacing:-.025em;margin:.5rem 0 1rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.quote-result .row span{color:#475569}
.quote-result h4{font-size:1rem;line-height:1.5}
.warning-list{font-size:.875rem;line-height:1.7;color:#475569;padding-left:1.25rem}
.warning-list li{margin:.625rem 0}
.notice{font-size:1rem;line-height:1.65;padding:1rem 1.125rem;color:#475569;margin:1.25rem 0}
.notice.amber{color:#644f28}
.compare-toolbar{gap:1rem;flex-wrap:wrap;align-items:center}
.compare-toolbar .tiny{max-width:none;flex:1 1 15rem}
.compare-summary{padding:1.5rem;scroll-margin-top:1rem}
.compare-summary h3{font-size:1.25rem;line-height:1.5;margin-bottom:1rem}
.compare-summary p{font-size:1rem;line-height:1.7;color:#d8e5dc}
.comparison-overview{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.75rem}
.comparison-overview a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;border:1px solid #ffffff4a;padding:1rem;border-radius:.625rem;min-height:52px;font-size:1rem;line-height:1.5}
.comparison-overview strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;text-align:right}
.comparison-overview small{font-size:.875rem;grid-column:1/-1;color:#d8e5dc}
.comparison-overview a:hover{background:#ffffff10}
.guide-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.guide-card{padding:1.5rem}
.guide-card h3{font-size:1.125rem;line-height:1.5;margin-bottom:.75rem}
.guide-card p{font-size:1rem;line-height:1.7;color:#475569}
.source-card{padding:1.5rem 0}
.source-card h3{font-size:1.25rem;line-height:1.5;margin:.75rem 0}
.source-card p{font-size:1rem;line-height:1.7;max-width:65ch;color:#475569}
.source-card a{font-size:1rem;line-height:1.6;min-height:48px;align-items:center;margin-top:.75rem}
.source-card .source-meta{font-size:.875rem;line-height:1.6;color:#475569}
.fact{padding:1.5rem;min-width:0;max-width:100%}
.fact .value{font-size:2rem;line-height:1.4;letter-spacing:-.02em;margin:.75rem 0;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fact .value.unknown{font-size:1.375rem;line-height:1.4}
.fact p{font-size:1rem;line-height:1.65;color:#475569}
.prose{max-width:72ch}
.prose h2{font-size:1.375rem;line-height:1.4;margin:1.75rem 0 1rem}
.prose p,.prose li{font-size:1.0625rem;line-height:1.7;color:#475569}
.prose p+p{margin-top:1rem}
.prose a{text-underline-offset:.2em}
.saved-item{gap:1.25rem;flex-wrap:wrap;padding:1.25rem 0}
.saved-item h3{font-size:1.125rem;line-height:1.5;margin-bottom:.5rem}
.saved-item p{font-size:.875rem;line-height:1.6;color:#475569}
.saved-item .actions{gap:.625rem;flex-wrap:wrap}
.save-info{font-size:1rem;line-height:1.65;color:#475569;gap:.75rem}
.file-input{font-size:1rem;line-height:1.6;padding:1rem;min-height:52px}
.toast{font-size:1rem;line-height:1.6;padding:1rem 1.25rem;max-width:min(92vw,40rem);width:max-content;bottom:1.5rem}
.check-label{font-size:1rem;line-height:1.6}
.result-section{scroll-margin-block:1.5rem}
.result-section:focus,.estimate:focus{outline:3px solid #0969c3;outline-offset:4px}
.mobile-action-bar{display:none}
@media(max-width:1199px){
 .app{display:block}.workspace{width:100%}
 .sidebar{position:fixed;inset:0 auto 0 0;width:min(22rem,calc(100vw - 24px));z-index:50;background:#fff;transform:translateX(-100%);visibility:hidden;padding:1.5rem 1rem;transition:transform .2s;display:flex;flex-direction:column}
 .sidebar.open{transform:translateX(0);visibility:visible}
 .sidebar .brand{font-size:1.125rem;padding-right:2.5rem}
 .sidebar .nav-item{font-size:1rem;padding:.75rem;min-height:52px}
 .sidebar-close{display:flex;position:absolute;right:.75rem;top:.75rem;align-items:center;justify-content:center;min-width:48px;min-height:48px;background:#eef3e8;color:#24452e;border-radius:.625rem;font-size:1.5rem}
 .sidebar.open~#mobile-shade{display:block;position:fixed;inset:0;background:#18302a65;z-index:49}
 body.menu-open{overflow:hidden}
 .topbar{min-height:76px;gap:.625rem;padding:.625rem 1.5rem}
 .menu-toggle{display:inline-flex;min-width:48px;min-height:48px;margin:0;background:transparent;color:#254c36;padding:.75rem}
 .breadcrumb{display:none}.mobile-brand{display:flex;align-items:center;gap:.625rem;font-size:1.125rem;font-weight:700;line-height:1.4;letter-spacing:-.025em;min-width:0;margin-right:auto}
 .mobile-brand .brand-mark{width:36px;height:40px;border-radius:.625rem;flex-shrink:0}
 .mobile-brand .brand-mark svg{width:24px;height:24px}
 .main{padding:1.75rem 1.5rem}
 .layout{grid-template-columns:minmax(0,1fr) minmax(285px,.65fr)}
 .hero-art{display:none}
 .hero h1{font-size:2.25rem}
 .guide-grid{grid-template-columns:1fr}
 .compare-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hotel-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:899px){
 .layout{grid-template-columns:minmax(0,1fr)}.estimate{position:static}
 .compare-cards{grid-template-columns:1fr}
 .hotel-detail-grid{grid-template-columns:minmax(0,1fr)}
 .field-grid.three{grid-template-columns:1fr 1fr}.field-grid.three>.field-grid{grid-column:1/-1}
 .field-grid.three .field:last-child{grid-column:auto}
}
@media(max-width:700px){
 .topbar{padding:.5rem .75rem;gap:.375rem;min-height:72px;flex-wrap:wrap}
 .mobile-brand{font-size:1rem;gap:.5rem;flex:1 1 9rem}
 .mobile-brand .brand-mark{width:32px;height:36px}.top-actions{gap:0;font-size:.875rem}.top-actions .pilot{display:none}.top-actions .currency{display:none}
 .main{padding:1.5rem 1rem}
 .hero{margin-bottom:1.25rem;display:block}
 .hero h1{font-size:2rem;line-height:1.2;letter-spacing:-.035em}
 .hero p{font-size:1.0625rem;line-height:1.65;margin-top:.75rem}
 .eyebrow{font-size:.875rem;line-height:1.5;letter-spacing:.035em;margin-bottom:.75rem}
 .tabs{grid-template-columns:repeat(auto-fit,minmax(min(100%,5.5rem),1fr));gap:.5rem;margin-bottom:1.25rem}
 .tab{font-size:1rem;line-height:1.35;min-height:64px;padding:.625rem .375rem;flex-direction:column;gap:.375rem;justify-content:center}
 .tab.active{padding:calc(.625rem - 1px) calc(.375rem - 1px)}
 .tab-short{display:inline}.tab-long{display:none}
 .panel{padding:1.25rem 1rem;border-radius:1rem}
 .panel h2{font-size:1.25rem;line-height:1.4}
 .panel-head{margin-bottom:1.25rem;gap:.75rem}
 .panel-head .badge-outline{display:none}
 .field-grid,#parking-form>.field-grid,.quote-card .field-grid,.field-grid.three{grid-template-columns:1fr;gap:1.125rem}
 .field.full,.field-grid.three>.field-grid,.field-grid.three .field:last-child{grid-column:auto}
 #trip-form>.field-grid{grid-template-columns:1fr 1fr}
 .field input,.field select,#parking-form .field select,#parking-form .field input[type=datetime-local],.field input[type=datetime-local]{font-size:1rem;min-height:52px;padding:.75rem}
 .field>span,.quote-card .field>span{font-size:1rem}
 .segmented{gap:.25rem}.segment{font-size:1rem;min-height:48px;flex:1 1 7rem;gap:.375rem;padding:.625rem .5rem}
 .button-row{display:flex;flex-wrap:wrap;gap:.625rem}
 .button-row .button,.button-row .text-button{flex:1 1 100%;width:100%}
 .estimate{padding:1.25rem;border-radius:1rem}
 .estimate .big-total{font-size:3rem}.estimate .big-total.unknown{font-size:1.5rem}
 .estimate .hotel-title{font-size:1.25rem}
 .estimate .button-row .button{flex:1 1 100%}
 .estimate .row,.quote-result .row{font-size:1rem;gap:.75rem;grid-template-columns:minmax(0,1fr) minmax(5ch,.6fr)}
 .estimate .row b,.quote-result .row b{font-size:1rem}
 .inline-result-list .row{padding:.75rem}
 .hotel-grid{grid-template-columns:1fr}
 .hotel-card{display:block;padding:1.25rem}
 .hotel-card .hotel-monogram{display:none}
 :is(.hotel-card h2,.hotel-card h3){font-size:1.125rem;line-height:1.45}
 .hotel-card .area{font-size:.875rem;margin-top:.375rem}
 .hotel-card .rate{font-size:1.75rem;line-height:1.4;margin:.875rem 0 .25rem;text-align:left}
 .hotel-card .rate small{font-size:.875rem;display:block}
 .hotel-card .card-foot{font-size:1rem;line-height:1.5;margin-top:1rem;padding-top:.875rem}
 .section-heading h2{font-size:1.25rem}
 .section-heading .small-link{font-size:1rem;min-height:48px}
 .callout{padding:1.25rem;flex-direction:column;gap:1rem}.callout h3{font-size:1.125rem}.callout p{font-size:1rem}.callout .button{width:100%}
 .footer{font-size:.875rem;flex-direction:column;gap:1rem;margin-top:2rem}.footer nav{display:grid;grid-template-columns:1fr;gap:.25rem;width:100%}.footer nav a{min-height:48px;font-size:1rem}
 .quote-card{padding:1.25rem 1rem}.quote-card h3{font-size:1.25rem}.quote-card .panel-head{align-items:center;gap:.75rem}
 .quote-card .remove{margin-left:auto;font-size:1rem;min-height:48px}
 .quote-result{padding:1rem}.quote-result .result-total{font-size:2.5rem}
 .compare-toolbar{align-items:stretch}.compare-toolbar .tiny{max-width:none;flex:1 1 100%}.compare-toolbar .button{width:100%}
 .compare-summary{padding:1.25rem}.compare-summary h3{font-size:1.25rem}.compare-summary p{font-size:1rem}
 .comparison-overview a{grid-template-columns:1fr;font-size:1rem;padding:.875rem}.comparison-overview strong{text-align:left;font-size:1.5rem}.comparison-overview small{grid-column:auto}
 .notice{font-size:1rem;padding:1rem}.source-card{padding:1.25rem 0}.source-card h3{font-size:1.25rem}.source-card p,.source-card a{font-size:1rem}
 .source-card .source-meta{font-size:.875rem}.screen-title h1{font-size:2rem;line-height:1.25}.screen-title p{font-size:1.0625rem}
 .guide-card,.fact{padding:1.25rem}.guide-card h3{font-size:1.125rem}.guide-card p,.fact p{font-size:1rem}
 .fact .value:not(.unknown){font-size:1.5rem}
 .saved-item{align-items:stretch}.saved-item .actions{display:grid;grid-template-columns:1fr;gap:.625rem;width:100%}.saved-item .actions button{width:100%}
 .prose h2{font-size:1.375rem}.prose p,.prose li{font-size:1.0625rem}
 .mobile-action-bar{position:fixed;inset:auto 0 0;z-index:35;display:flex;gap:.5rem;align-items:stretch;background:#fffffffa;border-top:1px solid #b8c8b2;padding:.625rem max(.75rem,env(safe-area-inset-right)) max(.625rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left));box-shadow:0 -4px 18px #1d353b12}
 .mobile-action-bar button{flex:1 1 0;min-width:0;min-height:52px;font-size:1rem;line-height:1.4}
 .mobile-action-bar a{display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1.4;padding:.625rem .75rem;min-height:52px;text-align:center;max-width:45%;border:1px solid #a9bda2;border-radius:.625rem;color:#294a2f;flex:0 1 auto}
 .mobile-action-bar a[hidden]{display:none}
 body.has-mobile-action .main{padding-bottom:calc(9rem + env(safe-area-inset-bottom))}
 body.has-mobile-action .toast{bottom:calc(6rem + env(safe-area-inset-bottom))}
 body.field-focused .mobile-action-bar,body.menu-open .mobile-action-bar{display:none}
}
@media(max-width:359px){.main{padding-inline:.75rem}.panel,.quote-card{padding-inline:.875rem}.topbar{padding-inline:.375rem}.mobile-brand{font-size:1rem}.mobile-brand .brand-mark{display:none}.hero h1,.screen-title h1{font-size:1.875rem}.tab{font-size:1rem}.estimate .row,.quote-result .row{grid-template-columns:1fr}.estimate .row b,.quote-result .row b{text-align:left}.mobile-action-bar{flex-wrap:wrap}.mobile-action-bar a{max-width:none;flex:1 1 auto}}
/* Keep room for enlarged text rather than doubling horizontal gutters. */
@media(max-width:700px){.main{padding-inline:16px}.panel,.quote-card,.quote-result{padding-inline:16px}.estimate,.compare-summary{padding-inline:20px}.comparison-overview a{padding-inline:14px}}
@media(max-width:359px){.main{padding-inline:12px}}
@media(min-width:701px) and (max-width:899px){.hotel-grid{grid-template-columns:1fr}.hotel-card{display:block}.hotel-card .hotel-monogram{display:none}.hotel-card .rate{text-align:left}.hotel-card .rate small{display:block}:is(.hotel-card h2,.hotel-card h3){font-size:1.125rem}.footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.sidebar{transition:none}}
@media print{.mobile-action-bar,.sidebar-close{display:none!important}.hero-art{display:none}.tabs{display:none!important}.main{padding:0}.compare-summary{background:#fff;color:#172a31}.compare-summary p,.comparison-overview small{color:#172a31}.comparison-overview a{border-color:#888;color:#172a31}.estimate .details summary,.estimate .warning-list,.estimate .status-tag{color:#172a31}.footer nav{display:none}.hotel-grid{display:block}.hotel-card{display:block}.print-meta{font-size:.875rem}body.has-mobile-action .main{padding-bottom:0}}

/* Purpose-based palette: neutral reading surfaces, blue actions, navy totals. */
:root{--ink:#17345c;--muted:#475569;--paper:#f5f7fa;--line:#d8e0e9;--deep:#17345c;--accent:#0969c3;--green:#dcecff;--lavender:#eaf0ff}
.hero h1 .soft,.eyebrow,.details summary,.details summary::marker,.source-mini,.source-card a,.section-heading .small-link,.text-button{color:#0969c3}
.brand-mark{background:var(--deep);color:#dcecff}
.nav-item{color:#475569}.nav-item:hover,.top-actions>a:hover{background:#f0f5fc}
.nav-item.active{background:#eaf3ff;color:#15549a;box-shadow:inset 3px 0 #0969c3}
.sidebar-note,.hint,.callout{background:#f0f5fc;border-color:#d8e0e9;color:#475569}
.sidebar-note strong{color:#17345c}.sidebar-note svg,.guide-card svg{color:#0969c3}
.tab{border-color:#c4d0dc;color:#475569}.tab:hover{background:#f0f5fc}
.tab.active{border-color:#0969c3;background:#eaf3ff;color:#15549a}
.step,.quote-letter,.hotel-monogram{background:#eaf3ff;color:#15549a;border-color:#c7daef}
.hotel-monogram.peach{background:#fff1db;color:#85520b}.hotel-monogram.lavender{background:#eaf0ff;color:#354c87}
.badge-outline{border-color:#c4d0dc;color:#475569}
.segmented{background:#eef2f6}.segment{color:#475569}.segment.active{color:#15549a;box-shadow:inset 0 0 0 2px #0969c3}
.field input,.field select,#parking-form .field input[type=datetime-local],#parking-form .field select{border-color:#7a899c;color:#17345c}
.field input:hover,.field select:hover{border-color:#0969c3}
.button{background:#0969c3;color:#fff}.button:hover{background:#15549a}
.button.light{background:#fff;color:#15549a;border-color:#7a899c}.button.light:hover{background:#f0f6ff}
.button.green{background:#dcecff;color:#17345c}.button.green:hover{background:#c5ddfa}
.text-button:hover{background:#eaf3ff}
.estimate,.compare-summary{background:#17345c;border-color:#17345c}
.estimate .overline,.estimate .estimate-caption,.estimate .result-note,.estimate .result-empty,.estimate .row span,.estimate .warning-list,.compare-summary p,.comparison-overview small{color:#dbe7f5}
.estimate .hotel-title{color:#fff}.estimate .details summary,.estimate .details summary::marker,.estimate .result-note a{color:#dcecff}
.estimate .status-tag{background:#ffffff12;color:#ffe0a3}
.estimate .button.light{color:#15549a;border-color:#fff}
.quote-result{background:#f0f6ff;border-color:#c7daef}
.quote-result.partial,.notice.amber{background:#fff6e5;border-color:#b7791f;color:#754c0c}
.quote-result .hold-row{border-color:#7a899c}.notice{background:#f0f5fc;border-color:#0969c3;color:#334155}
.hotel-card:hover{border-color:#0969c3}.file-input{background:#f5f7fa;border-color:#7a899c}
.currency,.save-info{color:#475569}.toast{background:#17345c}
input[type=checkbox]{accent-color:#0969c3}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #0969c3}
@media(max-width:1199px){.sidebar-close{background:#eaf3ff;color:#15549a}.menu-toggle{color:#15549a}}
@media(max-width:700px){.mobile-action-bar{border-color:#c4d0dc;box-shadow:0 -4px 18px #17345c12}.mobile-action-bar a{color:#15549a;border-color:#7a899c}}
@media print{.estimate,.compare-summary{background:#fff;color:#17345c;border-color:#888}.estimate .overline,.estimate .estimate-caption,.estimate .result-note,.estimate .result-empty,.estimate .row span,.estimate .warning-list,.estimate .details summary,.estimate .status-tag,.compare-summary p,.comparison-overview small{color:#334155}}
/* Shared layouts for focused tools. */
[hidden]{display:none!important}
@media(min-width:1200px){.menu-toggle{display:none}}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.tool-card{display:flex;flex-direction:column;gap:1rem;min-width:0;transition:border-color .15s}
.tool-card:hover{border-color:#0969c3}.tool-card>svg{width:30px;height:30px;color:#0969c3}
.tool-card h2{font-size:1.375rem;line-height:1.3}.tool-card p{font-size:1rem;color:#475569;line-height:1.65}.tool-card .small-link{margin-top:auto;color:#15549a;font-size:1rem;font-weight:650}
.catalog-filter{margin:1.5rem 0}.catalog-filter .tiny{margin-top:.75rem}
.field textarea{font:inherit;min-height:160px;width:100%;border:1px solid #7a899c;border-radius:.5rem;padding:.75rem;resize:vertical;color:#17345c;background:#fff}
.field textarea:focus-visible{outline:3px solid #0969c3;outline-offset:4px}
.field-error{font-size:.875rem!important;color:#9c3227!important;font-weight:600}
[data-fees]{background:#f5f8fc;padding:1rem;border-radius:.75rem;margin-top:1rem}
[data-fees] h3{font-size:1.125rem}.quote-card [data-parking]>.field{margin-top:1rem}
.quote-card .scope-caption{margin:.75rem 0 0}.quote-card .panel-head h2{font-size:1.25rem}
.quote-card .custom-hotel-field{margin-bottom:.5rem}.quote-result h3{font-size:1.125rem}
.partial .result-total{font-size:2rem}.comparison-overview li{min-width:0}
.compare-summary .row span,.compare-summary .tiny{color:#dbe7f5}.compare-summary .row b{color:#fff}
.estimate .history{background:#ffffff0b;border-radius:.5rem;padding:.75rem}
.estimate .history ul{padding-left:1rem}.estimate .history .row{font-size:.875rem}.estimate .history .tiny{color:#dbe7f5}
.share-fallback{margin-top:1rem;padding:1rem;background:#f0f5fc;border-radius:.75rem;color:#17345c}
.share-fallback input{width:100%;font-size:1rem;min-height:52px;border:1px solid #7a899c;border-radius:.5rem;padding:.75rem}
.share-fallback .tiny,.estimate .share-fallback .tiny{color:#475569}
.saved-description{min-width:0;flex:1 1 20rem}.saved-description h2{font-size:1.25rem}.saved-description .field{margin-top:1rem;max-width:32rem}
.rate-table{max-width:100%;margin:1rem 0}.rate-table table{width:100%;border-collapse:collapse;font-size:1rem;table-layout:fixed}
.rate-table caption{text-align:left;font-weight:650;margin-bottom:.75rem}.rate-table th,.rate-table td{text-align:left;padding:.75rem;border-bottom:1px solid #d8e0e9;overflow-wrap:anywhere}.rate-table th{font-weight:600}.rate-table th:last-child,.rate-table td:last-child{width:30%}
.history ul{list-style:none;padding:0}.history li{padding:1rem 0;border-bottom:1px solid #d8e0e9}.history p{color:#475569}
.result-section .notice{scroll-margin-top:1rem}
@media(max-width:1199px){.tool-grid{grid-template-columns:1fr}.tool-card{gap:.75rem}}
@media(max-width:700px){.tool-card{padding:1.25rem}.tool-card h2{font-size:1.25rem}[data-fees]{padding:.875rem}.rate-table th,.rate-table td{padding:.75rem .375rem}.saved-description{flex-basis:100%}.saved-description .field{max-width:none}.comparison-overview li .row{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}.comparison-overview li .row b{text-align:left}.field textarea{font-size:1rem}.tool-grid{gap:1rem}}
@media print{.mobile-action-bar,.share-fallback,.history,.catalog-filter,.tool-grid,.field-error{display:none!important}.estimate .row b,.estimate .tiny,.estimate .history .tiny,.compare-summary .row span,.compare-summary .row b,.compare-summary .tiny{color:#17345c}.rate-table th,.rate-table td{border-color:#888}form:has(+.result-section){display:none!important}.quote-card>.field-grid,.quote-card>details,.quote-card>[data-fees],.quote-card>[data-parking],.quote-card>.tiny,.quote-card>.scope-caption,.quote-card>.source-mini{display:none!important}}
.estimate .tiny{color:#dbe7f5}.estimate .tiny a{text-decoration:underline;text-underline-offset:.2em}
.estimate .share-fallback .tiny,.estimate .notice .tiny{color:#475569}
@media print{.estimate .tiny{color:#17345c}}

/* Keep the three starting tools close to the introduction on phones. */
.tool-card-copy{min-width:0}
.tool-card-copy p{margin-top:.75rem}
.tool-card .small-link{display:flex;align-items:center;gap:.375rem}
@media(max-width:700px){
 body[data-page="home"] .topbar{min-height:64px}
 body[data-page="home"] .main{padding-top:1.25rem}
 body[data-page="home"] .hero{margin-bottom:1.25rem}
 body[data-page="home"] .hero .eyebrow{display:none}
 body[data-page="home"] .hero h1{font-size:1.75rem;line-height:1.25}
 body[data-page="home"] .hero p{font-size:1.0625rem;line-height:1.5;margin-top:.75rem;max-width:34ch}
 .tool-grid{gap:.625rem}
 .tool-card{display:grid;grid-template-columns:28px minmax(0,1fr) 16px;align-items:start;column-gap:.75rem;row-gap:0;padding:1rem;border-radius:.875rem}
 .tool-card>svg{width:26px;height:26px;margin-top:.125rem}
 .tool-card h2{font-size:1.125rem;line-height:1.35;letter-spacing:-.02em}
 .tool-card-copy p{font-size:1rem;line-height:1.45;margin-top:.25rem}
 .tool-card .small-link{margin:0;align-self:center;font-size:1.25rem;line-height:1.3}
 .tool-card .tool-action-label{display:none}
}

/* Put the form within easy reach on small screens, including scaled phones. */
@media(max-width:700px){
 .topbar{min-height:64px}
 .main{padding-top:1.25rem}
 .hero,.screen-title{margin-bottom:1.25rem}
 .hero .eyebrow,.screen-title .eyebrow{display:none}
 .hero h1,.screen-title h1{font-size:1.75rem;line-height:1.25}
 .hero p,.screen-title p{font-size:1.0625rem;line-height:1.5;margin-top:.75rem}
 .tabs{margin-bottom:1rem}
 .tab{min-height:48px;flex-direction:row;gap:0;padding:.625rem .375rem}
 .tab.active{padding:calc(.625rem - 1px) calc(.375rem - 1px)}
 .tab svg{display:none}
 .catalog-filter{margin-top:0;padding-block:1rem}
 .catalog-filter .field-grid{gap:1rem}
 .save-info{line-height:1.5;margin-bottom:1rem}
 .mobile-action-bar{padding-top:6px;padding-bottom:max(6px,env(safe-area-inset-bottom))}
 .mobile-action-bar button,.mobile-action-bar a{min-height:48px;padding:10px 12px}
}

/* Unverified fees are guidance rather than large price text. */
.hotel-card .rate.is-unconfirmed{font-size:1rem;line-height:1.5;font-weight:650;letter-spacing:0;color:#475569}
.source-date{display:inline-block;white-space:nowrap}

/* One primary starting action; the other planning tools remain easy to find. */
.home-hero>div:first-child{flex:1;min-width:0}
.home-hero h1{max-width:24ch}
.home-hero h1 .soft{display:inline-block}
.home-primary{margin-top:1.25rem;max-width:100%;width:max-content;min-height:52px}
.tool-grid.home-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.home-primary{width:100%;margin-top:1rem}.tool-grid.home-secondary-grid{grid-template-columns:minmax(0,1fr)}}
@media print{.home-primary,.home-secondary-grid{display:none!important}}
