:root{--ink:#173b38;--deep:#123936;--cream:#f7f1e7;--paper:#fffdf8;--orange:#ea6a3a;--gold:#d7b66f;--sky:#b8dce2;--muted:#6c7a75;--line:#d8d8cb;--shadow:0 22px 60px rgba(19,55,51,.12)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px}
button,input,select{font:inherit}
.nav{height:68px;padding:0 max(22px,calc((100vw - 1160px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(247,241,231,.92);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,59,56,.1)}
.brand{font-family:Newsreader,serif;font-weight:600;font-size:1.25rem;display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-stamp-wrap{display:block;width:58px;height:36px;overflow:hidden;position:relative;flex:0 0 auto}
.brand-stamp{display:block;width:75px;height:auto;max-width:none;position:absolute;left:-14px;top:-20px}
.nav-note{font-size:.78rem;color:var(--muted)}
.hero{min-height:calc(100svh - 68px);padding:12vh 24px 70px;position:relative;overflow:hidden;background:radial-gradient(circle at 82% 14%,rgba(184,220,226,.8),transparent 23%),linear-gradient(148deg,var(--cream) 62%,#e7ddd0)}
.hero:after{content:"";position:absolute;width:55vw;height:55vw;border:1px solid rgba(23,59,56,.12);border-radius:50%;right:-20vw;bottom:-32vw;box-shadow:0 0 0 55px rgba(23,59,56,.035),0 0 0 110px rgba(23,59,56,.025)}
.hero>*{max-width:1100px;margin-left:auto;margin-right:auto}
.eyebrow{letter-spacing:.18em;font-size:.73rem;font-weight:700;color:var(--orange);margin-bottom:24px}
.hero h1,.section-intro h2{font-family:Newsreader,serif;font-weight:500;letter-spacing:-.04em;line-height:.92;margin:0}
.hero h1{font-size:clamp(3.6rem,8vw,7.6rem);max-width:1100px}
.hero h1 em{color:var(--orange);font-weight:500}
.lede{font-size:clamp(1.05rem,2vw,1.35rem);max-width:480px;margin-top:28px;color:#48605c;line-height:1.55}
.primary{border:0;background:var(--deep);color:white;padding:17px 21px;border-radius:4px;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:36px;cursor:pointer;box-shadow:0 8px 20px rgba(18,57,54,.18)}
.primary:hover{background:#0b2927;transform:translateY(-1px)}
.hero-cta{margin:30px auto 0 max(calc((100vw - 1100px)/2),0px);min-width:200px}
.stamp{position:absolute!important;right:max(7vw,30px);top:14vh;width:118px;height:118px;border:2px solid var(--orange);border-radius:50%;display:grid;place-content:center;text-align:center;transform:rotate(9deg);color:var(--orange);font-size:.64rem;letter-spacing:.15em;line-height:1.7}
.route-line{display:flex;align-items:center;gap:14px;margin-top:12vh!important;font-size:.65rem;letter-spacing:.19em;color:var(--muted)}
.route-line i{height:1px;max-width:160px;flex:1;background:var(--line)}
.planner,.results{max-width:920px;margin:0 auto;padding:78px 22px}
.section-intro{margin-bottom:36px}
.section-intro h2{font-size:clamp(2.7rem,7vw,4.5rem)}
.section-intro>p:last-child{color:var(--muted);line-height:1.5}
.form-card{background:var(--paper);padding:28px;margin-bottom:16px;border:1px solid rgba(23,59,56,.1);box-shadow:0 8px 25px rgba(23,59,56,.04)}
.step{display:flex;gap:18px;margin-bottom:24px}
.step>span{color:var(--orange);font-size:.75rem;font-weight:700;letter-spacing:.1em;padding-top:5px}
.step h3{font:600 1.55rem Newsreader;margin:0 0 5px}
.step p{margin:0;color:var(--muted);font-size:.88rem}
.grid{display:grid;gap:16px}
.grid.two{grid-template-columns:1fr 1fr}
.field-help{margin:11px 0 0;color:var(--muted);font-size:.78rem}
label,legend{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:#526660}
input[type=date],input[type=time],select{display:block;width:100%;margin-top:8px;padding:14px;border:1px solid #c9cec8;border-radius:4px;background:white;color:var(--ink);min-height:51px}
fieldset{border:0;padding:0;margin:24px 0 0}
.day-pills{display:flex;gap:7px;margin-top:10px}
.day-pills label{flex:1}
.day-pills input{position:absolute;opacity:0}
.day-pills span{display:grid;place-items:center;border:1px solid #c9cec8;height:43px;border-radius:3px;cursor:pointer}
.day-pills input:checked+span{background:var(--deep);color:white;border-color:var(--deep)}
.pto-label{display:block}
.pto-label output{float:right;color:var(--orange);font-size:.9rem}
.pto-label input{width:100%;accent-color:var(--orange);margin-top:18px}
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:19px 0;border-top:1px solid #e2e1d9}
.toggle-row:first-of-type{margin-top:22px}
.toggle-row b{font-size:.92rem}
.toggle-row small{display:block;color:var(--muted);margin-top:3px}
.schedule-check{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:white;font-weight:700;flex:0 0 auto}
.switch input{opacity:0;position:absolute}
.switch span{display:block;width:46px;height:26px;background:#bdc6c0;border-radius:20px;position:relative;cursor:pointer}
.switch span:after{content:"";position:absolute;width:20px;height:20px;background:white;border-radius:50%;top:3px;left:3px;transition:.2s}
.switch input:checked+span{background:var(--orange)}
.switch input:checked+span:after{left:23px}
.custom-wrap{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding-top:18px;border-top:1px solid #e2e1d9}
.custom-wrap>*{min-width:0}
.custom-wrap label span{color:#929d98;text-transform:none;letter-spacing:0}
.add-btn{min-height:51px;padding:0 18px;border:1px solid var(--deep);background:transparent;color:var(--deep);font-weight:700;cursor:pointer;border-radius:4px}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.chip{border:1px solid var(--gold);background:#fff8e7;padding:7px 10px;font-size:.78rem;border-radius:20px}
.chip button{border:0;background:none;color:var(--orange);cursor:pointer}
.build{width:100%;font-size:1.05rem}
.form-error{color:#a83e22;font-weight:600}
.result-hero{background:var(--deep);color:white;padding:34px 28px 30px;position:relative;overflow:hidden;box-shadow:var(--shadow)}
.result-hero:after{content:"";position:absolute;width:220px;height:220px;border:1px solid rgba(255,255,255,.14);border-radius:50%;right:-95px;top:-95px;box-shadow:0 0 0 35px rgba(255,255,255,.025)}
.result-kicker{color:var(--gold);font-size:.68rem;letter-spacing:.18em;font-weight:700}
.result-hero h2{font:500 clamp(2.8rem,8vw,5rem) Newsreader;margin:12px 0 4px;letter-spacing:-.03em}
.result-dates{opacity:.72}
.passport-code{font-size:.7rem;letter-spacing:.15em;margin-top:34px;opacity:.65}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:white;box-shadow:var(--shadow)}
.stat{padding:21px 12px;text-align:center;border-right:1px solid #e2e1d9}
.stat:last-child{border:0}
.stat strong{display:block;font:600 2rem Newsreader}
.stat span{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.schedule{margin-top:22px;background:var(--paper);padding:27px;border:1px solid rgba(23,59,56,.1)}
.schedule h3,.calendar-wrap h3{font:600 1.55rem Newsreader;margin:0}
.time-card{display:grid;grid-template-columns:1.2fr .9fr .9fr;margin-top:20px;border:1px solid var(--line)}
.time-block{padding:18px;border-right:1px solid var(--line)}
.time-block:last-child{border:0}
.time-block small{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.time-block strong{font:600 1.3rem Newsreader;display:block;margin-top:5px}
.time-detail{display:block;color:var(--muted);font-size:.75rem;margin-top:5px;line-height:1.35}
.time-block.main{background:#e8f1ef}
.tz-note{color:var(--muted);font-size:.78rem;margin:13px 0 0;line-height:1.5}
.calendar-wrap{margin-top:22px;background:white;padding:27px;box-shadow:var(--shadow)}
.legend{display:flex;flex-wrap:wrap;gap:13px;margin:15px 0 20px;font-size:.72rem;color:var(--muted)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px}
.calendars{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.month-title{font-weight:700;margin-bottom:11px}
.week,.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.week span{text-align:center;color:var(--muted);font-size:.65rem}
.day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;border-radius:3px;color:#a6aaa7}
.day.trip{color:var(--ink);font-weight:600}
.day.work,.day.remote{background:#dce9e7}
.day.pto{background:#f7b49b}
.day.off,.day.holiday{background:#f3deb0}
.day.custom{background:#f3deb0}
.day.empty{visibility:hidden}
.optimizer{margin-top:22px;border:1px solid var(--gold);background:#fff9e9;padding:24px;display:flex;gap:17px}
.optimizer-content{min-width:0;flex:1}
.optimizer .seal{min-width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:#9a6d16}
.optimizer h3{font:600 1.3rem Newsreader;margin:0 0 6px}
.optimizer p{margin:0;color:#5f675f;line-height:1.45;font-size:.9rem}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.secondary{padding:15px;border:1px solid var(--deep);color:var(--deep);background:transparent;font-weight:700;cursor:pointer}
.share-status{text-align:center;color:var(--muted);font-size:.8rem;min-height:18px}
.results-note{text-align:center;color:var(--muted);font-size:.75rem;margin-top:18px}
.choice-set{border-top:1px solid #e2e1d9;margin-top:22px;padding-top:20px}
.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:11px}
.choice-grid label{position:relative}
.choice-grid input{position:absolute;opacity:0}
.choice-grid span{display:block;height:100%;padding:13px;border:1px solid #c9cec8;border-radius:4px;text-transform:none;letter-spacing:0;cursor:pointer;background:white}
.choice-grid b{display:block;font-size:.82rem}
.choice-grid small{display:block;color:var(--muted);font-size:.7rem;line-height:1.35;margin-top:4px}
.choice-grid input:checked+span{border:2px solid var(--orange);padding:12px;background:#fff8f2}
.coverage{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.coverage h4{margin:0 0 9px;font:600 1.05rem Newsreader}
.coverage ul{margin:0;padding-left:19px;color:#526660;font-size:.84rem;line-height:1.6}
.comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}
.compare-card{border:1px solid #e2d5b5;background:rgba(255,255,255,.55);padding:13px}
.compare-card small{display:block;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem}
.compare-card strong{display:block;margin:4px 0;font:600 1.05rem Newsreader}
.compare-card span{font-size:.75rem;color:#5f675f}
.benefit{font-weight:700;color:var(--orange)!important}
.use-dates{margin-top:14px;padding:11px 15px;border:0;background:var(--orange);color:white;font-weight:700;cursor:pointer;border-radius:3px}
.recommendation-label{display:inline-block;margin-top:18px;color:var(--orange);font-size:.68rem;letter-spacing:.16em;font-weight:700}
.recommendation-card+.recommendation-card{border-top:1px solid #e2d5b5;margin-top:22px;padding-top:4px}
.recommendation-actions{display:flex;gap:9px;align-items:center;margin-top:14px}
.recommendation-actions button{min-width:0;white-space:normal;line-height:1.25;text-align:center}
.keep-dates{margin-top:14px;padding:10px 14px;border:1px solid var(--deep);background:transparent;color:var(--deep);font-weight:700;cursor:pointer;border-radius:3px}
.day.opportunity{background:transparent!important;outline:1.5px dashed var(--orange);outline-offset:-2px;color:var(--orange);font-weight:700}
.day.recommendation-outline{outline:1.5px dashed var(--orange);outline-offset:-2px}
.day.opportunity-work{background:transparent!important;outline:1px dotted #7e8d88;outline-offset:-2px;color:#65736e}
.legend .outline-dot{background:transparent!important;border:1.5px dashed var(--orange)}
.section-help,.suggested-note{color:var(--muted);font-size:.88rem;line-height:1.5;margin:7px 0 0}
.suggested-note{margin-bottom:14px}
footer{background:#0d2b29;color:white;padding:30px max(22px,calc((100vw - 1100px)/2));display:flex;align-items:center}
.footer-logo{display:block;width:min(560px,100%);height:auto;object-fit:contain}
@media(max-width:680px){.nav-note{display:none}
.hero{padding-top:11vh}
.stamp{width:78px;height:78px;top:5.5vh;right:18px;font-size:.48rem;opacity:.55}
.hero h1{font-size:3.75rem;position:relative;z-index:2}
.route-line{margin-top:10vh!important}
.grid.two,.calendars{grid-template-columns:1fr}
.form-card{padding:22px 18px}
.step p{font-size:.82rem}
.day-pills{gap:4px}
.day-pills span{font-size:.7rem}
.stats{grid-template-columns:1fr 1fr}
.stat:nth-child(2){border-right:0}
.stat:nth-child(-n+2){border-bottom:1px solid #e2e1d9}
.time-card{grid-template-columns:1fr 1fr}
.time-block.main{grid-column:1/-1;border-right:0;border-bottom:1px solid var(--line)}
.result-actions{grid-template-columns:1fr}
.results{padding-left:14px;padding-right:14px}
.result-hero{padding:28px 22px}
.calendar-wrap,.schedule{padding:22px 17px}
.footer-logo{width:100%}
.choice-grid,.comparison{grid-template-columns:1fr}
.recommendation-actions{align-items:stretch;flex-direction:column}
.recommendation-actions button{width:100%}
.custom-wrap{grid-template-columns:minmax(0,1fr)}
.custom-wrap .add-btn{width:100%}
}
@media print{.nav,.planner,footer,.result-actions,.results-note{display:none!important}
.results{display:block!important;padding:0}
.result-hero,.stats,.schedule,.calendar-wrap,.optimizer{box-shadow:none;break-inside:avoid}
body{background:white}
}
