:root{--ink:#2b2530;--muted:#675f69;--plum:#812778;--paper:#faf8f5;--line:#e3dcd8;--serif:Georgia,"Times New Roman",serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default}:where(button,input,select,summary):focus-visible{outline:3px solid #a74799;outline-offset:3px}.traveler-portal{min-height:100svh;padding-bottom:calc(96px + env(safe-area-inset-bottom));color:var(--ink)}.traveler-portal [data-focus]:focus{outline:none}.portal-bar{background:#fff;border-bottom:1px solid var(--line)}.action-bar>div,.portal-bar>div{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:960px;margin:0 auto;padding:0 16px}.portal-bar>div{height:55px}.portal-bar img{height:43px;max-width:135px;object-fit:contain}.confirmation,.group-filters,.party,.portal-bar span,.portal-primary,.quick-dates,.service-price,.stay-info>div,.step-header,.step-header button,.stepper,.total{display:flex;align-items:center}.portal-bar span{gap:5px;font-size:13px;color:var(--muted)}.traveler-portal main{width:100%;margin:0 auto;padding:14px 16px 22px}.catalog-view{max-width:960px}.flow-view{max-width:660px}.portal-hero{min-height:135px;display:flex;align-items:flex-end;border-radius:13px;overflow:hidden;background:linear-gradient(90deg,rgba(38,24,28,.87),rgba(48,35,33,.68) 38%,rgba(43,36,34,.13) 95%),url(/marrakech.jpg) center 50%/cover;color:#fff}.hero-content{padding:15px 20px}.hero-content>span{display:block;font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#fcdfc4}.flow-view h1,.portal-hero h1{font:normal 37px/1.04 var(--serif);letter-spacing:-.045em;margin:5px 0 0}.catalog-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:23px 0 10px}.catalog-heading h2{font:normal 26px/1.1 var(--serif);letter-spacing:-.045em;margin:0}.catalog-heading>span,.dock-info>span,.receipt p,.step-header>span,.subnote{color:var(--muted)}.catalog-heading>span{font-size:12px;white-space:nowrap}.group-filters{gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -2px 10px;padding:3px 2px}.group-filters::-webkit-scrollbar{display:none}.group-filters button,.quick-dates button{white-space:nowrap;padding:6px 12px;border:1px solid #d8d0d5;background:white;color:#574e59;border-radius:99px;min-height:40px;font-size:13px;font-weight:570}.group-filters button[aria-pressed=true]{color:white;background:#473141;border-color:#473141}.service-grid{display:grid;gap:10px}.service-card{display:grid;position:relative;grid-template-columns:minmax(104px,36%) minmax(0,1fr);align-items:stretch;gap:13px;text-align:left;padding:0 12px 0 0;overflow:hidden;min-height:132px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink)}.service-photo{display:block;width:100%;height:100%;min-height:132px;align-self:stretch;object-fit:cover;object-position:center;border-radius:0;background:#eee6de}.service-card:hover{border-color:#be9bb5}.service-card.selected{border-color:var(--plum);box-shadow:inset 0 0 0 1px var(--plum);background:#fdf5fb}.receipt-icon,.svc-icon,.toggle-icon{display:inline-grid;place-items:center;flex:none}.svc-icon{width:37px;height:37px;border-radius:10px;background:#f3eaf0;color:#7d3d73}.svc-driver,.svc-medina{background:#edece3;color:#5e6547}.svc-agafay,.svc-dinner{background:#f8e9df;color:#985d48}.svc-pool{background:#e6eeef;color:#4c7078}.svc-quad{background:#eee7dc;color:#7e6344}.card-copy{display:flex;flex-direction:column;gap:5px;align-self:center;padding-block:12px}.card-copy strong{font:normal 21px/1.08 var(--serif);letter-spacing:-.035em}.card-copy>span,.summary p{font-size:13px;line-height:1.4;color:var(--muted)}.card-copy b,.summary>strong{color:var(--plum);font-weight:650;font-size:13px}.service-card .toggle-icon{position:absolute;left:8px;top:6px;background:#fff;box-shadow:0 2px 8px #39283024}.toggle-icon{border:1px solid #c5b7c2;border-radius:50%;width:22px;height:22px;margin-top:2px;color:#6f5a69}.service-card.selected .toggle-icon{color:#fff;background:var(--plum);border-color:var(--plum)}.action-bar{position:fixed;bottom:0;left:0;right:0;padding:9px 0 calc(9px + env(safe-area-inset-bottom));border-top:1px solid #d9d0d6;background:#fff;z-index:5;box-shadow:0 -4px 20px #3928300a}.dock-info strong,.dock-info>span{display:block}.dock-info>span{font-size:11px}.dock-info strong{font-size:15px}.portal-primary{gap:7px;justify-content:center;min-height:46px;padding:10px 16px;border:0;border-radius:9px;background:var(--plum);color:#fff;font-weight:650;font-size:14px}.portal-primary:disabled{background:#e9e2e8;color:#746772}.step-header{justify-content:space-between;gap:10px;min-height:38px;font-size:13px}.step-header button{gap:5px;border:0;background:transparent;color:var(--plum);padding:9px 5px 9px 0;font-weight:650}.progress{display:flex;gap:5px;margin:3px 0 19px}.progress i{height:3px;background:#e7dfe5;border-radius:3px;flex:1}.progress .complete{background:var(--plum)}.flow-view h1{font-size:34px;margin:0 0 23px}.service-editor{margin:0 0 19px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px;min-width:0}.service-editor legend{display:inline-flex;align-items:center;gap:7px;padding:0 5px;margin-left:-3px;font-weight:650;font-size:16px}.service-editor legend .svc-icon{height:28px;width:28px;border-radius:8px}.service-editor legend svg{width:16px;height:16px}.field{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:630;line-height:1.45}.service-editor input,.service-editor select{min-width:0;width:100%;background:#fff;color:var(--ink);border:1px solid #cfc5cd;border-radius:7px;min-height:44px;padding:8px;font-size:16px}.quick-dates{gap:6px;margin:6px 0 12px}.quick-dates button{min-height:40px;padding:4px 11px;color:var(--plum)}.party,.service-price,.total{justify-content:space-between;gap:12px}.party>label,.service-price>span{font-size:14px;font-weight:600}.stepper{border:1px solid #d2c9cf;border-radius:8px;overflow:hidden;background:white}.stepper button{display:grid;place-items:center;min-height:42px;width:40px;border:0;background:#f8f4f6;color:var(--plum)}.stepper button:disabled{color:#a99ba7}.stepper input{width:44px;height:42px;min-height:0;padding:0;text-align:center;border:0;border-radius:0;appearance:textfield;-moz-appearance:textfield}.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.transfer-fields{display:grid;gap:12px;grid-template-columns:minmax(0,3fr) minmax(0,2fr);margin:14px 0}.party+.field{margin-top:14px}.service-editor details{margin:12px 0 0;font-size:13px;color:var(--muted)}.service-editor summary{cursor:pointer;padding:6px 0;color:var(--plum)}.service-editor details p{margin:4px 0 0}.service-price{border-top:1px solid var(--line);padding-top:11px;margin-top:13px}.service-price strong,.total strong{color:var(--plum)}.summary-list{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.summary{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:start;gap:8px;padding:14px 11px}.summary+.summary{border-top:1px solid var(--line)}.summary .svc-icon{width:30px;height:30px;border-radius:8px}.summary svg{width:18px;height:18px}.summary h3{margin:0;font-size:15px;font-weight:630;line-height:1.35}.summary p{margin:3px 0 0}.summary>strong{white-space:nowrap}.total{margin-top:14px;padding:14px 0;border-block:1px solid var(--line);font-weight:650}.total strong{font-size:19px}.receipt p,.subnote{font-size:14px;margin:12px 0}.stay-info{border:1px solid var(--line);border-radius:10px;background:#fff;margin:16px 0;padding:10px 12px}.stay-info>div{flex-wrap:wrap;gap:7px;font-size:13px;padding:4px 0}.stay-info svg{color:var(--muted)}.stay-info strong{margin-left:auto;overflow-wrap:anywhere}.confirmation{gap:10px;min-height:52px;padding:7px 0;cursor:pointer;font-size:14px;font-weight:600;line-height:1.4}.confirmation input{flex:none;width:20px;height:20px;accent-color:var(--plum)}.portal-error{padding:10px 12px;background:#f9e9e7;color:#912922;border-radius:6px;font-size:14px}.receipt{padding-top:22px}.receipt-icon{width:56px;height:56px;border-radius:18px;color:#42654c;background:#e7efe5;margin-bottom:17px}.receipt h1{margin-bottom:10px}.receipt-code{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;margin:17px 0;border:1px dashed #b89aaa;border-radius:10px;background:#f5eef1}.receipt-code span{font-size:13px}.receipt-code strong{font-size:15px;letter-spacing:.04em}.receipt .portal-primary{margin-top:18px}@media(max-width:350px){.action-bar>div,.portal-bar>div,.traveler-portal main{padding-inline:12px}.portal-primary{padding-inline:11px;font-size:13px}.group-filters button{padding-inline:9px}.transfer-fields{grid-template-columns:1fr}}@media(min-width:720px){.action-bar>div,.portal-bar>div{padding-inline:26px}.portal-bar>div{height:63px}.traveler-portal main{padding:24px 26px}.portal-hero{min-height:182px;background-position:center 53%}.hero-content{padding:24px 34px}.portal-hero h1{font-size:49px}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.service-card{grid-template-columns:36% minmax(0,1fr);min-height:152px}.flow-view h1{font-size:41px}.service-editor{padding:19px}.quick-dates{margin-bottom:14px}.action-bar{padding-block:12px}.service-editor legend,.summary h3{font-size:17px}}.portal-bar .cart-shortcut{display:flex;align-items:center;gap:6px;background:#f4edf1;border:1px solid #dfced9;border-radius:25px;color:var(--plum);font-weight:650;min-height:40px;padding:5px 11px;font-size:14px}.portal-bar>div:has(.cart-shortcut)>span{margin-left:auto}.cart-shortcut:disabled{opacity:.58}.edit-cart,.remove-item{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;background:transparent;border:none;color:var(--plum);font-size:14px;font-weight:620;padding:5px 2px}.service-price>span{text-align:right;font-size:12px;font-weight:500;color:var(--muted)}.service-price>span strong{display:block;font-size:16px;font-weight:650}.edit-cart{margin:4px 0}.measurement-control{font-size:13px;color:var(--muted);margin:2px 0 12px}.measurement-control:has(strong){padding:12px 14px;background:white;border:1px solid var(--line);border-radius:10px}.measurement-control p{margin:4px 0 8px}.measurement-control div{display:flex;gap:9px}.measurement-control button{color:var(--plum);background:transparent;border:0;min-height:32px;text-decoration:underline;cursor:pointer;font-size:13px}.measurement-control div button{border:1px solid var(--line);border-radius:6px;min-height:40px;padding:5px 14px;text-decoration:none}