/* Lisbon field notes: warm paper, Atlantic ink, orange actions and a little sunshine.
   This layer owns customer presentation only; booking and access rules stay in their existing modules. */
:root{--experience-ink:#193f45;--experience-orange:#c54820;--experience-paper:#fffaf2;--experience-line:#e5dfd3;--experience-sun:#f6dfa0}
.customer-planner,.auth-page,body[data-account-role=customer]{--bg:#faf8f2;--cream:#faf8f2;--border:var(--experience-line);--ink:#243b3a;--navy:#243b3a;--muted:#646b62;background:var(--bg)}
:where(button,a,input,select,textarea,summary):focus-visible{outline:3px solid #28727c;outline-offset:3px}
:where(button,a){-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.customer-planner .orange-button,body[data-account-role=customer] .primary,.auth-page .auth-submit{background:var(--experience-orange);border-color:var(--experience-orange);color:#fff;box-shadow:none;transition:background .18s,transform .18s}
@media(hover:hover){.customer-planner .orange-button:hover,body[data-account-role=customer] .primary:hover,.auth-page .auth-submit:hover{background:#a93a18;transform:translateY(-1px)}}
.customer-planner .brandbar{background:var(--experience-paper);border-bottom:1px solid var(--experience-line)}
.customer-planner .feature-nav{border:0;padding-block:6px!important}
.customer-planner .feature-nav button[aria-current=page]{background:#e8eee6;color:#284c3d}
.customer-planner .planner-intro h1{font-size:clamp(30px,3vw,42px)!important;letter-spacing:-1.4px;color:var(--experience-ink)}
.customer-planner .planner-intro h1 em{color:var(--experience-orange)}
.customer-planner .planner-promise{background:#f5e8c5;border:1px dashed #c4a86a;border-radius:10px;padding:10px 14px;transform:rotate(2deg);color:#6f521d}
.customer-planner #stops-screen .map-column{border-color:var(--experience-line);border-radius:24px;overflow:hidden}
.customer-planner #stops-screen .hero,.customer-planner #stops-screen .map-credit{background:var(--experience-paper)}
.customer-planner #stops-screen .areas button{min-height:40px;background:transparent;border-color:transparent;color:#5c665d;font-size:12px}
.customer-planner #stops-screen .areas button[aria-pressed=true]{background:var(--experience-ink);border-color:var(--experience-ink);color:white}
.customer-planner #stops-screen .areas button[data-area][aria-pressed=true]{background:var(--district-tint);color:var(--district-color);border-color:var(--district-color)}
.customer-planner #stops-screen .search-row input{background:white;border:1px solid #d5d9ce;border-radius:14px;padding-inline:14px}
.customer-planner #stops-screen .search-row button{background:var(--experience-ink);color:white;border:0;border-radius:13px}
.map-coach{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);max-width:calc(100% - 120px);pointer-events:none;z-index:4;background:#fffcf2ed;border:1px solid #dfdacb;border-radius:20px;padding:8px 12px;font-size:11px;white-space:nowrap;color:#355052;box-shadow:0 3px 12px #1d393516}
.map-coach span{color:#aa5c1c;margin-right:5px}
.customer-planner #stops-screen:has(#place-card:not([hidden]),#custom-editor:not([hidden])) .map-coach{display:none}
.customer-planner .journey-summary{border-top:0!important;background:var(--experience-paper)!important;box-shadow:0 8px 24px #283a2a06}
.customer-planner .journey-summary h2{font-size:29px!important;letter-spacing:-1px;color:var(--experience-ink)}
.customer-planner .journey-summary .eyebrow{color:#53705a}
.customer-planner .journey-price{padding-top:12px;border-top:1px dashed #dcd5c4}
.customer-planner .journey-summary>.orange-button{border-radius:16px;min-height:50px}
.customer-planner .tour-price-catalog .section-head h2{color:var(--experience-ink)}
.customer-planner .tour-price-links .tour-option{background:var(--experience-paper);border:1px solid var(--experience-line);border-radius:22px;padding:8px;box-shadow:0 6px 0 #e9e6db;min-width:0}
.customer-planner .tour-price-links .tour-option>a{display:flex!important;flex-direction:column;align-items:stretch;gap:0;border:0!important;background:transparent!important;padding:0!important;transform:none}
.customer-planner .tour-price-links .tour-option>a>img{width:100%;height:180px;object-fit:cover;border-radius:15px}
.customer-planner .tour-price-links .tour-option>a>span{padding:16px 12px 8px}
.customer-planner .tour-price-links b{color:var(--experience-ink);font-size:22px!important}
.customer-planner .tour-price-links strong{font-size:14px!important;color:#415e4c}
.customer-planner .tour-price-links i{background:var(--experience-sun);color:#594511;border-radius:50%;padding:4px 10px;float:none}
.customer-planner .tour-option details{border:0;border-top:1px dashed #dcd5c4;padding:8px 6px;margin:8px 4px;background:transparent}
.customer-planner .tour-option summary{min-height:44px;align-content:center;font-size:12px;color:#5d685b}
.customer-planner .tour-option>button{border:0;background:#eaf0e7;color:#2d5144;border-radius:12px;font-size:13px;min-height:46px}
#planner-stop-count{display:inline-grid;place-items:center;background:#e7ece1;color:#385646;border-radius:50%;font-size:10px;min-width:18px;height:18px;padding:0 3px}
/* Request form: one page with small, named sections and a plain-text fallback. */
.request-intro{display:block!important;max-width:740px;margin:4px auto 26px;padding:0;border:0;background:transparent}
.request-sticker{display:inline-flex;background:var(--experience-sun);padding:7px 11px;border-radius:7px;font-size:10px;letter-spacing:1px;font-weight:700;color:#624c23;transform:rotate(-2deg)}
.request-intro h2{font-size:clamp(32px,4vw,48px);line-height:1.05;letter-spacing:-1.6px;color:var(--experience-ink);margin:18px 0 12px}
.request-intro h2 em{font-style:normal;color:var(--experience-orange)}
.request-intro>p{margin:12px 0;font-size:15px;line-height:1.6;color:#58675d;max-width:520px}
.request-how{display:flex;gap:8px 20px;flex-wrap:wrap;padding:0;margin:20px 0 0;list-style:none;font-size:12px;color:#4f6256}
.request-how li{display:flex;align-items:center;gap:8px}.request-how li:not(:last-child)::after{content:'→';margin-left:8px;color:#9b9c88}
#request-form.request-form{display:block;max-width:740px;margin:0 auto;padding:8px 28px 24px;border:1px solid var(--experience-line);border-radius:24px;background:#fffdf9;box-shadow:0 5px 20px #203b3104}
.request-section{min-width:0;border:0;border-bottom:1px solid var(--experience-line);padding:26px 0;margin:0}
.request-section legend{padding:24px 0 0;font-size:20px;font-weight:650;letter-spacing:-.4px;color:var(--experience-ink);width:100%}
.request-section legend>span{display:inline-grid;place-items:center;width:30px;height:30px;background:#e9eee1;border-radius:10px;font-size:12px;margin-right:10px;color:#486344}
.request-section .form-grid{gap:18px;margin:6px 0 0}
.request-section input,.request-section select,.request-section textarea{background:#fff;border:1px solid #d6dacd;border-radius:12px;padding:12px;min-height:48px;box-sizing:border-box;max-width:100%;color:#283d36}
.request-section label{font-size:13px;color:#46574b;font-weight:550}
.request-section textarea{resize:vertical}
.field-help{font-size:12px;line-height:1.6;color:#677265;align-self:center;margin:0}
.optional-label{font-size:11px;color:#7a8173;font-weight:400;margin-left:5px}
.request-contact{font-size:14px;color:#30473e;margin:0 0 20px}.request-contact>span{display:block;color:#6b7569;font-size:12px;margin-top:3px;overflow-wrap:anywhere}
.request-stops h3{font-size:14px;margin:0 0 5px;color:#354f41}.request-stops .field-help{margin-bottom:14px}
.request-stop-list{display:grid;gap:10px}.request-stop-row{display:grid;grid-template-columns:26px minmax(0,1fr) 100px 44px;gap:8px;align-items:center;min-width:0}
.request-stop-row>input,.request-stop-row>select{width:100%;min-width:0;margin:0}
.request-stop-number{font-size:11px;color:#5c765d;text-align:center}.remove-request-stop{padding:0;width:44px;height:48px;background:transparent;border:0;color:#7f4f3a;font-size:23px;box-shadow:none}
.add-request-stop{margin-top:12px;min-height:44px;padding:10px 14px;background:#eaf0e5;border:0;color:#32583e;border-radius:12px;font-size:13px}
#request-form .dining-picker{width:100%;box-sizing:border-box;padding:14px 16px;margin:22px 0 0;border:1px dashed #d7bb7d;border-radius:16px;background:#fff8e7}
#request-form .dining-picker>summary{min-height:44px;align-content:center;color:#66502b;font-size:14px}
#request-form .dining-picker>summary::marker{color:#b57023}
.request-submit{display:flex;align-items:center;gap:24px;padding-top:24px}.request-submit p{font-size:12px;line-height:1.6;color:#677265;margin:0;flex:1}.request-submit p strong{display:block;color:#3f5946}
.request-submit button{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:14px 20px;font-size:15px;border-radius:14px;flex-shrink:0}.request-submit button span{font-size:20px}
body[data-account-role=customer]:has(#request-form) .page-heading{display:none}
body[data-account-role=customer] #status{position:static;box-shadow:none;font-size:14px}
.request-receipt{background:#eef3e8;border:1px solid #cddac1;border-radius:20px;padding:22px!important;color:#35503d;margin:20px 0}
.request-receipt>strong{display:block;font-size:21px;line-height:1.2;margin:12px 0}
.receipt-check{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#375a46;color:white;font-size:20px}
.receipt-steps{display:flex;gap:10px;padding:0;margin:18px 0;list-style:none;font-size:11px;line-height:1.3;color:#64735b;counter-reset:receipt}
.receipt-steps li{flex:1;border-top:3px solid #d5decc;padding-top:8px}.receipt-steps li[aria-current]{border-color:#436b4d;color:#2f583d;font-weight:700}
body[data-account-role=customer] .customer-focus{background:#f8ebd1!important;box-shadow:none;border-radius:24px}.customer-focus h2{color:var(--experience-ink)}
.mobile-shortcuts .shortcut-icon{display:none}
body[data-account-role=customer] .mobile-shortcuts .shortcut-icon{display:block;font-size:22px;font-weight:400;line-height:1;margin:0 0 5px}
.auth-page .auth-card{box-shadow:0 12px 40px #27473108!important;border-top:1px solid #e4d8c8!important;border-radius:24px!important}
.auth-page .auth-tabs a[aria-current=page]{background:var(--experience-ink)!important}
.auth-page .auth-other-access{border-top:1px dashed var(--experience-line)}
.auth-page .auth-story>img{transform:rotate(-2deg);border-radius:20px!important;box-shadow:none}
@media(max-width:760px){
 .customer-planner .mobile-planner-tabs{background:#eeeede;border:0;border-radius:15px;margin:0 10px 8px;padding:4px;gap:3px}
 .customer-planner .mobile-planner-tabs button{min-height:42px;border-radius:11px;font-size:12px;gap:5px}
 .customer-planner .mobile-planner-tabs button[aria-pressed=true]{background:var(--experience-paper);color:var(--experience-ink);box-shadow:0 2px 5px #354d3010}
 .customer-planner .mobile-planner-tabs button::after{display:none}
 .customer-planner #stops-screen .areas button{min-height:40px;padding:4px 6px;font-size:11px}
 .customer-planner #stops-screen .hero{height:46px;padding:3px 4px}
 .customer-planner #stops-screen .place-search{top:50px}
 .customer-planner #stops-screen .search-row input,.customer-planner #stops-screen .search-row button{min-height:44px}
 .customer-planner #stops-screen .search-row button{width:44px}
 .customer-planner #stops-screen .map-viewport{top:102px}
 .customer-planner #stops-screen .map-controls,.customer-planner #stops-screen #enter-map-fullscreen{top:110px}
 .customer-planner #stops-screen .map-controls button,.customer-planner #stops-screen #enter-map-fullscreen,.customer-planner #stops-screen .route-trigger{width:44px;height:44px;min-height:44px;box-shadow:0 2px 8px #27483016;border-radius:13px}
 .customer-planner #stops-screen .map-controls button{font-size:22px}
 .customer-planner .map-coach{max-width:calc(100% - 112px);white-space:normal;text-align:center;font-size:10px;padding:6px 9px;bottom:34px}
 .customer-planner #booking-bar{background:var(--experience-paper)!important;border-top:1px solid var(--experience-line);box-shadow:0 -4px 20px #30412b06;padding-block:10px calc(10px + env(safe-area-inset-bottom))!important}
 .customer-planner #booking-bar .orange-button{font-size:14px;min-height:48px;padding:12px 20px;border-radius:16px;gap:20px}
 .customer-planner #booking-bar .quote strong{font-size:27px;letter-spacing:-1px;color:var(--experience-ink)}
 .customer-planner #booking-bar .quote>div>span{font-size:10px}
 .customer-planner #stops-screen #place-card:not([hidden]){border-radius:20px;background:var(--experience-paper);max-height:36dvh}
 .customer-planner #stops-screen .place-body h2{color:var(--experience-ink);font-size:22px;line-height:1.1}
 .customer-planner .tour-price-links .tour-option>a{flex-direction:row;align-items:center;gap:12px}
 .customer-planner .tour-price-links .tour-option>a>img{width:100px;height:132px;flex:none}
 .customer-planner .tour-price-links .tour-option>a>span{padding:6px 6px 6px 0}
 .customer-planner .tour-price-links b{font-size:21px!important}
 .customer-planner .tour-price-links small{line-height:1.4;font-size:12px!important}
 .customer-planner .tour-price-catalog>.section-head>span{display:block;margin-top:8px}
 .customer-planner #stops-screen[data-mobile-view=stops] .itinerary{border:0;background:transparent}
 .customer-planner #stops-screen[data-mobile-view=stops] #selected-stops>li{border:1px solid var(--experience-line);border-radius:18px;background:var(--experience-paper);margin-bottom:10px}
 html:has(body[data-account-role=customer]){scroll-padding-bottom:100px}
 body[data-account-role=customer] :is(input,select,textarea,button){scroll-margin-block:100px}
 .request-intro{margin:4px 0 22px}.request-intro h2{font-size:36px;margin-top:16px}.request-intro>p{font-size:14px;line-height:1.5}
 .request-how{font-size:10px;gap:7px}.request-how li{gap:4px}.request-how li:not(:last-child)::after{margin-left:0}
 #request-form.request-form{padding:0 16px 20px;border-radius:22px}
 .request-section{padding:20px 0}.request-section legend{font-size:18px;padding-top:20px}.request-section .form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 .request-section input,.request-section select,.request-section textarea{font-size:16px!important;min-height:50px}
 .request-stop-row{grid-template-columns:22px minmax(0,1fr) 44px;gap:8px;background:#f5f4ec;border-radius:14px;padding:10px}
 .request-stop-row>input{grid-column:2;grid-row:1}.request-stop-row>select{grid-column:2;grid-row:2;max-width:150px;font-size:14px!important;min-height:44px}
 .request-stop-row>.remove-request-stop{grid-column:3;grid-row:1}.request-stop-number{align-self:center}
 .request-submit{display:flex;flex-direction:column;align-items:stretch;gap:16px}.request-submit button{width:100%;justify-content:space-between;min-height:54px}
 #request-form .dining-picker{padding:8px 12px}#request-form .dining-picker>summary{font-size:13px}
 body[data-account-role=customer] .mobile-shortcuts{background:#fffaf2f5;backdrop-filter:blur(12px);border-top:1px solid var(--experience-line);border-radius:20px 20px 0 0;padding-top:6px}
 body[data-account-role=customer] .mobile-shortcuts button{border:0;border-radius:12px;font-size:10px;min-height:54px;padding:6px 4px;background:transparent;box-shadow:none;color:#626f61}
 body[data-account-role=customer] .mobile-shortcuts button[aria-current=page]{background:#e9eee1;color:#2f5540}
 body[data-account-role=customer].has-mobile-shortcuts{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 .auth-page .auth-card{padding:22px!important}.auth-page .auth-layout{padding:18px 14px 30px!important}
}
@media(max-width:359px){.customer-planner .mobile-planner-tabs button{font-size:11px;gap:3px}.planner-tab-icon{width:14px}.customer-planner #booking-bar .orange-button{padding-inline:15px}.request-intro h2{font-size:32px}#request-form.request-form{padding-inline:12px}.request-stop-row{padding:8px;gap:5px}.map-coach span{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
