/* AbroadWise: fluid layouts, accessible navigation and editorial city artwork. */
:root { --ink:#16392f; --muted:#65736c; --canvas:#f8f7f2; --green:#235e50; --green-deep:#123b34; --green-soft:#e8efe7; --line:#dedfd4; --shell:min(1360px,calc(100% - 64px)); }
html { scroll-padding-top:100px; } body { overflow-wrap:break-word; } [hidden] { display:none!important; }
.skip-link { position:fixed; left:12px; top:-80px; z-index:100; background:white; color:var(--ink); padding:14px; border-radius:8px; }.skip-link:focus { top:12px; }:focus-visible { outline:3px solid #b77325; outline-offset:4px; }
.site-header { background:rgba(248,247,242,.96); }.header-inner { gap:20px; min-height:82px; }.brand-name { color:var(--green-deep); font-size:1.3rem; letter-spacing:-.045em; }.brand-name small { font-size:.47em; letter-spacing:.14em; line-height:1.5; font-weight:650; }.brand-mark { background-image:url('brand-logo.svg?v=4.0'); }.main-nav { gap:0; }.main-nav a { padding:12px 9px; font-size:.79rem; }.header-contact { padding:11px 14px; font-size:.78rem; }
.home-main { min-height:0; overflow:clip; }.scene-hero { padding:0; min-height:710px; display:block; background:#e8eadf; overflow:hidden; }.scene-hero::before { display:none; }.scene-hero::after { width:auto; height:auto; inset:0; border-radius:0; filter:none; animation:none; z-index:0; background:linear-gradient(90deg,#f8f7f2 0%,rgba(248,247,242,.97) 25%,rgba(248,247,242,.90) 40%,rgba(248,247,242,.22) 70%,transparent 100%); }.hero-city-art { position:absolute; width:min(1000px,80vw); aspect-ratio:1; right:0; top:50%; transform:translateY(-50%); background:url('city-destinations.webp') 0% 0% / 200% 200%; }.scene-content { min-height:710px; padding-block:84px 72px; position:relative; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:32px; }.scene-copy { max-width:670px; width:58%; }.scene-hero .eyebrow { font-size:.68rem; letter-spacing:.12em; margin-bottom:28px; }.scene-hero h1 { font-size:clamp(3.5rem,6.7vw,6.5rem); font-weight:650; line-height:1.02; letter-spacing:-.065em; }.scene-hero h1 em { color:#a46c36; }.scene-hero .hero-copy { max-width:540px; font-size:1.07rem; line-height:1.75; margin-top:26px; }.scene-hero .trust-note { font-size:.73rem; gap:18px; }.scene-cities { display:flex; flex-wrap:wrap; gap:8px; margin-top:40px; }.scene-cities button { border:1px solid #d1d6c9; border-radius:999px; background:rgba(248,247,242,.80); padding:9px 16px; color:#3f5549; font-size:.77rem; }.scene-cities button[aria-pressed=true] { color:white; background:var(--green-deep); border-color:var(--green-deep); }.scene-location { align-self:flex-end; width:290px; color:#fff; text-decoration:none; background:rgba(18,59,52,.84); border:1px solid #ffffff40; backdrop-filter:blur(14px); padding:24px; border-radius:18px; }.scene-location span,.scene-location small { display:block; font-size:.65rem; letter-spacing:.08em; }.scene-location b { display:block; margin:10px 0; font-size:1.18rem; }.scene-location small { color:#e1e7de; font-size:.78rem; letter-spacing:0; }
.home-tool-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:32px 0; border-bottom:1px solid var(--line); }.home-tool-strip a { text-decoration:none; padding:8px 24px; border-right:1px solid var(--line); }.home-tool-strip a:first-child { padding-left:0; }.home-tool-strip a:last-child { border:0; }.home-tool-strip span,.home-tool-strip b,.home-tool-strip small { display:block; }.home-tool-strip span { font-size:.63rem; letter-spacing:.12em; color:#a46c36; font-weight:750; }.home-tool-strip b { font-size:1.08rem; margin:9px 0 5px; }.home-tool-strip small { color:var(--muted); font-size:.76rem; }
.home-section { padding-block:76px; }.editorial-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:36px; }.editorial-heading .eyebrow { margin-bottom:16px; }.editorial-heading h2,.resource-row h2,.consultation-banner h2,.faq-section h2 { margin:0; font-size:clamp(2rem,3.6vw,3.25rem); line-height:1.1; letter-spacing:-.045em; font-weight:650; }.editorial-heading > p { max-width:380px; color:var(--muted); margin:0; line-height:1.7; }
.feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }.feature-card { display:block; padding:30px; border:1px solid var(--line); border-radius:20px; background:#fff; text-decoration:none; transition:transform .2s; }.feature-card:hover { transform:translateY(-4px); }.feature-icon { display:grid; place-items:center; width:46px; height:46px; border-radius:14px; background:#e9eee6; font-size:1.45rem; }.feature-card h3 { font-size:1.25rem; line-height:1.35; margin:24px 0 12px; }.feature-card p { color:var(--muted); font-size:.93rem; }.feature-card b { display:block; margin-top:25px; font-size:.83rem; }
.destinations-section { background:#eeefe8; }.city-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }.city-card { position:relative; display:flex; flex-direction:column; justify-content:flex-end; aspect-ratio:1; padding:24px; border-radius:18px; overflow:hidden; text-decoration:none; color:#fff; isolation:isolate; background:url('city-destinations.webp') 0 0 / 200% 200%; }.city-card::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(transparent 10%,rgba(14,38,32,.83)); }.city-card span { font-size:.6rem; font-weight:700; letter-spacing:.17em; }.city-card h3 { margin:6px 0 12px; font-size:1.9rem; font-weight:650; letter-spacing:-.04em; }.city-card b { font-size:.73rem; font-weight:500; }.city-melbourne { background-position:100% 0%; }.city-toronto { background-position:0% 100%; }.city-amsterdam { background-position:100% 100%; }.art-note { color:var(--muted); font-size:.66rem; text-align:right; margin:12px 0 0; }
.resource-row { display:flex; gap:24px; align-items:center; flex-wrap:wrap; }.resource-row > div { flex:1 1 300px; }.resource-row .eyebrow { margin-bottom:12px; }.resource-row h2 { font-size:2rem; }.resource-row > a { font-size:.86rem; font-weight:700; padding-bottom:6px; border-bottom:1px solid var(--line); text-decoration:none; }
.consultation-banner { padding:48px; border-radius:24px; background:#123b34; color:#fff; display:flex; justify-content:space-between; align-items:center; gap:40px; }.consultation-banner .eyebrow { color:#e2bd8d; margin-bottom:18px; }.consultation-banner .eyebrow::before { background:#e2bd8d; }.consultation-banner p:not(.eyebrow) { color:#d5ded4; max-width:630px; font-size:.95rem; }.consultation-banner .primary { color:#123b34; background:#e7c397; white-space:nowrap; }.contact-email { display:block; margin-top:16px; color:inherit; font-size:.85rem; overflow-wrap:anywhere; }
.faq-section { display:grid; grid-template-columns:1fr 1.4fr; gap:70px; }.faq-section .eyebrow { margin-bottom:18px; }.faq-section details { padding:18px 0; border-bottom:1px solid var(--line); }.faq-section summary { cursor:pointer; font-weight:700; }.faq-section details p { color:var(--muted); line-height:1.7; }.footer-inner { gap:30px; padding-block:36px; }.site-footer p { font-size:.78rem; }.footer-links { flex-wrap:wrap; gap:18px; }.footer-links a { font-size:.78rem; }
.page-hero { min-height:330px; padding:50px 0; background:#f0f2e9; }.page-hero > .shell { padding-right:30%; }.page-hero h1 { font-size:clamp(2.3rem,4.5vw,4.2rem); max-width:840px; }.page-hero p { font-size:1rem; }.page-city-art { position:absolute; width:min(600px,50vw); aspect-ratio:1; top:50%; transform:translateY(-50%); right:0; background:url('city-destinations.webp') 0 0 / 200% 200%; mask-image:linear-gradient(90deg,transparent,#000 70%); opacity:.6; }
.workspace > *,.builder-workspace > *,.tool-workbench > *,.two-col > *,.feedback-layout > * { min-width:0; }input,select,textarea { min-width:0; max-width:100%; }label { overflow-wrap:anywhere; }.sample-note { padding:11px 14px; border:1px solid #e5d0b2; background:#fff8ea; color:#705526; border-radius:10px; font-size:.78rem; line-height:1.6; }.preview-empty { min-height:300px; }.builder-panel { scrollbar-gutter:stable; }.document-stage { position:relative; contain:inline-size; }.a4-document { overflow-wrap:break-word; }.feedback-fab { background:#123b34; }.email-fallback { margin-top:14px; display:inline-flex; font-size:.85rem; }
.readable { max-width:850px; }.readable h2 { margin-top:34px; }.readable p,.readable li { color:var(--muted); line-height:1.8; }.consultation-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:30px; }.consultation-grid .form-card { padding:34px; }.consultation-list { padding-left:20px; color:var(--muted); line-height:1.9; }.contact-address { font-size:clamp(1rem,2.5vw,1.5rem); font-weight:750; overflow-wrap:anywhere; }
.planner-nav { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 30px; }.planner-nav a { padding:12px 18px; background:#fff; border:1px solid var(--line); border-radius:999px; font-weight:750; font-size:.85rem; text-decoration:none; }.planner-section { margin:0 0 48px; scroll-margin-top:105px; }.planner-section > .panel-head { margin-bottom:20px; }.planner-panel { background:#fff; border:1px solid var(--line); border-radius:20px; padding:28px; }.planner-section h2 { font-size:clamp(1.65rem,3vw,2.25rem); margin:0; letter-spacing:-.035em; }.planner-section .panel-head p:not(.panel-kicker) { color:var(--muted); margin:8px 0 0; font-size:.9rem; }
.compare-selects,.compare-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.compare-selects { margin-bottom:24px; }.compare-card { padding:23px; border-radius:16px; background:#f5f7ef; border:1px solid var(--line); }.compare-card h3 { font-size:1.35rem; margin:0 0 16px; }.compare-card .big-figure { font-size:1.8rem; font-weight:750; margin:5px 0; }.compare-card .figure-note { color:var(--muted); font-size:.75rem; }.compare-card p { font-size:.86rem; }.compare-card a { display:block; margin-top:12px; font-size:.8rem; }.compare-card .source-links a { font-size:.73rem; color:var(--green); }.planner-help { color:var(--muted); font-size:.8rem; line-height:1.7; }
.budget-layout { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,.8fr); gap:24px; }.budget-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.budget-result { background:var(--green-deep); padding:28px; border-radius:17px; color:#fff; }.budget-result > span { font-size:.7rem; letter-spacing:.1em; }.budget-total { margin:12px 0; display:block; font-size:clamp(2rem,3.5vw,3rem); letter-spacing:-.04em; }.budget-result dl { margin:24px 0; }.budget-result dl > div { display:flex; justify-content:space-between; gap:10px; border-bottom:1px solid #426258; padding:10px 0; font-size:.8rem; }.budget-result dd { margin:0; text-align:right; }.budget-result p { font-size:.78rem; color:#d5ded4; }.budget-result .secondary-button { width:100%; font-size:.8rem; }.budget-base { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.tracker-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr); gap:24px; }.tracker-form label { margin-bottom:14px; }.tracker-form .primary-button { width:100%; }.tracker-empty { border:1px dashed #becdc0; padding:40px 20px; text-align:center; border-radius:16px; color:var(--muted); }.tracker-empty h3 { color:var(--ink); }.tracker-tools { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:18px; }.tracker-tools .secondary-button { font-size:.77rem; padding:10px 14px; }.tracker-list { display:grid; gap:14px; }.application-card { padding:22px; background:#f8faf4; border:1px solid var(--line); border-radius:16px; }.application-card h3 { margin:0; font-size:1.05rem; }.application-card p { margin:5px 0 12px; font-size:.84rem; color:var(--muted); }.application-top { display:flex; justify-content:space-between; gap:12px; }.deadline-tag { display:inline-block; font-size:.7rem; color:#295440; padding:6px 10px; border-radius:999px; background:#e7efdf; height:fit-content; white-space:nowrap; }.deadline-tag.overdue { color:#8b442b; background:#fae7d9; }.application-actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }.application-actions select { flex:1; min-width:145px; margin:0; font-size:.8rem; padding:9px; }.application-actions button { border:1px solid var(--line); background:white; border-radius:9px; padding:9px 12px; font-size:.75rem; }.application-actions a { font-size:.77rem; }.planner-status { font-size:.8rem; color:var(--green); min-height:1.6em; }.checklist-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.checklist-grid label { display:flex; gap:12px; align-items:start; padding:15px; border:1px solid var(--line); background:#fff; border-radius:12px; font-size:.85rem; }.checklist-grid input { width:20px; height:20px; accent-color:var(--green); margin:3px 0 0; flex-shrink:0; }.checklist-grid small { display:block; font-weight:400; color:var(--muted); margin-top:3px; }.checklist-progress { width:100%; height:9px; accent-color:var(--green); margin:12px 0 20px; }
@media (max-width:1240px) { .header-contact { display:inline-flex; margin-left:8px; }.menu-toggle { display:block; }.main-nav { display:none; position:fixed; inset:82px 0 auto; margin:0; padding:18px 24px; max-height:calc(100dvh - 82px); overflow:auto; background:#f8f7f2; border-bottom:1px solid var(--line); box-shadow:0 12px 20px #123b3410; }.main-nav.is-open { display:grid; }.main-nav a { padding:13px; font-size:.93rem; }.scene-copy { width:65%; }.scene-location { width:250px; }.builder-workspace { grid-template-columns:minmax(0,1fr); }.builder-panel { max-height:none; overflow:visible; }.preview-panel { position:static; } }
@media (max-width:900px) { :root { --shell:min(100% - 40px,800px); }.scene-hero,.scene-content { min-height:640px; }.scene-copy { width:76%; }.hero-city-art { width:85vw; opacity:.7; }.scene-location { display:none; }.scene-hero::after { background:linear-gradient(90deg,#f8f7f2,rgba(248,247,242,.90) 40%,rgba(248,247,242,.38)); }.home-tool-strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 0; }.home-tool-strip a:nth-child(3) { padding-left:0; }.home-tool-strip a:nth-child(2) { border:0; }.feature-grid { gap:12px; }.feature-card { padding:22px; }.city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.editorial-heading { align-items:start; flex-direction:column; gap:20px; }.editorial-heading > p { max-width:600px; }.consultation-banner { padding:32px; flex-direction:column; align-items:start; gap:20px; }.faq-section { grid-template-columns:1fr; gap:28px; }.page-hero > .shell { padding-right:0; }.page-city-art { opacity:.2; width:70vw; }.compare-grid,.compare-selects { gap:12px; }.budget-layout,.tracker-layout,.consultation-grid { grid-template-columns:minmax(0,1fr); }.footer-inner { align-items:start; } }
@media (max-width:620px) { :root { --shell:calc(100% - 32px); }.header-inner { min-height:72px; gap:8px; }.brand-mark { width:38px; height:38px; flex-basis:38px; }.brand-name { font-size:1.15rem; }.header-contact { display:none; }.main-nav { inset-block-start:72px; max-height:calc(100dvh - 72px); padding:12px 16px; }.menu-toggle { min-width:44px; min-height:44px; }.scene-content { min-height:600px; padding-block:54px 44px; }.scene-copy { width:100%; }.scene-hero { min-height:0; }.scene-hero h1 { font-size:clamp(3rem,13vw,4.3rem); }.scene-hero .eyebrow { font-size:.59rem; letter-spacing:.06em; line-height:1.7; }.hero-city-art { width:120vw; right:-30%; opacity:.36; }.scene-hero::after { background:linear-gradient(90deg,rgba(248,247,242,.98),rgba(248,247,242,.68)); }.scene-hero .hero-copy { font-size:.98rem; margin-top:20px; }.hero-actions { margin-top:24px; }.hero-actions .button { flex:1 1 220px; font-size:.88rem; padding:14px; }.scene-cities { margin-top:28px; gap:7px; }.scene-cities button { padding:9px 13px; }.scene-hero .trust-note { font-size:.68rem; gap:10px; }.home-tool-strip { padding-block:24px; gap:22px 0; }.home-tool-strip a { padding:2px 14px; }.home-tool-strip b { font-size:.94rem; }.home-tool-strip small { font-size:.69rem; }.home-tool-strip span { font-size:.57rem; }.home-section { padding-block:46px; }.feature-grid { grid-template-columns:1fr; gap:14px; }.feature-card { padding:24px; }.feature-card h3 { margin-top:18px; }.city-grid { gap:12px; }.city-card { padding:15px; }.city-card h3 { font-size:clamp(1.15rem,5.5vw,1.8rem); margin-bottom:8px; }.city-card span { font-size:.51rem; letter-spacing:.06em; }.city-card b { font-size:.62rem; }.resource-row { gap:16px; }.resource-row h2 { font-size:1.8rem; }.consultation-banner { padding:26px; }.consultation-banner .primary { white-space:normal; font-size:.86rem; }.contact-email { font-size:.78rem; }.page-hero { min-height:0; padding:36px 0; }.page-hero h1 { font-size:clamp(2rem,8.7vw,3.1rem); line-height:1.05; }.page-hero p { font-size:.91rem; }.page-hero .hero-meta span { font-size:.68rem; }.page-content { padding-block:24px 60px; }.form-card,.builder-panel,.preview-panel,.tool-result,.tool-form,.result-panel,.planner-panel { padding:18px; }.planner-nav { gap:8px; }.planner-nav a { padding:10px 13px; font-size:.75rem; }.compare-selects,.compare-grid,.checklist-grid,.budget-fields { grid-template-columns:1fr; }.compare-card { padding:20px; }.budget-result { padding:22px; }.planner-section .panel-head { gap:8px; }.application-top { flex-direction:column; gap:6px; }.deadline-tag { align-self:start; margin-bottom:12px; }.application-card { padding:16px; }.preview-empty { padding:20px; min-height:260px; }.consultation-grid .form-card { padding:22px; }.footer-inner { padding-bottom:76px; }.footer-links { gap:14px; }.feedback-fab { bottom:max(14px,env(safe-area-inset-bottom)); }.readable { max-width:100%; } }
@media print { .skip-link,.feedback-fab { display:none!important; }.document-stage { contain:none; }.planner-nav,.tracker-tools,.tracker-form,.budget-fields,.budget-base { display:none!important; }.planner-section { break-inside:avoid; }.planner-panel { box-shadow:none; } }

/* Keep radio controls within their cards; avoid viewport-wide invisible inputs. */
.tone-fieldset { border:0; min-width:0; margin:0 0 16px; padding:0; }.tone-fieldset legend { font-weight:750; font-size:.82rem; padding:0; }.tone-grid label { position:relative; cursor:pointer; }.format-choice input,.tone-grid input { position:absolute; width:1px; height:1px; min-width:0; max-width:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); pointer-events:none; }.format-choice:focus-within span,.tone-grid label:focus-within span { outline:3px solid #b77325; outline-offset:3px; }
.guide-result-head { flex-wrap:wrap; }.guide-grid,.cost-board,.cost-split { min-width:0; }.guide-grid > * { min-width:0; }
[data-reveal] { opacity:1; transform:none; }
.a4-document.is-exporting { width:174mm!important; min-height:0!important; padding:0!important; box-shadow:none!important; border:0!important; }
@media (max-width:620px) { .hero-city-art { opacity:.65; }.scene-hero::after { background:linear-gradient(90deg,rgba(248,247,242,.98),rgba(248,247,242,.60)); } }
