:root{--ink:#111214;--yellow:#ffcf2f;--warm:#fff7d8;--line:#e6e6e9;--muted:#666a74;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font:400 15px/1.65 Poppins,Arial,sans-serif}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input,select{font:inherit}button{cursor:pointer}.topbar{height:80px;padding:0 max(5vw,24px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{font-weight:800;font-size:23px;letter-spacing:-.065em;color:#111214!important;white-space:nowrap}.topbar nav{display:flex;align-items:center;gap:27px;font-weight:600}.topbar nav .hello{color:var(--muted);font-size:13px}.inline{display:inline}.linkbtn{border:0;background:none;padding:0;font-weight:600}.container{max-width:1280px;min-height:calc(100vh - 160px);padding:46px 28px 80px;margin:auto}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(36px,5vw,65px);line-height:1.16;letter-spacing:-.05em;font-weight:800}h2{font-size:28px;line-height:1.25;letter-spacing:-.04em}h3{font-size:19px;line-height:1.3}.muted{color:var(--muted)}.small{font-size:12px}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:800;color:#a47400}.btn{background:var(--yellow);color:var(--ink);font-weight:700;border:2px solid var(--yellow);border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:15px;padding:14px 26px;min-height:52px;box-shadow:none;text-align:center}.btn:hover{background:#f7bd0b;text-decoration:none}.btn.sm{min-height:39px;padding:6px 17px;font-size:13px}.btn.outline{background:#fff;border-color:#161616}.btn.outline:hover{background:var(--warm)}.btn.wide{width:100%}.hero{display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:55px;padding:60px 0 90px}.hero h1{margin:18px 0 26px}.hero p{font-size:19px;max-width:610px;color:var(--muted)}.hero .small{font-size:12px;margin-top:17px}.underline{background:linear-gradient(transparent 87%,var(--yellow) 87%)}.hero-visual{background:linear-gradient(130deg,#ffe777,#fff3b8);padding:50px;min-height:440px;border-radius:32px;position:relative;display:grid;place-items:center;overflow:hidden}.sun{position:absolute;font-size:260px;color:#e9aa00;opacity:.18;top:-80px;right:-18px}.sample-card{position:relative;background:#fff;border-radius:19px;padding:32px;width:100%;max-width:395px;box-shadow:0 18px 60px #5a410a26;transform:rotate(-2deg)}.sample-card h2{font-size:36px;margin:10px 0 0}.sample-card small{font-weight:700;letter-spacing:.13em}.sample-row{padding:12px;border-top:1px solid var(--line);font-size:13px;font-weight:600}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.features article,.panel,.review-card,.trip-card,.form-shell{border:1px solid var(--line);border-radius:18px;background:#fff}.features article{padding:25px}.features b{background:var(--warm);display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%}.features h3{margin:15px 0 7px}.features p{color:var(--muted);margin:0}.auth-layout{display:grid;grid-template-columns:1fr 440px;gap:12%;padding-top:45px}.auth-intro{padding-top:60px}.auth-intro p{font-size:20px;color:var(--muted)}.panel{padding:36px;box-shadow:0 16px 50px #1111110d}.auth-card h2{margin-bottom:8px}.auth-card .field{margin:14px 0}.field{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:13px}.field input,.field select{border:1px solid #d9dce2;background:#fff;border-radius:9px;padding:13px 15px;min-height:48px;outline:none;width:100%;color:#111}.field input:focus,.field select:focus{border-color:#dca600;box-shadow:0 0 0 3px #ffcf2f55}.honeypot{position:absolute;left:-9999px}.page-head{display:flex;justify-content:space-between;gap:25px;align-items:center;margin:23px 0 42px}.page-head h1{margin:8px 0}.quota{min-width:275px}.quota .btn{width:100%}.quota p{font-size:13px}.meter{height:9px;border-radius:20px;background:#eff0f2;overflow:hidden}.meter span{height:100%;display:block;background:var(--yellow)}.trip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.trip-card{overflow:hidden;box-shadow:0 7px 20px #11111109}.trip-art{height:155px;background:radial-gradient(circle at 80% 15%,#fff0a3 0 13%,transparent 14%),linear-gradient(135deg,#ffdd5e,#c99104);display:flex;align-items:end;padding:18px 25px;font-weight:800;font-size:24px}.trip-body{padding:23px}.trip-body h2{margin:15px 0 8px}.trip-body p{margin-bottom:9px}.trip-body .btn{margin-top:11px}.badge{border-radius:30px;padding:5px 9px;font-size:11px;font-weight:700;background:#f4f4f4}.badge.ready{background:#e4f9e8;color:#145822}.badge.failed{background:#fff0ed;color:#a13426}.badge.processing,.badge.queued{background:#fff1bf}.empty{padding:50px;border:1px dashed #d8d8d8;border-radius:18px}.form-shell{padding:38px;max-width:1000px;margin:auto}.form-shell h1{margin:15px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:30px 0}.review{text-align:center}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;text-align:left;margin:36px 0}.review-card{padding:19px;min-height:95px}.review-card span{display:block;color:var(--muted);font-size:12px}.review-card strong{display:block;font-size:16px;overflow-wrap:anywhere}.notice{padding:15px 20px;background:#f2fbf3;border-radius:12px;margin:10px 0 20px}.notice.error{background:#fff0eb;color:#8d250c}.notice.warm{background:var(--warm);text-align:center}.review-actions{display:flex;justify-content:center;gap:16px;margin:25px 0}.trip-banner{background:linear-gradient(120deg,#ffe064,#fff6d9);border-radius:22px;padding:30px 36px;position:relative;margin-bottom:25px}.trip-banner h1{font-size:47px;margin:12px 0 3px}.trip-banner p{margin:0}.trip-banner .print-btn{position:absolute;right:30px;bottom:30px;background:#111;color:#fff;border-color:#111}.trip-layout{display:grid;grid-template-columns:200px 1fr;gap:40px}.day-nav{border-right:1px solid var(--line)}.day-nav h2{font-size:17px}.day-nav a{display:block;margin:5px 15px 6px 0;padding:10px 13px;border-radius:10px;font-weight:700}.day-nav a small{display:block;font-weight:400;color:var(--muted)}.day-nav a.active{background:var(--yellow)}.day-content{max-width:850px}.activity{display:flex;gap:18px;margin:25px 0 35px}.time-dot{background:var(--yellow);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;flex:none}.activity-body{border-bottom:1px solid var(--line);padding-bottom:25px;width:100%}.activity h3{margin:5px 0}.local-name{font-size:19px;font-weight:700}.details{padding:15px 18px;background:#f8f8f8;border-radius:12px;font-size:13px}.details p{margin:6px 0}.details b{display:block}.caution{color:#684910}.sources{border-top:1px solid var(--line);padding-top:18px}.sources a{display:block;text-decoration:underline;font-size:13px;overflow-wrap:anywhere}.legal{max-width:800px}.legal h1{font-size:45px}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;align-items:center;padding:25px max(5vw,24px);color:var(--muted);font-size:12px}footer .brand{font-size:18px}@media(max-width:850px){.topbar{height:auto;min-height:70px;padding:14px 20px;align-items:start;flex-direction:column}.topbar nav{gap:13px;flex-wrap:wrap;font-size:12px}.topbar .hello{display:none}.container{padding:24px 18px 60px}.hero,.auth-layout{grid-template-columns:1fr;gap:20px;padding-top:20px}.hero-visual{min-height:300px;padding:25px}.features,.trip-grid,.review-grid{grid-template-columns:1fr}.page-head{align-items:stretch;flex-direction:column}.quota{min-width:0}.form-grid{grid-template-columns:1fr}.form-shell{padding:22px}.trip-banner{padding:22px}.trip-banner h1{font-size:36px}.trip-banner .print-btn{position:static;margin-top:20px}.trip-layout{grid-template-columns:1fr;gap:20px}.day-nav{display:flex;gap:5px;overflow:auto;border-right:none;border-bottom:1px solid var(--line)}.day-nav h2{display:none}.day-nav a{flex:none;min-width:95px;margin:0 0 10px}.review-actions{flex-wrap:wrap}footer{flex-wrap:wrap}}@media print{.topbar,footer,.day-nav,.print-btn,.sources a{display:none!important}.container{padding:0;max-width:none}.trip-banner{background:#fff!important;border-bottom:2px solid #111;border-radius:0;padding:10px}.trip-layout{display:block}.day-content{max-width:none}.activity{break-inside:avoid}.details{background:#fff;border:1px solid #ddd}.sources{font-size:10px}}

.print-day{margin-bottom:36px}.print-day h2{margin-top:28px}@media print{.print-day{break-before:page}.print-day:first-of-type{break-before:auto}.trip-banner a{display:none}}

.phone-fields{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;margin:14px 0}.phone-fields .field{margin:0!important}.phone-fields select{max-width:100%;text-overflow:ellipsis}@media(max-width:530px){.phone-fields{grid-template-columns:1fr}}

/* Compact itinerary view for use while travelling. */
.itinerary .trip-banner{padding:24px 28px;margin-bottom:18px}
.itinerary .trip-banner h1{font-size:clamp(28px,3.5vw,42px);max-width:65%;margin:8px 0 4px}
.itinerary .print-day h2{margin:14px 0 4px;font-size:clamp(24px,3vw,34px)}
.itinerary .day-count{color:var(--muted);font-size:13px;font-weight:600;margin:0 0 22px}
.itinerary .activity{gap:14px;margin:0 0 22px}
.itinerary .activity-body{padding:0 0 18px}
.itinerary .activity-body>p{margin:8px 0 12px;line-height:1.6}
.itinerary .activity h3{margin:2px 0 3px}
.itinerary .details{padding:12px 16px;line-height:1.5}
.itinerary .details p{margin:9px 0;overflow-wrap:anywhere}
.itinerary .details b{color:#262626;font-weight:700}
.itinerary .food-suggestions{background:var(--warm);border-radius:16px;padding:20px;margin:28px 0 18px}
.itinerary .food-suggestions h3{margin-bottom:5px}
.itinerary .food-suggestions .activity:last-child{margin-bottom:0}
.itinerary .food-suggestions .activity:last-child .activity-body{border-bottom:0;padding-bottom:0}
@media(max-width:850px){.itinerary .trip-banner{padding:18px 20px}.itinerary .trip-banner h1{max-width:none;font-size:29px}.itinerary .trip-banner .print-btn{min-height:44px;padding:9px 18px;margin-top:12px}.itinerary .day-nav{position:sticky;top:0;z-index:3;background:#fff;padding-top:6px}.itinerary .day-nav a{min-width:95px;padding:7px 10px}.itinerary .food-suggestions{padding:15px}.itinerary .day-content{min-width:0}}
@media print{.itinerary .food-suggestions{background:#fff;border:1px solid #ddd}.itinerary .day-nav{display:none}}

/* My Trips header refresh: black text wordmark, yellow and white accents. */
.topbar{background:#fff;box-shadow:0 2px 15px #11111108}
.topbar .brand{font-size:22px;letter-spacing:-.065em;line-height:1.2}
.topbar nav a,.topbar nav .linkbtn{transition:background .15s ease,color .15s ease}
.topbar nav a:hover,.topbar nav .linkbtn:hover{color:#806000;text-decoration:none}
.page-head{background:linear-gradient(132deg,#fff8d8 0%,#fffdf5 55%,#fff 100%);border:1px solid #f1e2a2;border-radius:24px;padding:32px 36px;margin:0 0 28px;align-items:center}
.page-head h1{font-size:clamp(30px,4vw,48px);line-height:1.14;margin:5px 0 10px;max-width:680px}
.page-head .eyebrow{color:#8b6500}
.page-head>div:first-child>.muted{margin:0}
.page-head .quota{background:#fff;border:1px solid #eadfae;border-radius:18px;padding:17px 18px;box-shadow:0 9px 24px #c5a34c18}
.page-head .quota .btn{background:#111;border-color:#111;color:#fff}
.page-head .quota .btn:hover{background:#333;border-color:#333}
.page-head .quota p{margin:10px 0 8px}
.page-head .quota .meter{margin-top:12px}
@media(max-width:850px){
 .topbar{gap:9px;padding:15px 18px 12px;border-bottom:1px solid #ebebeb}
 .topbar .brand{font-size:clamp(19px,5vw,24px);letter-spacing:-.07em;white-space:normal;overflow-wrap:anywhere}
 .topbar nav{width:100%;gap:7px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
 .topbar nav::-webkit-scrollbar{display:none}
 .topbar nav a,.topbar nav .linkbtn{font-size:12px;white-space:nowrap;font-weight:700;padding:7px 10px;background:#f7f7f7;border-radius:10px;display:inline-flex;min-height:34px;align-items:center}
 .topbar nav a[href="/?page=trips"]{background:#fff0b0}
 .topbar nav form{flex:none}
 .container{padding-top:18px}
 .page-head{padding:22px 19px;gap:18px;margin:0 0 24px;border-radius:19px}
 .page-head h1{font-size:clamp(30px,8vw,42px);margin:5px 0 9px;letter-spacing:-.055em}
 .page-head .eyebrow{font-size:10px;letter-spacing:.14em}
 .page-head>div:first-child>.muted{font-size:14px;line-height:1.45}
 .page-head .quota{padding:14px 15px;width:100%}
 .page-head .quota .btn{min-height:47px;padding:10px 16px}
 .page-head .quota p{margin:9px 0 6px}
}
@media print{.page-head{border:0;background:#fff;box-shadow:none}}

/* Consumer mobile navigation: one clear destination per tab. */
.mobile-nav,.profile-logout{display:none}
@media(max-width:850px){
 .topbar.is-authenticated{height:68px;min-height:68px;padding:13px 20px;flex-direction:row;align-items:center;box-shadow:0 3px 16px #1111110a}
 .topbar.is-authenticated .brand{font-size:clamp(20px,5.5vw,25px);letter-spacing:-.075em;line-height:1;white-space:nowrap}
 .topbar.is-authenticated nav{display:none}
 .mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border-top:1px solid #e9e9e9;padding:8px 12px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -7px 25px #11111110}
 .mobile-nav a{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#4f5054;font-size:11px;font-weight:700;border-radius:12px;padding:3px 4px;text-align:center;min-height:48px}
 .mobile-nav a.active{color:#111;background:#fff2bb}
 .mobile-nav a:hover{text-decoration:none;background:#fff2bb}
 .mobile-nav .nav-icon{font-size:22px;line-height:1;font-family:Arial,sans-serif;font-weight:700}
 .container{padding-top:18px;padding-bottom:110px}
 .page-head{background:linear-gradient(140deg,#fff2b0,#fffaf0 64%,#fff);border-color:#f0e0ab;padding:24px 20px 18px;gap:20px}
 .page-head h1{font-size:35px;line-height:1.1;margin:5px 0 10px}
 .page-head .quota{border-color:#eee6ce;box-shadow:0 5px 18px #1111110a}
 .profile-logout{display:block;margin-top:22px}
 .profile-logout .btn{width:100%}
 footer{padding-bottom:92px}
}
@media print{.mobile-nav,.profile-logout{display:none!important}}
/* Account form breathing room on narrow screens. */
.form-shell .panel form .field{margin:0 0 16px}
.form-shell .panel form .btn{margin-top:6px;width:100%}
.form-shell .panel form .field input{display:block}

@media print{.itinerary .print-day+.print-day{break-before:page;page-break-before:always}.itinerary .print-day h2{break-after:avoid;page-break-after:avoid}.itinerary .activity{break-inside:avoid;page-break-inside:avoid}}
