@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/media/dm-sans-latin-v1) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/media/manrope-latin-v1) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--teal:#07574e;--ink:#123e38;--lime:#d5ed83;--cream:#f6f5ed;--muted:#55675f}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'DM Sans',sans-serif;background:#fdfdfa}.demo{background:var(--teal);color:#e6f1d8;text-align:center;font-size:14px;letter-spacing:1.1px;padding:9px}header{height:96px;display:flex;align-items:center;gap:30px;max-width:1320px;margin:auto;padding:20px 40px}.logo{font-family:Manrope,sans-serif;font-size:31px;font-weight:800;letter-spacing:-1.5px}.logo span{font-size:14px;color:#91b940;vertical-align:top}a{color:inherit;text-decoration:none}nav{display:flex;gap:30px;margin-left:45px;font-size:14px}.login{margin-left:auto;font-size:14px}.btn,button{border:0;background:var(--teal);color:white;padding:17px 25px;border-radius:10px;font:600 16px 'DM Sans',sans-serif;cursor:pointer;display:inline-block}.btn:hover,button:hover{background:#123e38}.small{padding:13px 20px}.light{background:var(--lime);color:var(--ink)}.outline{background:transparent;color:var(--teal);border:1px solid #687d75}.hero{max-width:1360px;margin:0 auto;min-height:540px;display:grid;grid-template-columns:1fr 1fr;background:var(--cream);border-radius:24px;overflow:hidden}.hero-copy{padding:65px 20px 60px 65px;z-index:1}.eyebrow{font-size:14px;letter-spacing:1.7px;font-weight:700;text-transform:uppercase}.pill{display:inline-block;background:#e7ecd9;border-radius:25px;padding:9px 14px;font-size:14px;margin-bottom:23px}h1,h2,h3{font-family:Manrope,sans-serif}h1{font-size:clamp(38px,4.7vw,67px);line-height:1.07;letter-spacing:-3px;margin:0 0 25px}h2{font-size:36px;letter-spacing:-1.4px;line-height:1.2}h3{font-size:22px;letter-spacing:-.5px}p{line-height:1.7;color:var(--muted)}.hero-copy p{font-size:17px;max-width:420px}.hero-art{background-image:url('/media/benny-hero-v2-1200');background-size:auto 190%;background-position:100% 0%;min-height:480px}.search{display:flex;gap:8px;background:white;padding:7px;border-radius:12px;box-shadow:0 8px 35px #163d3710;margin-top:30px;max-width:450px}.search input{width:45%;border:0}.search button{flex:1;white-space:nowrap}.micro{font-size:14px!important}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;max-width:1160px;margin:40px auto 70px;padding:0 30px}.step{display:flex;gap:16px}.num{background:var(--lime);min-width:40px;height:40px;display:grid;place-items:center;border-radius:50%;font-weight:700}.step b{font-size:15px}.step p{font-size:14px;margin:5px 0}.section{max-width:1200px;margin:65px auto;padding:0 35px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}.section-head h2{margin:8px 0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.two{grid-template-columns:repeat(2,1fr)}.card{background:white;border:1px solid #e1e7de;border-radius:18px;padding:30px}.card.featured{background:var(--teal);color:white;border:0}.featured p,.featured li{color:#d6e4dc}.card .price{font-size:42px;letter-spacing:-2px;font-weight:700;margin:25px 0 0}.card .price span{font-size:15px;letter-spacing:0}.card ul{padding-left:18px;line-height:2.2;font-size:14px;color:var(--muted);margin-bottom:28px}.card .btn{width:100%;text-align:center}.tag{font-size:14px;letter-spacing:1px;background:var(--lime);color:var(--ink);padding:7px 10px;border-radius:20px}.banner{background:var(--lime);border-radius:20px;padding:40px 45px;display:flex;align-items:center;justify-content:space-between;gap:30px}.banner h2{margin:0 0 10px}.banner p{margin:0;color:var(--ink)}.business{background:#e9efea}.business .label{font-size:46px}.page{max-width:1160px;margin:40px auto 80px;padding:0 35px}.page-title{margin-bottom:35px}.page-title h1{font-size:44px;letter-spacing:-2px;margin:10px 0}.split{display:grid;grid-template-columns:1.5fr 1fr;gap:25px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:16px;font-weight:600;margin-bottom:7px}input,select,textarea{padding:14px;border:1px solid #687d75;border-radius:8px;width:100%;background:white;color:var(--ink);font:inherit}textarea{min-height:100px}input:focus,select:focus,textarea:focus{outline:2px solid var(--ink)}.field{margin-bottom:20px}.full{grid-column:1/-1}.note{background:#f2f4e9;padding:15px;border-radius:9px;font-size:14px;line-height:1.6}.summary{background:var(--cream)}.row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 0;border-bottom:1px solid #e1e7de}.row:last-child{border:0}.row p{margin:4px 0;font-size:14px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:25px 0}.tabs a{padding:10px 17px;border-radius:8px;background:#edf1e9;font-size:14px}.tabs a.active{background:var(--teal);color:white}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0}.stat{padding:22px;border:1px solid #dde5da;border-radius:14px;background:white}.stat strong{font-size:30px;display:block;margin-top:10px}.stat span{font-size:14px;color:var(--muted)}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:14px}th{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:15px}td{padding:17px 15px;border-top:1px solid #e5eae1}td select{padding:8px;min-width:110px}.badge{background:#e7f1d7;border-radius:20px;padding:5px 9px;font-size:14px;white-space:nowrap}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{min-height:82px;padding:8px;background:#f5f6f0;border-radius:6px;font-size:14px}.day b{display:block}.day em{display:block;font-size:14px;font-style:normal;margin-top:5px;padding:5px;background:var(--lime);border-radius:4px}.weekday{font-size:14px;text-align:center;padding:10px}.hidden{display:none}.brand{width:100%;border-radius:16px}footer{max-width:1300px;margin:80px auto 0;border-top:1px solid #dde5da;padding:40px;display:flex;gap:50px;flex-wrap:wrap;align-items:start;font-size:14px}footer p{margin:0}footer div{margin-left:auto;line-height:2}footer small{flex-basis:100%;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--teal);color:white;padding:16px 25px;border-radius:10px;display:none;z-index:10}details{border-bottom:1px solid #dde5da;padding:20px 0}summary{cursor:pointer;font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions button{padding:9px 12px;font-size:14px}@media(max-width:800px){header{padding:18px;gap:12px;height:85px}nav{display:none}.logo{font-size:25px}.login{font-size:14px}.hero{margin:0 12px;grid-template-columns:1fr}.hero-copy{padding:35px 25px}.hero-art{min-height:330px;background-size:auto 190%}h1{letter-spacing:-2px}.steps{grid-template-columns:1fr;gap:18px;margin:30px auto}.grid,.split,.formgrid{grid-template-columns:1fr}.section,.page{padding:0 20px;margin:40px auto}.section-head,.banner{display:block}.banner{padding:30px}.banner .btn{margin-top:20px}.stats{grid-template-columns:1fr 1fr}.calendar{gap:2px}.day{padding:4px;min-height:65px}.day em{font-size:14px;padding:2px}.card{padding:23px}h2{font-size:28px}footer{padding:25px;gap:25px}footer div{margin:0}.small{padding:12px}.search button{font-size:14px;padding:14px}.section-head p{font-size:14px}}

.hero-art{background-size:auto 235%;background-position:100% 18%}

.pricing-card{position:relative;overflow:hidden;display:flex;flex-direction:column}.pricing-card>.tag,.pricing-card>.eyebrow{align-self:flex-start;min-height:28px}.package-art{width:100%;max-width:290px;aspect-ratio:1.02;margin:15px auto 5px;background-image:url("/media/benny-packages-v2");background-size:300% 100%;background-repeat:no-repeat;position:relative;filter:drop-shadow(0 10px 8px #123e3810)}.package-art-0{background-position:0% center}.package-art-1{background-position:50% center}.package-art-2{background-position:100% center}.pricing-card h3{margin:14px 0 0}.pricing-card .price{margin-top:20px}.pricing-card ul{flex:1}.pricing-card.featured .package-art{filter:drop-shadow(0 0 24px #d5ed8330)}@media(max-width:800px){.package-art{max-width:220px;margin-top:12px}}
.map-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.map-counts{display:flex;flex-wrap:wrap;gap:20px;margin:22px 0;font-size:14px}.map-counts span{color:var(--muted)}.map-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(240px,1fr);gap:20px}#client-map{height:510px;border-radius:14px;background:#edf2e7;z-index:0}.map-list{max-height:570px;overflow:auto;padding-right:5px}.map-item{padding:18px;border:1px solid #dfe7dc;border-radius:12px;margin-bottom:12px}.map-item h4{margin:12px 0 5px}.map-item p{font-size:14px;margin:0 0 12px}.map-item details{font-size:14px}.map-item label{margin-top:10px}.booking-marker span{display:grid;place-items:center;width:32px;height:32px;border:3px solid white;color:white;border-radius:50%;font:bold 14px sans-serif;box-shadow:0 2px 8px #0004}.leaflet-popup-content{font:16px/1.7 'DM Sans',sans-serif;color:var(--ink)}@media(max-width:800px){.map-filters{grid-template-columns:1fr 1fr}.map-layout{grid-template-columns:1fr}#client-map{height:360px}.map-list{max-height:none}}

#client-map{background-color:#eaf0e4;background-image:linear-gradient(#c9d5c650 1px,transparent 1px),linear-gradient(90deg,#c9d5c650 1px,transparent 1px);background-size:36px 36px}.city-label{font:700 14px sans-serif;color:#69806b;letter-spacing:2px;white-space:nowrap}#map-error{font-size:14px;color:#6b5c27;background:#faf2d8;padding:12px;border-radius:8px}

.auth-page{max-width:640px;margin:auto}.auth-actions{margin-top:24px;flex-wrap:wrap}button:disabled{opacity:.55;cursor:wait}

/* Keep native choice controls separate from full-width text fields. */
input[type="checkbox"],input[type="radio"]{width:18px;height:18px;padding:0;margin:0 8px 0 0;vertical-align:middle;accent-color:var(--teal);flex:none}
.check-label{display:inline-flex;align-items:center;gap:9px;margin:0;cursor:pointer;font-size:14px;line-height:1.5}.check-label input{margin:0}
.formgrid>button{align-self:end;justify-self:start;margin-bottom:20px}
.support-inbox{max-width:780px;margin:0 auto}.support-inbox>h3{margin-top:0}
.support-ticket{border:1px solid #e1e7de;border-radius:14px;padding:24px;margin-top:18px;background:#fff}
.support-ticket-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.support-ticket-header h3{margin:0;font-size:19px;overflow-wrap:anywhere}
.support-message{background:#f6f5ed;border-radius:10px;padding:16px;margin:18px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.support-details{padding:0 0 16px;border:0;font-size:14px;color:var(--muted)}.support-details p{overflow-wrap:anywhere;margin-bottom:0}
.support-ticket textarea{min-height:130px;resize:vertical}.support-ticket .field{margin-bottom:16px}
.support-ticket-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.support-hint{margin:14px 0 0}
@media(max-width:600px){.support-ticket{padding:18px}.support-ticket-actions{align-items:flex-start;flex-direction:column}.support-ticket-actions button{width:100%}}
.conversation-inbox{margin-top:32px}.inbox-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.inbox-heading h2{margin:0;font-size:28px}.inbox-heading p{margin:6px 0;font-size:14px}.inbox-tools{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:24px 0 16px}.inbox-folders{display:flex;gap:6px}.inbox-folders button{background:#edf1e9;color:var(--ink);padding:12px 16px}.inbox-folders button.selected{background:var(--teal);color:white}.inbox-folders span{margin-left:8px;opacity:.8}.inbox-search{width:320px;margin:0}.inbox-search input{margin-top:6px}.inbox-layout{display:grid;grid-template-columns:280px minmax(0,1fr);border:1px solid #dfe7dc;border-radius:16px;overflow:hidden;background:white}.conversation-list{border-right:1px solid #dfe7dc;background:#f8f9f5;max-height:760px;overflow:auto}.conversation-item{display:block;width:100%;text-align:left;background:transparent;color:var(--ink);border-radius:0;border-bottom:1px solid #e1e7de;padding:20px;border-left:3px solid transparent}.conversation-item:hover,.conversation-item.selected{background:#eaf1e5}.conversation-item.selected{border-left-color:var(--teal)}.conversation-item strong,.conversation-item small,.conversation-item time{display:block;overflow-wrap:anywhere}.conversation-item strong{font-size:14px;margin:8px 0}.conversation-item small,.conversation-item time{font-size:14px;font-weight:400;color:var(--muted);margin-top:6px}.conversation-item-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}.unread-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);flex:none}.conversation-detail{min-width:0;padding:24px}.conversation-header{display:flex;gap:16px;justify-content:space-between;align-items:start}.conversation-header h3{margin:10px 0 14px;overflow-wrap:anywhere}.conversation-header button{flex:none}.conversation-context{font-size:14px;line-height:1.7;background:var(--cream);padding:12px;border-radius:8px;margin-top:18px}.message-history{max-height:420px;overflow:auto;padding:22px 0;display:flex;flex-direction:column;gap:14px}.message-bubble{max-width:92%;padding:16px;border-radius:12px;background:#f2f3ee;align-self:flex-start;min-width:160px}.message-bubble.from-business{background:#e7f1e6;align-self:flex-end}.message-bubble>div{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;font-size:14px}.message-bubble time{font-size:14px;color:var(--muted)}.message-bubble p{color:var(--ink);font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0}.reply-composer{border-top:1px solid #e1e7de;padding-top:20px}.reply-composer textarea{min-height:100px;resize:vertical}.reply-composer .support-ticket-actions{margin-top:12px}.inbox-empty{padding:40px 24px;color:var(--muted);font-size:14px}.inbox-compose{margin:22px 0;background:#f8f9f5}.inbox-compose label{margin-bottom:18px}.inbox-compose input,.inbox-compose select,.inbox-compose textarea{margin-top:7px}#inbox-error:not(:empty){padding:14px;background:#fff1e4;border-radius:8px;margin:12px 0;color:#783817}
@media(max-width:800px){.inbox-layout{grid-template-columns:1fr}.conversation-list{border-right:0;border-bottom:1px solid #dfe7dc;max-height:260px}.conversation-detail{padding:18px}.inbox-heading,.inbox-tools{align-items:stretch;flex-direction:column}.inbox-search{width:100%}.conversation-header{flex-direction:column}.message-bubble{max-width:100%}.inbox-heading h2{font-size:24px}.reply-composer .support-ticket-actions button{width:100%}}
/* Consistent operational-page rhythm, independent of the marketing hero. */
.page>h1{font-size:clamp(30px,3.2vw,44px);letter-spacing:-1.5px;margin:12px 0 24px;line-height:1.15}
.page .card{padding:24px;margin-bottom:18px}.page .card .card{padding:18px}
.page .card h3:first-child{margin-top:0}.page .formgrid{gap:16px;align-items:start}
.page .formgrid .field{margin-bottom:0}.page .formgrid{margin-bottom:18px}
.page input:not([type=checkbox]):not([type=radio]),.page select{min-height:46px;padding:11px 12px}
.page button,.page .btn{min-height:44px;padding:12px 18px;line-height:1.3}
.page .actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.page .split{gap:20px;align-items:start}
.page .summary{position:sticky;top:20px}.page .summary h2{font-size:32px;margin:12px 0}
button:disabled{opacity:.55;cursor:not-allowed}.address-results{display:grid;gap:2px;background:white;box-shadow:0 8px 24px #123e3818;border-radius:8px;position:relative;z-index:5}
.address-results button{text-align:left;background:white;color:var(--ink);border-bottom:1px solid #e1e7de}.address-results button:hover,.address-results button:focus{background:#eff5e5}
.launch-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.launch-strip span{background:#eef3e8;border-radius:20px;padding:8px 12px;font-size:14px}
#ops-map{border-radius:12px;background:#edf1e8;isolation:isolate}.map-note{font-size:14px}
@media(max-width:700px){.page{padding:0 18px;margin-top:26px}.page .split{grid-template-columns:1fr}.page .summary{position:static}.page .card{padding:18px}.page .formgrid{grid-template-columns:1fr}.page .full{grid-column:auto}.page .stats{grid-template-columns:1fr 1fr}.page .tabs{gap:6px}.page .tabs a{padding:10px 12px}.page .formgrid>button{margin-bottom:0}}
.address-results:empty{display:none}

.payment-options{border:0;margin:24px 0;padding:0;min-width:0}.payment-options legend{font:700 20px Manrope,sans-serif;margin-bottom:16px}.payment-option{display:flex;align-items:center;gap:12px;border:1px solid #cddad2;padding:16px;border-radius:12px;margin-bottom:10px;cursor:pointer}.payment-option:has(input:checked){border-color:var(--teal);background:#f0f6e8}.payment-option input{flex:0 0 18px;margin:0}.payment-option span{min-width:0}.payment-option b,.payment-option small{display:block}.payment-option small{font-weight:400;color:var(--muted);margin-top:5px;line-height:1.5}.payment-option.unavailable{opacity:.65;cursor:not-allowed}.payment-option .badge{margin-left:auto;white-space:nowrap;font-size:14px}.checkout-submit{width:100%}.checkout-details{margin:20px 0}.checkout-details>div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e1e7de;padding:12px 0;font-size:14px}.checkout-details dt{color:var(--muted)}.checkout-details dd{margin:0;text-align:right;font-weight:600}.checkout-confirmation{max-width:760px}.checkout-confirmation h2{font-size:30px}@media(max-width:500px){.payment-option{flex-wrap:wrap}.payment-option .badge{margin-left:30px}.checkout-details>div{flex-wrap:wrap}.checkout-details dd{text-align:left}}

/* Operational workspace */
.workspace{max-width:1440px}.workspace h1{font-size:38px;letter-spacing:-1.5px}.insight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.insight{border:1px solid #dde5da;border-radius:12px;padding:18px;background:white}.insight span,.insight small{display:block;font-size:14px;color:var(--muted)}.insight strong{display:block;font-size:27px;margin:8px 0}.workspace-filters{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px;align-items:end;margin:16px 0}.workspace input,.workspace select{padding:10px}.workspace input[type=checkbox]{width:18px;height:18px;accent-color:var(--teal)}.saved-views,.pagination,.bulk-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:18px 0}.bulk-actions{padding:14px;background:#eef3e8;border-radius:10px}.bulk-actions label{min-width:180px;margin:0}.workspace button,.workspace .btn{padding:11px 16px;min-height:40px}.table-scroll{overflow:auto;border:1px solid #dde5da;border-radius:12px;background:white}.booking-table{min-width:960px}.booking-table td{padding:12px 10px}.booking-table th{padding:12px 10px;background:#f3f5ef}.booking-table small{display:block;color:var(--muted);font-size:14px;margin-top:4px}.booking-table tr:hover{background:#fafbf6}.pagination label{display:flex;align-items:center;gap:10px;margin:0}.pagination select{width:80px}.drawer-backdrop{position:fixed;inset:0;background:#123e3866;z-index:1000;display:flex;justify-content:flex-end}.booking-drawer{background:#fdfdfa;width:min(520px,100%);padding:28px;overflow:auto;height:100%;box-shadow:-5px 0 30px #123e3822}.booking-drawer form{margin:20px 0}.booking-drawer label{margin:12px 0}.booking-drawer h2{font-size:27px}.route-controls{padding:20px;background:#f1f5e8;border-radius:12px;margin-bottom:20px}.workspace #ws-message:not(:empty){padding:15px;background:#fff0dc;border-radius:8px;margin:12px 0}#toast{z-index:1100}.contact-links a{display:inline-block;text-decoration:underline}.workspace .calendar{overflow:auto}.workspace .day small{display:block;margin-top:8px}@media(max-width:850px){.insight-grid{grid-template-columns:repeat(2,1fr)}.workspace-filters{grid-template-columns:1fr 1fr}.workspace .calendar{grid-template-columns:repeat(7,minmax(95px,1fr))}.workspace h1{font-size:30px}}@media(max-width:480px){.workspace-filters{grid-template-columns:1fr}.insight strong{font-size:22px}.insight{padding:13px}}

@media(min-width:1200px){.insight-grid{grid-template-columns:repeat(6,1fr)}.insight strong{font-size:24px}.insight{padding:16px 12px}}

/* Public pages: readable without JavaScript */
.service-strip{padding:10px 24px;background:var(--teal);color:#eff8de;font-size:14px;text-align:center;letter-spacing:.4px}.service-strip span{margin-left:30px}.seo-header{gap:20px}.seo-header nav{margin-left:auto;gap:20px}.seo-header .login{margin-left:8px}.seo-header .btn{white-space:nowrap}.seo-header nav a[aria-current]{text-decoration:underline;text-underline-offset:6px}.marketing .hero h1{font-size:clamp(44px,5vw,68px)}.marketing .hero-copy{padding-top:70px}.marketing .actions{margin-top:25px}.marketing .actions .btn{padding:15px 20px}.marketing .step h2{font-size:17px;margin:0}.marketing .step p{margin-top:8px}.seo-intro{max-width:1160px;padding-top:30px;margin-bottom:35px}.seo-intro h1{font-size:clamp(36px,5vw,60px);margin-top:18px;max-width:870px}.lead{max-width:740px;font-size:19px}.area-card{background:var(--cream)}.area-card h2{font-size:30px}.area-card a:not(.btn),.contact-links a:not(.btn),.article-copy a:not(.btn),.seo-faq a:not(.btn){color:var(--teal);text-decoration:underline;text-underline-offset:4px}.city-story{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:center}.city-benny{min-height:340px;border-radius:20px;background:var(--cream) url('/media/benny-hero-v2-1200') 100% 0% / auto 190%}.article-copy{max-width:800px}.article-copy p{font-size:17px}.article-copy h2{font-size:27px;margin-top:40px}.marketing .contact-links h2{font-size:25px}.marketing .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.skip-link{position:absolute;left:16px;top:-100px;background:white;padding:14px;z-index:2000}.skip-link:focus{top:12px}.marketing footer a:focus-visible{outline:2px solid var(--teal)}@media(max-width:1050px){.seo-header{height:auto;flex-wrap:wrap;padding:20px}.seo-header nav{display:flex;flex-wrap:wrap;order:4;width:100%;min-width:0;margin:0;padding:5px 0;white-space:normal}.seo-header nav a{min-height:44px;padding:8px 4px;max-width:100%;overflow-wrap:anywhere}.seo-header .login{margin-left:auto}}@media(max-width:650px){.service-strip span{display:block;margin:5px 0 0}.city-story,.marketing .grid.two{grid-template-columns:1fr}.city-benny{min-height:260px}.seo-header .btn{font-size:14px;padding:12px}.marketing .hero-copy{padding:35px 25px}.seo-intro{padding-top:10px}.marketing .section{margin:45px auto}.lead{font-size:17px}}

/* Accessible persistent errors, distinct from ordinary page copy. */
.form-error:empty{display:none}.form-error:not(:empty){display:block;margin:24px 0;padding:22px 24px;background:#fff0f0;color:#8c1520;border:2px solid #b42332;border-left-width:7px;border-radius:12px;font-size:18px;line-height:1.6;scroll-margin:24px}.form-error strong{display:block;font-size:21px;line-height:1.3}.form-error p{color:inherit;font-size:18px;margin:10px 0}.form-error a{color:inherit;text-decoration:underline;font-weight:700}.form-error:focus{outline:3px solid #b42332;outline-offset:4px}
.hero-art{background-image:url('/media/benny-hero-v2-1200');background-size:cover;background-position:center;min-height:0;aspect-ratio:1}.hero-art img,.city-benny img{display:block;width:100%;height:100%;object-fit:cover}.hero-art:has(img),.city-benny:has(img){background:none}.city-benny{aspect-ratio:1;min-height:0;overflow:hidden;background:#f6f5ed}.hero{align-items:center}.package-art{background-image:url('/media/benny-packages-v2')}.service-copy{max-width:900px}.service-copy p{font-size:17px}.marketing .hero-art{width:100%;height:auto}.search input{min-width:0}@media(max-width:800px){.hero-art{background-image:url('/media/benny-hero-v2-640');min-height:0}.form-error:not(:empty){padding:18px;font-size:17px}.form-error p{font-size:17px}.search{flex-wrap:wrap}.search input{width:100%}.search button{width:100%}}

.package-illustration{display:block;width:100%;max-width:290px;aspect-ratio:1;height:auto;object-fit:contain;margin:15px auto 5px;filter:drop-shadow(0 8px 8px #123e3810)}.benny-portrait{display:block;max-width:700px;height:auto;margin:25px auto}.benny-gallery img{width:100%;height:auto;object-fit:contain}.benny-gallery{margin-top:30px}@media(max-width:800px){.package-illustration{max-width:260px}}

/* Campaign workspace: bounded tables, mobile field mode and independent filters. */
.outreach .tabs{gap:8px}.outreach .tabs button{padding:10px 14px}.outreach-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px;background:#f0f4eb;border-radius:14px}.outreach-filters label{margin:0}.outreach-flags{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:15px}.outreach-check{display:flex;align-items:center;gap:8px!important}.outreach-check input{width:18px!important;flex:none}.outreach-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:22px 0}.outreach-form h2,.outreach-form p,.outreach-form textarea,.outreach-qr,#outreach-address-results{grid-column:1/-1}.outreach-form label:has(textarea){grid-column:1/-1}.outreach-form button{align-self:end}.outreach-form h2{margin:0}.outreach-mobile{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.outreach-report{display:flex;flex-wrap:wrap;gap:28px}.outreach-report span{font-size:14px}.outreach-report strong{display:block;font-size:24px;margin-top:8px}.outreach-stop{color:#91142a;background:#ffe3e7}.outreach-history{border-bottom:1px solid #dbe3d5;padding:15px 0}.outreach-history small{display:block;margin-top:6px}.outreach-history p{white-space:pre-wrap;overflow-wrap:anywhere}.outreach-qr img{display:block;margin:20px 0}.outreach-qr p{overflow-wrap:anywhere}.outreach-import-results{max-height:320px;overflow:auto}.outreach-import-results p{font-size:14px}.outreach .booking-drawer .outreach-form{grid-template-columns:1fr}.outreach .booking-drawer button{margin:6px 0}.outreach .badge+small{display:block;margin-top:5px}.outreach-cluster{background:transparent!important;border:0!important;box-shadow:none!important;color:white!important;font-weight:700}.outreach #outreach-map{border-radius:16px;z-index:0}.outreach .booking-drawer .form-error:empty{display:none}@media(max-width:900px){.outreach-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.outreach-mobile{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.outreach-filters,.outreach-form,.outreach-mobile{grid-template-columns:1fr}.outreach .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.outreach #outreach-map{height:480px!important}.outreach .booking-drawer{padding:20px}.outreach .tabs{display:flex;flex-wrap:wrap}}

.outreach-drawer .outreach-form{grid-template-columns:1fr}.outreach-drawer button{margin:6px 0}.outreach-drawer .outreach-check{align-items:flex-start}.outreach-drawer{overscroll-behavior:contain}.outreach>details{background:#f0f4eb;border-radius:12px;padding:14px 18px;margin:16px 0}.outreach>details>summary{cursor:pointer;font-weight:700}.outreach-filters{padding:18px 0 0}.outreach .insight-grid{grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:900px){.outreach .insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.outreach .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.outreach-drawer{padding:18px}}

.outreach-form>label{min-width:0}.outreach-form input,.outreach-form select{min-width:0;max-width:100%;box-sizing:border-box}.outreach-form input[type=date]{width:100%;display:block}


[hidden]{display:none!important}
#mfa-qr{display:block;max-width:100%;height:auto;margin:1rem 0}

#public-quote-form label{font-size:16px}#public-quote-form input:not([type=checkbox]),#public-quote-form textarea{font-size:16px;border:1px solid #687d75}#public-quote-form button{min-height:44px}#quote-feedback:focus{outline:2px solid #163d36;outline-offset:4px}

/* Shared readability and interaction rules across public and operational pages. */
body{font-size:16px;line-height:1.5}
small{font-size:14px;line-height:1.5}
input,select,textarea{font-size:16px;line-height:1.5;max-width:100%;min-width:0}
input:not([type=checkbox]):not([type=radio]),select{min-height:48px}
textarea{resize:vertical}
button,.btn,.page button,.page .btn,.workspace button,.workspace .btn{min-height:44px;font-size:16px;line-height:1.4}
button,.btn{white-space:normal;overflow-wrap:anywhere}
.tabs a,.login,nav a{min-height:44px;display:inline-flex;align-items:center}
.tabs a,.tabs button{font-size:16px}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--ink);outline-offset:3px;box-shadow:0 0 0 3px white}
input:focus,select:focus,textarea:focus{outline-offset:3px}
.outline:hover,.outline:focus-visible{background:var(--ink);color:white}
.light:hover{background:#c3de69;color:var(--ink)}
input[type=checkbox],input[type=radio],.workspace input[type=checkbox],.outreach-check input{width:24px!important;height:24px;min-width:24px;min-height:24px;flex:none}
.check-label{display:block;min-height:44px;font-size:16px;line-height:1.65;padding:8px 0}
.check-label input{margin-right:8px;vertical-align:middle}
.outreach-check{min-height:44px}
summary{min-height:44px;padding-block:8px;overflow-wrap:anywhere}
.payment-option{min-height:64px;border-color:#687d75}
.payment-option input{flex-basis:24px}
.payment-option.unavailable{opacity:1;background:#f2f3ee}
.payment-option .badge{white-space:normal}
.formgrid>*,.split>*,.grid>*,.section-head>*,.inbox-tools>*{min-width:0}
.card,.message-bubble,.booking-drawer,.note{overflow-wrap:anywhere}
.table-scroll,.tablewrap{overscroll-behavior-x:contain}
.calendar{grid-template-columns:repeat(7,minmax(95px,1fr));overflow-x:auto}
.calendar .day{min-height:88px}.calendar .day em{font-size:14px}
.marketing .hero-copy{order:0}.marketing .hero-art{order:1}
@media(max-width:800px){
 .hero-copy,.marketing .hero-copy{padding:28px 24px}
 .hero-copy h1,.marketing .hero h1{font-size:clamp(34px,8vw,48px);letter-spacing:-1.5px}
 .hero-copy p{font-size:16px}.hero-copy .pill{margin-bottom:16px}
 .hero-copy .actions{margin-top:18px;gap:12px}
 .hero-copy .actions .btn{width:100%;min-height:48px}
 .hero-art,.marketing .hero-art{aspect-ratio:4/3;max-height:400px;overflow:hidden}
 .hero-art img{object-position:center 45%}
 .section-head{align-items:start}.stats,.insight-grid{gap:12px}
 .page .summary{position:static}
 .inbox-folders{flex-wrap:wrap}.inbox-search{max-width:100%}
 .conversation-header button{max-width:100%}
 .seo-header{gap:12px;padding:16px}
 .seo-header nav{gap:16px;padding-block:8px}
 .marketing .hero{margin-inline:12px}
 footer{font-size:16px}footer a{line-height:1.8}
}
@media(max-width:420px){
 header,.seo-header{height:auto;flex-wrap:wrap;gap:10px;padding:14px 16px}
 header>.logo{font-size:26px}header>.login{margin-left:auto;font-size:16px}
 header>.btn{width:100%;text-align:center;order:3}
 .seo-header nav{order:4}
 .page,.section{padding-inline:16px}
 .page .card,.card{padding:18px}
 .hero-copy,.marketing .hero-copy{padding:24px 20px}
 .row{flex-wrap:wrap;align-items:start}
 .bulk-actions label{min-width:0;width:100%}
 .launch-strip span{max-width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.confirmation-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow:auto;border:1px solid #687d75;border-radius:16px;padding:28px;background:#fdfdfa;color:var(--ink)}.confirmation-dialog::backdrop{background:#123e3880}.confirmation-dialog h2{font-size:26px;margin:0 0 16px}.confirmation-dialog p{white-space:pre-line;font-size:16px}.confirmation-dialog .actions{gap:12px;margin-top:24px}@media(max-width:480px){.confirmation-dialog{padding:20px}.confirmation-dialog .actions button{width:100%}}

/* Visible hierarchy matches public-page structured data. */
.breadcrumbs { padding: 16px 24px 0; max-width: 1360px; margin: auto; font-size: 14px; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.breadcrumbs li + li::before { content: "/"; color: var(--muted); }
.breadcrumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.breadcrumbs span { overflow-wrap: anywhere; }

.booking-section-title{font-size:22px;letter-spacing:-.5px}
.address-results button{white-space:normal;overflow-wrap:anywhere;text-align:left;max-width:100%}

/* Shared signed-in workspaces: task first, settings on demand. */
body:has(.portal-layout){background:#f4f6f3}
body:has(.portal-layout)>header,body:has(.portal-layout)>footer{display:none}
.portal-layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh;max-width:1800px;margin:auto;color:#203f39}
.portal-sidebar{position:sticky;top:0;height:100dvh;overflow-y:auto;padding:28px 18px;background:#fff;border-right:1px solid #d5dfd9;display:flex;flex-direction:column;gap:18px}
.portal-brand{font-size:30px;font-weight:800;letter-spacing:-1px;padding:0 12px}.portal-brand span{display:block;font-size:13px;font-weight:500;letter-spacing:0;color:#52675e}
.portal-sidebar .eyebrow{font-size:11px;margin:8px 12px 0}.portal-sidebar nav{display:grid;gap:5px}.portal-sidebar nav a,.portal-switch a{display:block;padding:11px 12px;border-radius:9px;line-height:1.4;font-size:14px;font-weight:600;text-decoration:none}
.portal-sidebar nav a:hover,.portal-switch a:hover{background:#eff4ed}.portal-sidebar nav a[aria-current]{background:#203f39;color:#fff}
.portal-identity{margin-top:auto;border-top:1px solid #d5dfd9;padding:18px 10px 0;display:grid;gap:8px;overflow-wrap:anywhere}.portal-identity small{font-size:12px;color:#52675e}.portal-switch summary{font-size:14px;padding:12px 0;cursor:pointer}.portal-identity button{width:100%}
.portal-content{min-width:0;padding:36px clamp(18px,3vw,48px) 60px}.portal-content>.page,.portal-content>.section{padding:0;max-width:none;margin:0;width:100%}.portal-content h1{font-size:clamp(28px,3vw,40px);letter-spacing:-1px;line-height:1.15;margin:8px 0 18px}.portal-content h2{font-size:24px;line-height:1.25}.portal-content h3{font-size:19px}.portal-content .eyebrow{font-size:11px}.portal-content p{line-height:1.6}.portal-content .card{padding:24px;border-radius:16px;margin-bottom:18px;border:1px solid #d5dfd9;box-shadow:none;background:#fff}.portal-content .card .card{padding:18px;background:#f8faf7;border-radius:10px}.portal-content .section{padding:0}.portal-content .section>h2{display:none}.portal-content .formgrid{gap:16px}.portal-content button,.portal-content .btn{min-height:44px;padding:10px 18px;font-size:14px;border-radius:8px}.portal-content .small{min-height:44px}.portal-content .insight-grid{gap:12px;margin:20px 0}.portal-content .insight{padding:18px;border-radius:12px}.portal-content .insight strong{font-size:28px}.portal-content .workspace-filters{gap:12px}.portal-content .booking-table{font-size:14px}.portal-content .booking-table td{padding:14px 12px}.portal-content .table-scroll{max-width:100%;overflow:auto}.portal-content .calendar{overflow-x:auto}.portal-content .next-visit{border-top:4px solid #65824b;background:#fff}.portal-content .next-visit h2{font-size:32px;margin:12px 0}.portal-intro{color:#52675e;margin-bottom:24px}.portal-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.portal-summary a{display:flex;flex-direction:column;gap:10px;text-decoration:none}.portal-summary span{font-size:14px;color:#52675e}.portal-legacy-tabs{display:none}.portal-content details>summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:600}.portal-mobile{display:none}.portal-skip{position:fixed;top:-100px;left:12px;z-index:10000;background:#fff;padding:12px}.portal-skip:focus{top:12px}.portal-content :focus-visible,.portal-sidebar :focus-visible,.portal-mobile :focus-visible{outline:3px solid #527631;outline-offset:3px}.portal-content .form-error:not(:empty),.portal-content #ws-message:not(:empty){background:#fff0ef;color:#9b201a;border:2px solid #b83026;border-radius:10px;padding:16px;font-size:17px;font-weight:600}
@media(max-width:1000px){.portal-layout{grid-template-columns:210px minmax(0,1fr)}.portal-sidebar{padding:22px 12px}.portal-summary{grid-template-columns:1fr}.portal-summary .card{margin:0}.portal-summary{margin-bottom:18px}}
@media(max-width:760px){.portal-layout{display:block}.portal-sidebar{display:none}.portal-content{padding:24px 16px calc(100px + env(safe-area-inset-bottom))}.portal-content h1{font-size:30px}.portal-content .card{padding:20px}.portal-content .next-visit h2{font-size:28px}.portal-content .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-content .insight{min-width:0;padding:14px}.portal-content .insight strong{font-size:24px}.portal-content .actions{flex-wrap:wrap}.portal-mobile{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;z-index:1000;background:#fff;border-top:1px solid #c4d2c8;padding:8px 6px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 20px #203f390a}.portal-mobile>a,.portal-mobile>details>summary{display:flex;align-items:center;justify-content:center;min-height:48px;font-size:12px;font-weight:700;text-align:center;text-decoration:none;line-height:1.3;padding:6px;border-radius:8px;overflow-wrap:anywhere;cursor:pointer}.portal-mobile a[aria-current]{background:#203f39;color:white}.portal-mobile>details>div{position:absolute;bottom:100%;right:8px;left:8px;max-height:70dvh;overflow:auto;background:white;border:1px solid #c4d2c8;border-radius:14px;padding:12px;box-shadow:0 -8px 28px #203f3920}.portal-mobile>details>div>a{display:block;padding:12px;min-height:44px}.portal-mobile .portal-switch{padding:0 12px}.portal-content .calendar{display:grid;min-width:0}.portal-content .day{min-width:0;font-size:12px}.portal-content .day button{font-size:11px;padding:6px;overflow-wrap:anywhere}.portal-content .weekday{font-size:12px}.portal-content .booking-drawer{padding-bottom:110px}}
.portal-sidebar nav,.portal-mobile{margin-left:0}.portal-content .card .btn{width:auto}.portal-content .next-visit .btn{margin-top:8px}.portal-content .portal-package>summary{display:flex;justify-content:space-between;gap:16px;align-items:center}.portal-content .portal-package>summary span{font-weight:400;font-size:14px}.portal-content .portal-package[open]>summary{border-bottom:1px solid #d5dfd9;margin-bottom:18px;padding-bottom:18px}
.portal-content .insight-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-content .booking-table button{white-space:nowrap}.portal-content .portal-filter-panel{margin:18px 0;padding:0 18px;background:white;border:1px solid #d5dfd9;border-radius:12px}.portal-filter-panel[open]{padding-bottom:18px}@media(max-width:760px){.portal-content .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.portal-mobile{gap:4px}.portal-mobile>a{word-break:normal;overflow-wrap:normal}

.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}#ws-outcome label,[data-access-order] label{display:grid;gap:.5rem;margin-bottom:1rem}textarea{font:inherit;max-width:100%;width:100%;box-sizing:border-box;padding:.75rem;border:1px solid #aac2b8;border-radius:10px}#ws-outcome{margin-block:1rem}.portal-content>.page>h1{margin-bottom:1rem}

/* Keyboard focus and narrow-screen controls across all workspaces. */
:focus-visible{outline:3px solid #07574e;outline-offset:3px}button:focus-visible,.btn:focus-visible{outline-color:#9e4c00}.portal-mobile>details[open]>div{max-height:70dvh;overflow-y:auto;overscroll-behavior:contain}.form-error{overflow-wrap:anywhere}.table-scroll{max-width:100%}.portal-content,.portal-content .page,.inbox-layout>*,.outreach-form>*{min-width:0}.booking-drawer:focus{outline:none}input[type=checkbox]{min-width:20px;min-height:20px}.booking-table button,.pagination button,.saved-views button{min-height:44px}.outreach-qr img{max-width:100%;height:auto}#inbox-error:not(:empty){padding:1rem;color:#861c12;background:#fff0ed;border:2px solid #a02b1e;font-weight:600}
@media(max-width:600px){.workspace-filters,.outreach-filters,.formgrid{grid-template-columns:1fr}.bulk-actions,.pagination,.saved-views{flex-wrap:wrap;gap:.6rem}.portal-content .page{padding-inline:1rem}.booking-drawer{width:100%;max-width:100%;box-sizing:border-box}.portal-mobile>details[open]>div{left:0;right:0;max-width:100vw;box-sizing:border-box}input,select,textarea{font-size:16px}.inbox-tools{flex-wrap:wrap}.inbox-search{min-width:0;width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}


/* Private quote dialogue shares the portal's readable spacing. */
#guest-messages .card { margin-block: 16px; overflow-wrap: anywhere; }
#guest-reply { margin-block: 24px; }
#guest-reply textarea, [data-guest-send] textarea { display: block; width: 100%; box-sizing: border-box; }
[data-guest-send] { margin-top: 20px; padding-top: 20px; border-top: 1px solid #dbe3d9; }

/* Public form and footer targets remain usable with wrapped text. */
#public-quote-form .check-label{display:flex;align-items:flex-start;gap:12px;min-height:44px;min-width:0}
#public-quote-form .check-label input{display:block;position:static;width:24px;height:24px;min-height:24px;flex:0 0 24px;margin:2px 0 0;appearance:auto}
#public-quote-form .check-label span{min-width:0;overflow-wrap:anywhere}
footer a{display:inline-flex;align-items:center;min-height:44px;padding-block:8px;max-width:100%;overflow-wrap:anywhere}

/* Equal package cards, with accessible savings seals clear of Benny. */
.pricing-card{background:#fff;color:var(--ink);padding-top:72px}.pricing-card .package-saving{position:absolute;top:14px;right:14px;width:76px;height:76px;border-radius:50%;background:var(--lime);color:var(--ink);border:3px solid white;outline:1px solid #9bb956;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(8deg);box-shadow:0 4px 10px #123e3818;line-height:1.05;z-index:1}.package-saving span{font-size:13px;font-weight:700}.package-saving strong{font-size:27px;font-family:Manrope,sans-serif}.pricing-card .btn{margin-top:auto}.pricing-card .package-illustration{margin-top:15px}@media(max-width:400px){.pricing-card .package-saving{width:68px;height:68px}.package-saving strong{font-size:24px}}

/* Compact public navigation; native disclosure works without JavaScript. */
.seo-header>.public-mobile-menu{display:none}
@media(max-width:1050px){
 .seo-header{position:relative;display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px;height:auto;min-height:76px;padding:12px 20px}
 .seo-header>.logo{font-size:28px;white-space:nowrap}
 .seo-header>nav,.seo-header>.login,.seo-header>.btn{display:none}
 .seo-header>.public-mobile-menu{display:block;margin:0;padding:0;border:0;background:transparent}
 .public-mobile-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 12px;border:1px solid #c6d3cb;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer}
 .public-mobile-menu>summary::-webkit-details-marker{display:none}
 .public-mobile-menu>summary::after{content:none}
 .public-mobile-menu>summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
 .seo-header .public-mobile-menu>nav{position:absolute;top:calc(100% - 4px);left:16px;right:16px;z-index:30;display:flex;flex-direction:column;align-items:stretch;gap:2px;margin:0;padding:12px;background:#fff;border:1px solid #d5dfd9;border-radius:14px;box-shadow:0 12px 28px #123e3820;max-height:calc(100dvh - 100px);overflow-y:auto;width:auto}
 .seo-header .public-mobile-menu:not([open])>nav{display:none}
 .seo-header .public-mobile-menu nav>a{display:flex;align-items:center;min-height:46px;padding:11px 14px;font-size:16px;border-radius:8px}
 .seo-header .public-mobile-menu nav>a[aria-current=page]{background:#edf2e7;font-weight:700}
 .seo-header .public-mobile-menu nav>.btn{justify-content:center;margin-top:8px;color:#fff}
 .marketing .hero{margin-top:0}
}
@media(max-width:360px){.seo-header{padding:12px 16px}.seo-header>.logo{font-size:25px}}


/* Reporting uses compact, scrollable tables at every screen size. */
.report-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:20px 0}.report-metrics .card{padding:18px;margin:0}.report-metrics strong{display:block;font-size:1.45rem;margin-top:8px}.report-table{overflow-x:auto;margin:20px 0}.report-table table{width:100%;border-collapse:collapse;font-size:.95rem}.report-table th,.report-table td{padding:12px;text-align:left;border-bottom:1px solid #d7e1d8;vertical-align:top}.report-table caption{text-align:left;font-weight:700;padding:12px 0}.report-check{display:flex;align-items:center;gap:10px;margin:16px 0}.report-check input{width:20px;height:20px;flex:none}.reporting-page .actions{flex-wrap:wrap;gap:10px}.reporting-page .formgrid{margin:16px 0}.reporting-page button{min-height:44px}.reporting-page h1{font-size:clamp(1.8rem,4vw,2.8rem)}
@media print{body:has(#report-document) .portal-sidebar,body:has(#report-document) .portal-mobile,body:has(#report-document) header,body:has(#report-document) footer,body:has(#report-document) .report-controls,body:has(#report-document) .portal-skip{display:none!important}body:has(#report-document) .portal-layout{display:block}body:has(#report-document) .portal-content,body:has(#report-document) .page{margin:0;padding:0;max-width:none}.report-table{overflow:visible}.report-metrics .card{break-inside:avoid}}

/* Fixed, horizontally swipeable workspace navigation. */
@media(max-width:760px){
 .portal-mobile,.portal-mobile.is-scroll-hidden,.portal-mobile:focus-within{display:flex;align-items:center;gap:6px;position:fixed;bottom:0;left:0;right:0;transform:none;transition:none;pointer-events:auto;padding:4px 10px calc(4px + env(safe-area-inset-bottom));overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scroll-padding-inline:10px}
 .portal-mobile>a{flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-height:44px;height:44px;padding:6px 14px;font-size:12px;line-height:1.3;white-space:nowrap;border-radius:8px}
 .portal-mobile>a:focus-visible{outline-offset:-3px}
 .portal-content{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
}


.booking-steps{display:flex;flex-wrap:wrap;gap:10px 24px;list-style:none;padding:14px 0;margin:12px 0 20px;font-size:14px;font-weight:700}.booking-contact{margin:24px 0;padding-top:20px;border-top:1px solid #dfe7dc}.booking-contact p{font-size:16px}

/* Secondary booking options and persistent navigation overflow controls. */
.booking-campaign{border-top:1px solid #d5dfd9;margin:20px 0;padding-top:16px}.campaign-entry{display:flex;gap:8px;align-items:center}.campaign-entry input{min-width:0;flex:1}.campaign-entry button{white-space:nowrap}.booking-campaign>button{margin-top:8px}.booking-campaign label{font-size:14px}.payment-options p{margin:8px 0}.portal-mobile-dock{display:none}
@media(max-width:760px){
 .portal-mobile-dock{display:flex;align-items:center;position:fixed;bottom:0;left:0;right:0;z-index:30;background:white;border-top:1px solid #c7d5cc;padding:4px 0 calc(4px + env(safe-area-inset-bottom))}
 .portal-mobile-dock .portal-mobile{position:static;flex:1;min-width:0;width:auto;margin:0;padding:0 4px;border:0;box-shadow:none}
 .portal-mobile-dock>button{flex:0 0 44px;width:44px;min-height:44px;padding:0;background:white;color:var(--teal);font-size:28px;line-height:1;border-radius:6px}
 .portal-mobile-dock>button:disabled{opacity:.28;cursor:default}
 .portal-mobile-dock[data-overflow="false"]>button{display:none}
}
@media print{.portal-mobile-dock{display:none!important}}


/* Consistent compact controls across customer and operational workspaces. */
.page .card,.workspace .card{padding:20px;margin-bottom:16px}
.page .formgrid,.workspace .formgrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),340px));gap:14px 20px;justify-content:start;align-items:start}
.page .formgrid>.full,.workspace .formgrid>.full{grid-column:1/-1}
.page input:not([type=checkbox]):not([type=radio]):not([type=hidden]),.page select,.page textarea{font-size:16px;padding:10px 12px;min-height:44px;max-width:100%;box-sizing:border-box}
.page input[type=number]{width:150px}.page input[type=date],.page input[type=time],.page input[type=tel],.page input[name=postal_code],.page input[name=postcode]{width:210px}
.page label:has(>input[type=number]),.page .field:has(input[type=number]){max-width:240px}
.page textarea{width:100%;min-height:96px}.page button,.page .btn{min-height:44px;padding:10px 16px;font-size:15px;line-height:1.4}
#profile-form,#account-password-form{max-width:740px}.page .card:has(#profile-form),.page .card:has(#account-password-form){max-width:800px}
.page h3{margin-top:0}.content-card{padding:18px;border:1px solid #d5dfd9;border-radius:12px;background:#fff;margin:16px 0}.content-card-title{font-size:1.05rem;line-height:1.5;margin:0 0 12px}.content-card>p:last-child{margin-bottom:0}
.portal-package>h3{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.portal-package>h3>span{font-size:.9rem;font-weight:400}
[data-capacity-kind=order] .formgrid{grid-template-columns:repeat(auto-fit,minmax(180px,240px))}.capacity-days{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}
.portal-identity{margin:0 0 18px;padding:0;border:0}.portal-identity small{display:block;overflow-wrap:anywhere}.portal-sidebar .portal-switch{margin:10px 0 0;padding:8px 10px;position:relative;background:#fff;border:1px solid #d5dfd9;border-radius:8px}.portal-switch summary{cursor:pointer;min-height:28px}.portal-switch:not([open])>a{display:none}.portal-switch>a{display:block;padding:10px}.portal-logout{margin-top:18px}
.inbox-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;margin-left:6px;border-radius:20px;background:#a52d25;color:white;font-size:12px;font-weight:700}.inbox-badge[hidden]{display:none}
.message-notification{position:fixed;right:20px;top:20px;max-width:min(420px,calc(100vw - 40px));z-index:1200;display:flex;align-items:center;gap:12px;padding:16px;background:#fff;border:2px solid #07574e;border-radius:12px;box-shadow:0 4px 24px #0002}.message-notification a{font-weight:700}.message-notification button{padding:8px;min-height:44px}
@media(max-width:700px){.page .card,.workspace .card{padding:16px}.page .formgrid,.workspace .formgrid{grid-template-columns:minmax(0,1fr);gap:12px}.page input[type=number]{width:140px}.portal-content .page{padding-left:16px;padding-right:16px}.content-card{padding:14px}}

.portal-mobile-identity{display:none}@media(max-width:760px){.portal-mobile-identity{display:block;padding:16px 20px 0}.portal-mobile-identity small{display:block;overflow-wrap:anywhere}.portal-mobile-identity .portal-switch{max-width:280px;padding:10px;border:1px solid #d5dfd9;border-radius:8px;margin:8px 0;background:white}}

/* Round 3: readable steps and comfortable town links. */
.marketing .step h2{letter-spacing:0}.area-card a:not(.btn){display:inline-flex;align-items:center;min-height:44px;padding:8px 0}.seo-header nav{gap:14px}

.portal-nav-group h2{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:18px 10px 6px;color:#52675e}.portal-nav-group a{display:block}.confirmation-dialog #confirmation-description{white-space:pre-line}
