/* required styles */

.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
	position: absolute;
	left: 0;
	top: 0;
	}
.leaflet-container {
	overflow: hidden;
	}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
	-webkit-user-select: none;
	   -moz-user-select: none;
	        user-select: none;
	  -webkit-user-drag: none;
	}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
	background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
	image-rendering: -webkit-optimize-contrast;
	}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
	width: 1600px;
	height: 1600px;
	-webkit-transform-origin: 0 0;
	}
.leaflet-marker-icon,
.leaflet-marker-shadow {
	display: block;
	}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg {
	max-width: none !important;
	max-height: none !important;
	}
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
	max-width: none !important;
	max-height: none !important;
	width: auto;
	padding: 0;
	}

.leaflet-container img.leaflet-tile {
	/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */
	mix-blend-mode: plus-lighter;
}

.leaflet-container.leaflet-touch-zoom {
	-ms-touch-action: pan-x pan-y;
	touch-action: pan-x pan-y;
	}
.leaflet-container.leaflet-touch-drag {
	-ms-touch-action: pinch-zoom;
	/* Fallback for FF which doesn't support pinch-zoom */
	touch-action: none;
	touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
	-ms-touch-action: none;
	touch-action: none;
}
.leaflet-container {
	-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
	-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
	filter: inherit;
	visibility: hidden;
	}
.leaflet-tile-loaded {
	visibility: inherit;
	}
.leaflet-zoom-box {
	width: 0;
	height: 0;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	z-index: 800;
	}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
	-moz-user-select: none;
	}

.leaflet-pane         { z-index: 400; }

.leaflet-tile-pane    { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane  { z-index: 500; }
.leaflet-marker-pane  { z-index: 600; }
.leaflet-tooltip-pane   { z-index: 650; }
.leaflet-popup-pane   { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg    { z-index: 200; }

.leaflet-vml-shape {
	width: 1px;
	height: 1px;
	}
.lvml {
	behavior: url(#default#VML);
	display: inline-block;
	position: absolute;
	}


/* control positioning */

.leaflet-control {
	position: relative;
	z-index: 800;
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}
.leaflet-top,
.leaflet-bottom {
	position: absolute;
	z-index: 1000;
	pointer-events: none;
	}
.leaflet-top {
	top: 0;
	}
.leaflet-right {
	right: 0;
	}
.leaflet-bottom {
	bottom: 0;
	}
.leaflet-left {
	left: 0;
	}
.leaflet-control {
	float: left;
	clear: both;
	}
.leaflet-right .leaflet-control {
	float: right;
	}
.leaflet-top .leaflet-control {
	margin-top: 10px;
	}
.leaflet-bottom .leaflet-control {
	margin-bottom: 10px;
	}
.leaflet-left .leaflet-control {
	margin-left: 10px;
	}
.leaflet-right .leaflet-control {
	margin-right: 10px;
	}


/* zoom and fade animations */

.leaflet-fade-anim .leaflet-popup {
	opacity: 0;
	-webkit-transition: opacity 0.2s linear;
	   -moz-transition: opacity 0.2s linear;
	        transition: opacity 0.2s linear;
	}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
	opacity: 1;
	}
.leaflet-zoom-animated {
	-webkit-transform-origin: 0 0;
	    -ms-transform-origin: 0 0;
	        transform-origin: 0 0;
	}
svg.leaflet-zoom-animated {
	will-change: transform;
}

.leaflet-zoom-anim .leaflet-zoom-animated {
	-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
	   -moz-transition:    -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
	        transition:         transform 0.25s cubic-bezier(0,0,0.25,1);
	}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
	-webkit-transition: none;
	   -moz-transition: none;
	        transition: none;
	}

.leaflet-zoom-anim .leaflet-zoom-hide {
	visibility: hidden;
	}


/* cursors */

.leaflet-interactive {
	cursor: pointer;
	}
.leaflet-grab {
	cursor: -webkit-grab;
	cursor:    -moz-grab;
	cursor:         grab;
	}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
	cursor: crosshair;
	}
.leaflet-popup-pane,
.leaflet-control {
	cursor: auto;
	}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
	cursor: move;
	cursor: -webkit-grabbing;
	cursor:    -moz-grabbing;
	cursor:         grabbing;
	}

/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
	pointer-events: none;
	}

.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
	pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
	pointer-events: auto;
	}

/* visual tweaks */

.leaflet-container {
	background: #ddd;
	outline-offset: 1px;
	}
.leaflet-container a {
	color: #0078A8;
	}
.leaflet-zoom-box {
	border: 2px dotted #38f;
	background: rgba(255,255,255,0.5);
	}


/* general typography */
.leaflet-container {
	font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-size: 0.75rem;
	line-height: 1.5;
	}


/* general toolbar styles */

.leaflet-bar {
	box-shadow: 0 1px 5px rgba(0,0,0,0.65);
	border-radius: 4px;
	}
.leaflet-bar a {
	background-color: #fff;
	border-bottom: 1px solid #ccc;
	width: 26px;
	height: 26px;
	line-height: 26px;
	display: block;
	text-align: center;
	text-decoration: none;
	color: black;
	}
.leaflet-bar a,
.leaflet-control-layers-toggle {
	background-position: 50% 50%;
	background-repeat: no-repeat;
	display: block;
	}
.leaflet-bar a:hover,
.leaflet-bar a:focus {
	background-color: #f4f4f4;
	}
.leaflet-bar a:first-child {
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	}
.leaflet-bar a:last-child {
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	border-bottom: none;
	}
.leaflet-bar a.leaflet-disabled {
	cursor: default;
	background-color: #f4f4f4;
	color: #bbb;
	}

.leaflet-touch .leaflet-bar a {
	width: 30px;
	height: 30px;
	line-height: 30px;
	}
.leaflet-touch .leaflet-bar a:first-child {
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	}
.leaflet-touch .leaflet-bar a:last-child {
	border-bottom-left-radius: 2px;
	border-bottom-right-radius: 2px;
	}

/* zoom control */

.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
	font: bold 18px 'Lucida Console', Monaco, monospace;
	text-indent: 1px;
	}

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out  {
	font-size: 22px;
	}


/* layers control */

.leaflet-control-layers {
	box-shadow: 0 1px 5px rgba(0,0,0,0.4);
	background: #fff;
	border-radius: 5px;
	}
.leaflet-control-layers-toggle {
	background-image: url(images/layers.png);
	width: 36px;
	height: 36px;
	}
.leaflet-retina .leaflet-control-layers-toggle {
	background-image: url(images/layers-2x.png);
	background-size: 26px 26px;
	}
.leaflet-touch .leaflet-control-layers-toggle {
	width: 44px;
	height: 44px;
	}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
	display: none;
	}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
	display: block;
	position: relative;
	}
.leaflet-control-layers-expanded {
	padding: 6px 10px 6px 6px;
	color: #333;
	background: #fff;
	}
.leaflet-control-layers-scrollbar {
	overflow-y: scroll;
	overflow-x: hidden;
	padding-right: 5px;
	}
.leaflet-control-layers-selector {
	margin-top: 2px;
	position: relative;
	top: 1px;
	}
.leaflet-control-layers label {
	display: block;
	font-size: 13px;
	font-size: 1.08333em;
	}
.leaflet-control-layers-separator {
	height: 0;
	border-top: 1px solid #ddd;
	margin: 5px -10px 5px -6px;
	}

/* Default icon URLs */
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
	background-image: url(images/marker-icon.png);
	}


/* attribution and scale controls */

.leaflet-container .leaflet-control-attribution {
	background: #fff;
	background: rgba(255, 255, 255, 0.8);
	margin: 0;
	}
.leaflet-control-attribution,
.leaflet-control-scale-line {
	padding: 0 5px;
	color: #333;
	line-height: 1.4;
	}
.leaflet-control-attribution a {
	text-decoration: none;
	}
.leaflet-control-attribution a:hover,
.leaflet-control-attribution a:focus {
	text-decoration: underline;
	}
.leaflet-attribution-flag {
	display: inline !important;
	vertical-align: baseline !important;
	width: 1em;
	height: 0.6669em;
	}
.leaflet-left .leaflet-control-scale {
	margin-left: 5px;
	}
.leaflet-bottom .leaflet-control-scale {
	margin-bottom: 5px;
	}
.leaflet-control-scale-line {
	border: 2px solid #777;
	border-top: none;
	line-height: 1.1;
	padding: 2px 5px 1px;
	white-space: nowrap;
	-moz-box-sizing: border-box;
	     box-sizing: border-box;
	background: rgba(255, 255, 255, 0.8);
	text-shadow: 1px 1px #fff;
	}
.leaflet-control-scale-line:not(:first-child) {
	border-top: 2px solid #777;
	border-bottom: none;
	margin-top: -2px;
	}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
	border-bottom: 2px solid #777;
	}

.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	box-shadow: none;
	}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
	border: 2px solid rgba(0,0,0,0.2);
	background-clip: padding-box;
	}


/* popup */

.leaflet-popup {
	position: absolute;
	text-align: center;
	margin-bottom: 20px;
	}
.leaflet-popup-content-wrapper {
	padding: 1px;
	text-align: left;
	border-radius: 12px;
	}
.leaflet-popup-content {
	margin: 13px 24px 13px 20px;
	line-height: 1.3;
	font-size: 13px;
	font-size: 1.08333em;
	min-height: 1px;
	}
.leaflet-popup-content p {
	margin: 17px 0;
	margin: 1.3em 0;
	}
.leaflet-popup-tip-container {
	width: 40px;
	height: 20px;
	position: absolute;
	left: 50%;
	margin-top: -1px;
	margin-left: -20px;
	overflow: hidden;
	pointer-events: none;
	}
.leaflet-popup-tip {
	width: 17px;
	height: 17px;
	padding: 1px;

	margin: -10px auto 0;
	pointer-events: auto;

	-webkit-transform: rotate(45deg);
	   -moz-transform: rotate(45deg);
	    -ms-transform: rotate(45deg);
	        transform: rotate(45deg);
	}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
	background: white;
	color: #333;
	box-shadow: 0 3px 14px rgba(0,0,0,0.4);
	}
.leaflet-container a.leaflet-popup-close-button {
	position: absolute;
	top: 0;
	right: 0;
	border: none;
	text-align: center;
	width: 24px;
	height: 24px;
	font: 16px/24px Tahoma, Verdana, sans-serif;
	color: #757575;
	text-decoration: none;
	background: transparent;
	}
.leaflet-container a.leaflet-popup-close-button:hover,
.leaflet-container a.leaflet-popup-close-button:focus {
	color: #585858;
	}
.leaflet-popup-scrolled {
	overflow: auto;
	}

.leaflet-oldie .leaflet-popup-content-wrapper {
	-ms-zoom: 1;
	}
.leaflet-oldie .leaflet-popup-tip {
	width: 24px;
	margin: 0 auto;

	-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
	filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
	}

.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
	border: 1px solid #999;
	}


/* div icon */

.leaflet-div-icon {
	background: #fff;
	border: 1px solid #666;
	}


/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
	position: absolute;
	padding: 6px;
	background-color: #fff;
	border: 1px solid #fff;
	border-radius: 3px;
	color: #222;
	white-space: nowrap;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0,0,0,0.4);
	}
.leaflet-tooltip.leaflet-interactive {
	cursor: pointer;
	pointer-events: auto;
	}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	position: absolute;
	pointer-events: none;
	border: 6px solid transparent;
	background: transparent;
	content: "";
	}

/* Directions */

.leaflet-tooltip-bottom {
	margin-top: 6px;
}
.leaflet-tooltip-top {
	margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
	left: 50%;
	margin-left: -6px;
	}
.leaflet-tooltip-top:before {
	bottom: 0;
	margin-bottom: -12px;
	border-top-color: #fff;
	}
.leaflet-tooltip-bottom:before {
	top: 0;
	margin-top: -12px;
	margin-left: -6px;
	border-bottom-color: #fff;
	}
.leaflet-tooltip-left {
	margin-left: -6px;
}
.leaflet-tooltip-right {
	margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
	top: 50%;
	margin-top: -6px;
	}
.leaflet-tooltip-left:before {
	right: 0;
	margin-right: -12px;
	border-left-color: #fff;
	}
.leaflet-tooltip-right:before {
	left: 0;
	margin-left: -12px;
	border-right-color: #fff;
	}

/* Printing */

@media print {
	/* Prevent printers from removing background-images of controls. */
	.leaflet-control {
		-webkit-print-color-adjust: exact;
		print-color-adjust: exact;
		}
	}

@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 900;font-display:swap;src:url(assets/fonts/playfair-display.ttf) format('truetype')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url(assets/fonts/plus-jakarta-sans.ttf) format('truetype')}
/* Koli design system (Claude Design handoff, 28 Oct 2026). Fonts are self-hosted: Playfair Display for headlines
   only (one weight, 400), Plus Jakarta Sans for everything else (400 to 600). */
:root{
  /* design tokens */
  --lagoon:#143A38; --lagoon-press:#0E2C2A; --reef:#2F6F6B;
  --brass:#B08A4E; --brass-text:#8A6A33; --brass-light:#D8BF8E;
  --sand:#EFE7DA; --sand-2:#F3EEE5; --salt:#FAF7F2; --white:#FFFFFF; --line-c:#E6DDCD;
  --ink-1:#1C2423; --ink-2:#4F5957; --ink-3:#6B7472;
  --ok-bg:#E3F0E8; --ok:#25603F; --wait-bg:#F6EBD3; --wait:#7A5A1E; --done-bg:#EFE7DA; --done:#4F5957;
  --bad-bg:#F5E3DF; --bad:#8E3B2E; --info-bg:#E7F0EE; --info:#143A38; --wa-dot:#3E9B6A;
  --gutter:clamp(20px,4vw,56px);
  /* the names the rest of this file uses, now pointing at the design tokens */
  --teal:var(--lagoon); --teal-2:var(--lagoon-press); --teal-soft:#1B4A47;
  --gold:var(--brass); --gold-2:var(--brass-text);
  --gold-ink:var(--brass-text);  /* brass text on salt: 4.9:1, passes AA */
  --cream:var(--salt); --cream-2:var(--sand); --card:var(--white);
  --ink:var(--ink-1); --muted:var(--ink-2); --line:var(--line-c);
  --serif:'Playfair Display',Georgia,serif;
  --sans:'Plus Jakarta Sans','Montserrat',system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --subheading:var(--sans);
  --wrap:1280px;
  --shadow:0 0 0 1px var(--line-c);   /* the design allows three shadows only; cards use a 1px line instead */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;background:var(--salt);color:var(--ink-1);line-height:1.55;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-synthesis-weight:none}
html,body{overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.serif{font-family:var(--serif);font-weight:400}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-text);font-weight:500}
.muted{color:var(--muted)}
section{position:relative}

/* buttons */
.btn{font-family:var(--sans);font-weight:600;font-size:15px;border:0;cursor:pointer;border-radius:12px;padding:13px 22px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:background-color .18s,border-color .18s,color .18s;white-space:nowrap}
.btn-primary{background:var(--lagoon);color:var(--salt)}
.btn-primary:hover{background:var(--lagoon-press)}
.btn-gold{background:var(--brass-light);color:var(--lagoon)}
.btn-gold:hover{background:#CDB27C}
.btn-ghost{background:transparent;color:var(--ink-1);border:1px solid var(--line-c)}
.btn-ghost:hover{border-color:var(--lagoon)}
.btn-link{background:none;border:0;cursor:pointer;font-weight:600;color:var(--reef);border-bottom:1px solid currentColor;padding-bottom:1px;font-size:15px;font-family:var(--sans)}
.btn-link:hover{color:var(--lagoon)}
.btn.block{width:100%;justify-content:center}
.btn.lg{padding:15px 26px;min-height:52px;font-size:16px}

/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.hdr .wrap{display:flex;align-items:center;gap:26px;height:76px}
.logo{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.14em;white-space:nowrap}
.hdr .wrap{gap:20px}
.nav{margin-right:auto}
.logo .mark{width:38px;height:38px;flex:0 0 auto}
.nav{display:flex;gap:26px;margin-left:8px}
.nav a{font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--ink);opacity:.82}
.nav a:hover{opacity:1;color:var(--gold-ink)}
.hdr .spacer{flex:1}
.cur-toggle{display:inline-flex;flex-shrink:0;border:1px solid var(--line);border-radius:999px;overflow:hidden;font-size:12.5px;font-weight:700}
/* The header's own controls keep their size; only the menu links give way when it is crowded. */
.hdr .signin,.hdr .hdr-book{flex-shrink:0;white-space:nowrap}
.hdr .nav{min-width:0}
/* Phones: the currency switch lives in the menu. */
.mobnav-cur{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);font-size:14px;font-weight:600;color:var(--muted)}
.mobnav-cur .cur-toggle{display:inline-flex}
.cur-toggle button{border:0;background:transparent;padding:7px 13px;cursor:pointer;color:var(--muted);font-weight:700}
.cur-toggle button.on{background:var(--teal);color:var(--cream)}
.hdr .signin{font-size:14px;font-weight:600;cursor:pointer}
.hdr .signin:hover{color:var(--gold-ink)}
.menu-btn{display:none;background:none;border:0;font-size:24px;cursor:pointer;color:var(--ink)}
/* The drawer and the sticky booking bar are phone-only; the desktop header
   already carries the nav, Sign in and Book now. */
.mobnav{display:none}
/* Menu: the four main links, then a quieter "More" group. */
.mobnav-more{flex-basis:100%;padding:16px 18px 6px;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--bg)}
.mobnav a.minor{padding:11px 18px;font-size:14px;font-weight:500;color:var(--muted);background:var(--bg);border-bottom:0}
.bookbar{display:none}

/* hero */
.hero{padding:64px 0 40px}
.hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(46px,6vw,86px);line-height:.98;letter-spacing:-.01em;margin:16px 0 22px}
.hero p.lead{font-size:18px;color:#3f5a57;max-width:30em;margin-bottom:30px}
.hero .cta{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.hero .stats{display:flex;gap:26px;margin-top:34px;align-items:center}
.hero .stars{color:var(--gold-ink);letter-spacing:2px;font-size:14px}
.hero .stat b{font-weight:700}
.hero .stat{font-size:14px;color:#3f5a57}
.hero .dot{color:var(--line)}
.arch{position:relative;background:linear-gradient(160deg,#e9e2d2,#dcd4c1);border-radius:220px 220px 26px 26px;aspect-ratio:4/4.4;display:flex;align-items:center;justify-content:center;overflow:hidden}
.arch img{width:100%;height:100%;object-fit:cover}
.pricetag{position:absolute;left:-8px;bottom:34px;background:var(--card);border-radius:16px;padding:14px 22px;box-shadow:var(--shadow)}
.pricetag .k{font-size:11px;letter-spacing:.22em;color:var(--muted);text-transform:uppercase}
.pricetag .v{font-family:var(--serif);font-size:30px;font-weight:600}
/* Monetary values stay stable and readable from the first paint. */
.live-price{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:'tnum' 1,'lnum' 1;display:inline-block;
  min-width:4.2ch;text-align:left}
.pricetag .v small{font-size:14px;color:var(--muted);font-family:var(--sans);font-weight:600}

/* premium homepage foundation */
.home-hero{position:relative;overflow:hidden;background:
  radial-gradient(circle at 78% 18%,rgba(198,164,78,.20),transparent 26%),
  radial-gradient(circle at 46% 66%,rgba(75,155,146,.18),transparent 32%),
  linear-gradient(135deg,#071211 0%,#102b29 55%,#071211 100%);
  color:var(--cream);padding:64px 0 54px}
.home-hero::after{content:'';position:absolute;inset:auto -10% -42% 34%;height:64%;background:radial-gradient(circle,rgba(255,253,248,.10),transparent 64%);pointer-events:none}
.home-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.03fr) minmax(360px,.86fr);gap:44px;align-items:center}
.home-hero-copy h1{font-family:var(--serif);font-size:clamp(48px,5.75vw,76px);line-height:.98;font-weight:700;max-width:9em;margin:14px 0 18px}
.home-hero-copy .lead{font-size:18px;line-height:1.58;color:#d2ddda;max-width:34em;margin-bottom:24px}
.home-hero .eyebrow{color:var(--brass-light);letter-spacing:.22em}
.home-hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.home-hero .btn-ghost{border-color:rgba(250,247,242,.24);color:var(--cream);background:rgba(255,255,255,.06)}
.home-hero .btn-ghost:hover{border-color:var(--gold);background:rgba(255,255,255,.1)}
.home-trust-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:24px;color:#cbd7d4;font-size:14px}
.home-trust-row .dot{color:rgba(250,247,242,.25)}
.home-trust-row .stat b{color:var(--cream)}
.home-device{border:1px solid rgba(250,247,242,.14);border-radius:28px;background:rgba(255,253,248,.08);box-shadow:0 34px 90px -48px #000;backdrop-filter:blur(16px);overflow:hidden}
.home-device-top{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(250,247,242,.12);font-size:13px;color:#cad9d6}
.home-device-top b{color:var(--brass-light);font-size:12px;text-transform:uppercase;letter-spacing:.16em}
.home-bike-scene{position:relative;min-height:315px;background:linear-gradient(155deg,#eee6d2,#c8d9d5 48%,var(--salt));display:grid;place-items:center;overflow:hidden}
.home-bike-scene img{width:100%;height:100%;object-fit:cover}
.home-price-chip{position:absolute;left:20px;bottom:20px;border-radius:16px;background:rgba(255,253,248,.94);color:var(--teal);padding:13px 18px;box-shadow:0 22px 45px rgba(13,42,40,.22)}
.home-price-chip span,.home-price-chip em{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-style:normal}
.home-price-chip b{display:block;font-size:27px;font-family:var(--serif);line-height:1.05}
.home-mini-flow{display:flex;align-items:center;gap:10px;padding:16px 20px;color:#a7b8b4;font-weight:800;font-size:13px}
.home-mini-flow span{border:1px solid rgba(250,247,242,.14);border-radius:999px;padding:7px 12px}
.home-mini-flow span.on{background:var(--gold);color:var(--cream);border-color:var(--gold)}
.home-mini-flow i{height:1px;flex:1;background:rgba(250,247,242,.14)}
.home-device-card{margin:0 20px 20px;border-radius:16px;padding:16px 18px;background:rgba(255,255,255,.08);border:1px solid rgba(250,247,242,.12)}
.home-device-card.ok{background:rgba(90,177,93,.13);border-color:rgba(90,177,93,.26)}
.home-device-card b{display:block;margin-bottom:3px}
.home-device-card span{color:#cbd7d4;font-size:13px;line-height:1.45}

.home-choice{background:linear-gradient(180deg,var(--white),#f4efe4)}
.home-choice-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:18px}
.home-choice-card,.platform-card{position:relative;display:block;border:1px solid var(--line);border-radius:22px;background:var(--card);padding:28px;color:var(--ink);box-shadow:0 18px 48px rgba(20,58,56,.06)}
.home-choice-card.primary{background:linear-gradient(145deg,var(--teal),#0f302d);color:var(--cream);border-color:transparent}
.home-choice-card:hover,.platform-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.home-card-kicker,.platform-card span{display:block;text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:var(--gold-ink);margin-bottom:14px}
.home-choice-card.primary .home-card-kicker{color:var(--brass-light)}
.home-choice-card h3,.platform-card h3{font-family:var(--serif);font-size:30px;line-height:1.05;margin-bottom:10px}
.home-choice-card p,.platform-card p{color:var(--muted);font-size:14.5px;line-height:1.55;min-height:68px}
.home-choice-card.primary p{color:#d6e1df}
.home-choice-card div:last-child{display:flex;align-items:baseline;gap:8px;margin-top:18px}
.home-choice-card b{font-family:var(--serif);font-size:27px}
.home-choice-card em{font-style:normal;color:var(--muted);font-size:13px}
.home-choice-card.primary em{color:#c7d5d2}
/* Home doors (27 Oct 2026): the Bikes door holds one link per island. */
.home-door .home-door-links{display:grid;gap:10px;margin-top:16px}
.home-door-links a{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(250,247,242,.16);color:var(--cream);transition:background .18s}
.home-door-links a:hover{background:rgba(255,255,255,.14)}
.home-door-links b{display:block;font-family:var(--sans);font-size:15.5px;font-weight:700}
.home-door-links em{display:block;font-style:normal;font-size:13px;color:#c7d5d2}
.home-door-links strong{font-family:var(--serif);font-size:21px;white-space:nowrap;color:var(--brass-light)}
.home-door-links small{font-family:var(--sans);font-size:12.5px;font-weight:500;color:#c7d5d2}
.home-choice-card.home-door div.home-door-links{display:grid;margin-top:16px}
.home-flow-grid.home-flow-3{grid-template-columns:repeat(3,1fr)}

.home-live{background:var(--white);padding-top:64px;padding-bottom:64px}
.home-live-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(420px,1fr);gap:28px;align-items:stretch}
.home-live-copy{border-radius:28px;background:linear-gradient(145deg,var(--salt),var(--white));border:1px solid var(--line);padding:34px;display:flex;flex-direction:column;justify-content:center}
.home-live-copy h2{font-family:var(--serif);font-size:clamp(34px,4.4vw,56px);line-height:1.02;margin-bottom:14px;color:var(--ink)}
.home-live-copy p{color:var(--muted);font-size:16px;line-height:1.65;max-width:38em}
.home-live-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.home-live-pills span{border:1px solid rgba(198,164,78,.32);background:rgba(198,164,78,.10);border-radius:999px;padding:9px 13px;color:#77611f;font-size:13px;font-weight:800}
.home-video-card{border-radius:28px;overflow:hidden;border:1px solid rgba(20,58,56,.16);background:var(--teal);box-shadow:0 30px 70px rgba(20,58,56,.14)}
.home-video-only{aspect-ratio:16/7;max-height:620px}
.home-video-only video,.home-video-only iframe,.home-video-only>a,.home-video-only img{display:block;width:100%;height:100%;border:0;object-fit:cover}
.home-video-link{position:relative;background:var(--teal)}
.home-video-link::after{content:'';position:absolute;inset:0;background:rgba(10,48,45,.18)}
.home-video-link>span{position:absolute;z-index:1;left:50%;top:50%;translate:-50% -50%;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:rgba(255,253,248,.94);color:var(--teal);font-size:23px;padding-left:4px;box-shadow:0 14px 34px rgba(10,48,45,.24)}
.home-video-media{position:relative;min-height:360px;background:linear-gradient(140deg,#e9f4f4,var(--white));display:grid;place-items:center;overflow:hidden}
.home-video-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,18,17,0),rgba(7,18,17,.22));pointer-events:none}
.home-video-media img{width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.98) contrast(1.02)}
.home-play{position:absolute;z-index:1;width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,253,248,.92);color:var(--teal);font-size:0;box-shadow:0 20px 40px rgba(7,18,17,.24)}
.home-play::before{content:'';margin-left:5px;border-left:18px solid var(--teal);border-top:12px solid transparent;border-bottom:12px solid transparent}

.home-platform{background:#f2eadb}
.platform-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.platform-card .ic{width:48px;height:48px;border-radius:14px;background:rgba(198,164,78,.14);display:grid;place-items:center;color:var(--gold-ink);margin-bottom:18px}
.platform-card .ic svg{width:25px;height:25px}
.platform-card p{min-height:auto}

.home-flow{border-radius:32px;background:var(--teal);color:var(--cream);padding:56px 46px}
.home-flow .sec-head h2,.home-flow .sec-head h1{color:var(--cream)}
.home-flow .sec-head p{color:#c7d5d2}
.home-flow .eyebrow{color:var(--brass-light)}
.home-flow-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.home-flow-step{border:1px solid rgba(250,247,242,.14);border-radius:20px;padding:22px;background:rgba(255,255,255,.055)}
.home-flow-step .n{font-family:var(--serif);font-size:38px;color:var(--brass-light);line-height:1;font-weight:700}
.home-flow-step h3{font-family:var(--serif);font-size:23px;margin:14px 0 8px}
.home-flow-step p{color:#c5d4d1;font-size:14px;line-height:1.55}

.home-app-panel{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:stretch;border:1px solid var(--line);border-radius:28px;background:linear-gradient(145deg,var(--white),#f0eadc);padding:34px;box-shadow:0 24px 60px rgba(20,58,56,.08)}
.home-app-panel .serif.big{font-size:42px;line-height:1.04;margin:0 0 12px}
.home-app-panel p{color:var(--muted);font-size:16px;line-height:1.65;max-width:44em}
.home-phone-card{border-radius:26px;background:linear-gradient(160deg,#0d2a28,#173f3b);padding:18px;color:var(--cream);box-shadow:0 26px 60px rgba(13,42,40,.24)}
.home-phone-top{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:var(--brass-light);font-weight:800;margin-bottom:18px}
.home-notice{border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.10);padding:16px;margin-bottom:12px}
.home-notice b{display:block;margin-bottom:4px}
.home-notice span{display:block;color:#cddbd8;font-size:13px;line-height:1.45}
.home-notice.muted{opacity:.72}

/* offer strip */
.offer{background:var(--teal);color:var(--cream);text-align:center;font-size:14.5px;padding:13px 24px}
.offer b{color:var(--brass-light)}

/* section heading */
.sec{padding:74px 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px;gap:20px;flex-wrap:wrap}
.sec-head h2,.sec-head h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,4vw,50px);line-height:1.02}
.sec-head p{color:var(--muted);max-width:32em;margin-top:8px}

/* fleet */
.fleet-page,.maafushi-page{background:var(--cream)}
.fleet-hero,.maafushi-hero{display:grid;grid-template-columns:minmax(0,.96fr) minmax(360px,.86fr);gap:34px;align-items:center;margin-top:26px;padding:48px;border-radius:32px;background:linear-gradient(135deg,#0d2a28 0%,#143a38 54%,#17463f 100%);color:var(--cream);overflow:hidden;box-shadow:0 28px 80px -46px rgba(13,42,40,.75)}
.fleet-hero-copy h1,.maafushi-copy h1{font-family:var(--serif);font-size:clamp(42px,5.4vw,72px);font-weight:700;line-height:.98;max-width:9.5em;margin:14px 0 17px;letter-spacing:0}
.fleet-hero-copy p,.maafushi-copy p{color:#d2ddda;font-size:18px;line-height:1.62;max-width:37em;margin-bottom:24px}
.fleet-hero .eyebrow,.maafushi-hero .eyebrow{color:var(--brass-light);letter-spacing:.2em}
.fleet-hero .btn-ghost,.maafushi-hero .btn-ghost{border-color:rgba(250,247,242,.24);color:var(--cream);background:rgba(255,255,255,.06)}
.fleet-hero .btn-ghost:hover,.maafushi-hero .btn-ghost:hover{border-color:var(--gold);background:rgba(255,255,255,.1)}
.fleet-hero-card,.maafushi-media{border-radius:26px;overflow:hidden;background:var(--salt);border:1px solid rgba(250,247,242,.16);box-shadow:0 28px 70px rgba(0,0,0,.18)}
.fleet-hero-card img,.maafushi-media img{width:100%;height:360px;object-fit:cover;object-position:center}
.fleet-hero-info{padding:20px 22px;background:rgba(255,253,248,.97);color:var(--ink)}
.fleet-hero-info span,.fleet-hero-info em{display:block;color:var(--muted);font-size:13px;line-height:1.35}
.fleet-hero-info b{display:block;font-family:var(--serif);font-size:30px;line-height:1.05;margin:6px 0}
.fleet-snapshot{padding-top:46px;padding-bottom:38px}
.fleet-snapshot-grid,.fleet-expect-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.fleet-snapshot-grid>div,.fleet-expect-grid>div{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:0 18px 48px rgba(20,58,56,.06)}
.fleet-snapshot-grid span,.fleet-expect-grid span{display:block;text-transform:uppercase;letter-spacing:.15em;font-size:11px;font-weight:800;color:var(--gold-ink);margin-bottom:10px}
.fleet-snapshot-grid b{display:block;font-family:var(--serif);font-size:36px;color:var(--teal);line-height:1;margin-bottom:12px}
.fleet-snapshot-grid p,.fleet-expect-grid p{color:var(--muted);font-size:14.5px;line-height:1.55}
.fleet-expect-grid h3{font-family:var(--serif);font-size:26px;line-height:1.05;margin-bottom:10px}
.fleet-models{padding-top:38px}
.maafushi-hero{grid-template-columns:minmax(360px,.9fr) minmax(0,.96fr);background:linear-gradient(135deg,#143a38 0%,#0d2a28 58%,#17463f 100%)}
.maafushi-media{display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,rgba(255,253,248,.96),rgba(239,231,214,.88) 48%,rgba(15,48,45,.20) 100%)}
.maafushi-media img{height:430px;padding:0;object-fit:cover;filter:none}
.maafushi-price-row{display:inline-grid;grid-template-columns:auto auto;gap:4px 10px;align-items:end;margin:2px 0 16px;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(250,247,242,.14);padding:16px 18px}
.maafushi-price-row span{grid-column:1/-1;color:var(--brass-light);text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800}
.maafushi-price-row b{font-family:var(--serif);font-size:38px;line-height:1;color:var(--cream)}
.maafushi-price-row em{font-style:normal;color:#cbd7d4;font-size:14px;margin-bottom:3px}
.maafushi-packages{padding-top:54px}
.maafushi-package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.maafushi-package-card{display:flex;min-height:270px;flex-direction:column;border:1px solid rgba(198,164,78,.18);border-radius:20px;padding:20px;color:var(--cream);background:linear-gradient(165deg,var(--teal) 0%,var(--teal-2) 100%);box-shadow:0 28px 70px -44px rgba(7,18,17,.8);transition:.18s}
.maafushi-package-card:hover{transform:translateY(-3px);border-color:rgba(198,164,78,.42);box-shadow:0 30px 70px -36px rgba(7,18,17,.9)}
.maafushi-package-card.featured{background:linear-gradient(165deg,#17463f 0%,var(--teal-2) 100%);border-color:rgba(198,164,78,.66)}
.maafushi-package-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.maafushi-package-head span{display:block;color:#f3f1ec;font-weight:800;font-size:20px;line-height:1.1}
.maafushi-package-head strong{display:inline-flex;border-radius:999px;background:var(--gold);color:var(--teal-2);padding:5px 10px;font-size:10px;line-height:1;text-transform:uppercase;letter-spacing:.04em}
.maafushi-package-price{display:flex;align-items:flex-end;gap:7px;margin-bottom:15px}
.maafushi-package-price b{display:block;font-family:var(--sans);font-size:42px;font-weight:800;letter-spacing:-.02em;line-height:.92;color:#f5f4f0}
.maafushi-package-price em{font-style:normal;color:#aeb5ba;font-weight:800;font-size:15px;margin-bottom:3px}
.maafushi-package-card p{color:#b9bfc4;font-size:14px;line-height:1.45;min-height:24px;margin-bottom:13px}
.maafushi-package-card ul{list-style:none;display:grid;gap:8px;border-top:1px solid rgba(250,247,242,.10);padding-top:16px;margin-bottom:18px}
.maafushi-package-card li{position:relative;color:#f2f0eb;font-weight:800;font-size:13.5px;line-height:1.2;padding-left:28px}
.maafushi-package-card li::before{content:'✓';position:absolute;left:0;top:-2px;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--teal-2);font-weight:900;font-size:13px}
.maafushi-package-cta{margin-top:auto;border-radius:15px;border:1px solid rgba(198,164,78,.58);background:rgba(198,164,78,.10);color:#ead89c;text-align:center;font-weight:900;padding:13px 14px}
.maafushi-package-card.featured .maafushi-package-cta{background:var(--gold);color:var(--teal-2);border-color:var(--gold)}
.maafushi-note{text-align:center;margin-top:26px;color:var(--muted);font-size:14px}
.fleet-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.bike{background:var(--card);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;transition:.2s}
.bike:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.bike .pic{background:linear-gradient(160deg,#ece5d5,#ded6c3);aspect-ratio:16/10;display:flex;align-items:center;justify-content:center}
.bike .pic img{width:100%;height:100%;object-fit:cover}
.bike .body{padding:22px 24px 24px}
.bike .top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.bike h3{font-family:var(--serif);font-size:27px;font-weight:600}
.bike .price{text-align:right}
.bike .price .m{font-family:var(--serif);font-size:24px;font-weight:600}
.bike .price .u{font-size:12.5px;color:var(--muted)}
.bike .specs{color:var(--muted);font-size:14px;margin:12px 0 20px}
.bike .reserve{display:flex;justify-content:flex-end}
.fleet-note{text-align:center;color:var(--muted);margin-top:26px;font-style:italic;font-family:var(--serif);font-size:18px}

/* steps */
.steps{background:var(--teal);color:var(--cream);border-radius:34px;padding:60px 20px}
.steps .sec-head h2,.steps .sec-head h1{color:var(--cream)}
/* --gold-ink is darkened for cream backgrounds; on this teal panel it drops
   to 2.18:1. The brighter gold reads clearly against dark. */
.steps .eyebrow{color:var(--brass-light)}
.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
.step .n{font-family:var(--serif);font-size:52px;color:var(--brass-light);font-weight:600;line-height:1}
.step h3{font-family:var(--serif);font-size:26px;margin:12px 0 8px;font-weight:600}
.step p{color:#b7c4c2;font-size:15px}

/* features */
.feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.feat{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 22px}
.feat .ic{width:40px;height:40px;border-radius:11px;background:rgba(198,164,78,.16);display:grid;place-items:center;color:var(--gold-ink);margin-bottom:14px}
.feat h3{font-family:var(--serif);font-size:22px;font-weight:600;margin-bottom:6px}
.feat p{color:var(--muted);font-size:14px}

/* reviews */
/* Three buttons that wrap cleanly on a phone instead of overflowing. */
.bookrow{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.tst-few{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),420px));justify-content:center}
.tst-dup{display:contents}
.tst{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px}
/* Reviews scroll past continuously so the page feels live. The track carries
   the set twice and travels exactly half its width, so it loops seamlessly. */
.tst-marquee{overflow:hidden;position:relative;
  /* Fade the edges so cards enter and leave instead of being chopped off. */
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
/* Spacing is a margin on each card, NOT flex `gap`. Gap sits only BETWEEN
   items, so N cards have N-1 gaps and the two halves come out different widths
   — which showed as an 11px jump on every loop. A margin belongs to the card,
   so each half is exactly the same width and translateX(-50%) lands perfectly. */
.tst-track{display:flex;width:max-content;padding:4px 0;
  animation-name:tstScroll;animation-timing-function:linear;animation-iteration-count:infinite}
.tst-track .tst{width:340px;flex:0 0 340px;margin-right:22px}
/* Stop when someone wants to read one. */
.tst-marquee:hover .tst-track,.tst-marquee:focus-within .tst-track{animation-play-state:paused}
@keyframes tstScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
/* Continuous motion makes some people ill — give them a track they control. */
@media(prefers-reduced-motion:reduce){
  .live-price.settled{animation:none}
  .tst-track{animation:none;width:auto;overflow-x:auto;scroll-snap-type:x mandatory}
  .tst-marquee{-webkit-mask-image:none;mask-image:none;overflow-x:auto}
  .tst-track .tst{scroll-snap-align:start}
}
.tst .stars{color:var(--gold-ink);letter-spacing:2px;font-size:13px;margin-bottom:12px}
.tst blockquote{font-family:var(--serif);font-size:20px;line-height:1.35;font-weight:500}
.tst .by{margin-top:16px;font-size:13.5px;color:var(--muted)}
.tst .by b{color:var(--ink)}
/* Says where a review came from. Google requires their reviews be shown as
   theirs; it is also just true, which is the standard everything on this
   site is held to. */
.tst-src{opacity:.75}
.tst-src a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* faq */
.faq-list{display:grid;gap:12px;max-width:820px}
.faq-item{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px 24px;cursor:pointer}
.faq-item summary{font-size:18px;font-weight:600;display:flex;justify-content:space-between;gap:12px;font-family:var(--sans);list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item p{color:var(--muted);margin-top:10px;font-size:15px}
.faq-item .chev{color:var(--gold-ink);transition:.2s}
.faq-item[open] .chev{transform:rotate(180deg)}

/* footer */
.footer{background:var(--teal);color:var(--cream);padding:66px 0 34px;margin-top:20px}
.footer .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:34px}
.footer .brandcol .logo{color:var(--cream)}
.footer .tag{font-family:var(--serif);color:var(--brass-light);font-size:20px;margin:14px 0 8px}
.footer .brandcol p{color:#b7c4c2;font-size:14px;max-width:26em}
.footer h4{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-light);margin-bottom:16px}
.footer ul{list-style:none;display:grid;gap:11px}
.footer ul a,.footer ul button{color:#cfd9d7;font-size:14.5px;background:none;border:0;cursor:pointer;text-align:left;font-family:var(--sans);padding:0}
.footer ul a:hover,.footer ul button:hover{color:var(--cream)}
/* Finger-sized footer links (44px rows) on touch screens and phones; the spacing comes from the rows, not the gap. */
@media (pointer:coarse),(max-width:680px){.footer ul{gap:0}.footer ul a,.footer ul button{display:inline-flex;align-items:center;min-height:44px}}
.footer .bottom{border-top:1px solid rgba(250,247,242,.14);margin-top:44px;padding-top:22px;display:flex;justify-content:space-between;color:#9fb0ad;font-size:13px;gap:12px;flex-wrap:wrap}

/* modal */
.modal-back{position:fixed;inset:0;z-index:100;background:rgba(10,34,32,.55);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:34px 16px;overflow:auto}
.modal{background:var(--cream);border-radius:22px;width:100%;max-width:560px;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);overflow:hidden;margin:auto}
.modal.dark{background:radial-gradient(120% 120% at 50% 0%, #16463f 0%, #0d2a28 70%);color:var(--cream)}
.modal .head{display:flex;align-items:center;justify-content:space-between;padding:22px 26px;border-bottom:1px solid var(--line)}
.modal.dark .head{border-color:rgba(198,164,78,.24)}
.modal .head h3{font-family:var(--serif);font-size:26px;font-weight:600}
.modal .x{background:none;border:0;font-size:24px;cursor:pointer;color:inherit;opacity:.6;line-height:1}
.modal .body{padding:24px 26px}
.field{display:block;margin-bottom:15px}
.field>span{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.modal.dark .field>span{color:#b7c4c2}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:15px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink)}
.modal.dark .field input{background:rgba(250,247,242,.08);border-color:rgba(198,164,78,.3);color:var(--cream)}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--gold)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.hint{font-size:12.5px;color:var(--muted);margin-top:5px}
/* Licence-type note on the booking form — reactive (js toggles .warn), not
   permanent fine print, so the IDP requirement is actually seen at the
   moment someone picks "Foreign licence", not just written in small print
   nobody reads. .warn uses the same gold-ink already proven AA-compliant on
   cream, kept deliberately off red/danger colours — this is a heads-up on a
   marketing page, not the POS's handover-blocking warning. */
.lic-note{font-size:12.5px;color:var(--muted);margin:-4px 0 10px;padding:8px 11px;border-radius:8px}
.lic-note.warn{background:rgba(126,99,24,.09);color:var(--gold-ink);font-weight:600}
/* Persistent "Continue" failure right next to the map, replacing a toast
   that was the only sign the pin hadn't actually been dropped. */
.bkcoords-err{color:var(--gold-ink)!important;font-weight:600}
.uploads{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.upl{border:1.5px dashed var(--line);border-radius:14px;aspect-ratio:4/3;display:grid;place-items:center;text-align:center;color:var(--muted);cursor:pointer;overflow:hidden;position:relative;background:var(--white)}
.upl img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.upl .cap{position:absolute;bottom:6px;left:6px;right:6px;font-size:11px;background:rgba(20,58,56,.7);color:#fff;padding:3px 6px;border-radius:7px}
.upl.req::after{content:'required';position:absolute;top:6px;right:6px;font-size:10px;background:var(--gold);color:var(--teal);padding:2px 7px;border-radius:6px;font-weight:700}
.reqmark{color:#c0562f}
.notebox{background:rgba(198,164,78,.12);border:1px solid rgba(198,164,78,.3);border-radius:12px;padding:12px 14px;font-size:13px;color:#5a5230;margin-top:6px}
.modal.dark .notebox{color:#e9dcb6}
.availability-panel,.fastpay{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:rgba(20,58,56,.035);font-size:13px;color:var(--muted);margin:14px 0}
.availability-panel b,.fastpay b{display:block;color:var(--ink);font-size:13.5px;margin-bottom:4px}
.availability-panel span,.fastpay span{display:block;line-height:1.45}
.availability-panel.ok{background:#eaf5ed;border-color:#cfe8d6;color:#355d43}
.availability-panel.ok b{color:#1c7a4a}
.availability-panel.warn{background:#fff2dd;border-color:#eacb8d;color:#735216}
.availability-panel.warn b{color:#9a6a12}
.availability-panel.manual,.availability-panel.checking{background:#f8f2e6;border-color:#e7d8b7;color:#665b40}
.availability-panel .manual-request{margin-top:10px}
.avail-strip{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;background:rgba(20,58,56,.035);padding:10px 12px;margin-top:12px;color:var(--muted);font-size:12.5px}
.avail-strip .avail{margin:0;flex:0 0 auto}
.fastpay{margin-top:-2px;background:var(--white)}
.pay-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:8px 0 12px}
.pay-option{border:1px solid var(--line);background:var(--white);border-radius:12px;padding:12px 13px;text-align:left;cursor:pointer;color:var(--muted);font:inherit}
.pay-option b{display:block;color:var(--ink);font-size:13.5px;margin-bottom:4px}
.pay-option span{display:block;font-size:12.5px;line-height:1.4}
.pay-option.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(198,164,78,.18);background:#fff9e8}
.staff-line{text-align:center;font-size:13.5px;color:var(--muted);margin-top:16px}
.staff-line b{color:var(--ink);cursor:pointer;border-bottom:1px solid var(--gold)}
.modal.dark .staff-line{color:#9fb0ad}.modal.dark .staff-line b{color:var(--cream)}

/* toast */
.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--teal);color:var(--cream);padding:13px 20px;border-radius:12px;font-size:14.5px;opacity:0;pointer-events:none;transition:.25s;z-index:200;max-width:90%;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.availability{left:auto;right:24px;bottom:24px;max-width:390px;padding:16px 18px 16px 46px;text-align:left;border:1px solid rgba(198,164,78,.5);box-shadow:0 18px 48px rgba(13,42,40,.22);transform:translateX(24px);background:var(--teal)}
.toast.availability::before{content:'✓';position:absolute;left:17px;top:16px;color:var(--brass-light);font-weight:800}
.toast.availability.show{transform:translateX(0)}

/* instagram */
.ig-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.ig{aspect-ratio:1;border-radius:16px;background:linear-gradient(150deg,#dcd4c1,#cfc6b0);display:grid;place-items:center;color:var(--muted);font-family:var(--serif);font-size:20px}

/* routing / pages */
.page{animation:fade .5s ease both}
.fade{animation:floatUp .6s ease both}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes floatUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.nav a.act{color:var(--gold-ink);opacity:1}
.pagetop{padding-top:56px}
.center{text-align:center}
.serif.big{font-family:var(--serif);font-size:clamp(26px,3vw,34px);font-weight:600;line-height:1.1}
h2.serif.center{font-family:var(--serif);font-weight:600;font-size:clamp(34px,4.4vw,52px);text-align:center;margin:6px 0}
.fleet-grid.big .bike .pic{aspect-ratio:16/9}
.speclist{list-style:none;margin:14px 0 18px;display:grid;gap:8px}
.speclist li{position:relative;padding-left:22px;color:#3f5a57;font-size:14.5px}
.speclist li::before{content:'◆';position:absolute;left:0;color:var(--brass-light);font-size:10px;top:3px}

.split{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.panel{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:30px}
.muted-panel{background:rgba(20,58,56,.04)}
.ticklist,.ticklist li{list-style:none}
.ticklist{display:grid;gap:11px;margin-top:16px}
.ticklist li{position:relative;padding-left:26px;font-size:15px}
.ticklist li::before{content:'✓';position:absolute;left:0;color:var(--gold-ink);font-weight:700}
.arch.small{aspect-ratio:1;border-radius:180px 180px 22px 22px}

.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ccard{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;transition:.18s}
.ccard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.ccard .cv{font-family:var(--serif);font-size:20px;font-weight:600;margin-top:6px}

/* services / about / contact premium pages */
.services-page,.about-page,.contact-page{background:linear-gradient(180deg,var(--white) 0%,var(--salt) 58%,var(--white) 100%)}
.services-hero,.about-hero,.contact-hero{display:grid;gap:34px;align-items:center;margin-top:26px}
.services-hero{grid-template-columns:minmax(0,.98fr) minmax(350px,.72fr);border-radius:32px;padding:48px;background:linear-gradient(135deg,#0d2a28 0%,#143a38 58%,#17463f 100%);color:var(--cream);box-shadow:0 28px 80px -46px rgba(13,42,40,.75);overflow:hidden}
.services-hero .eyebrow,.contact-hero .eyebrow{color:var(--brass-light)}
.services-hero-copy h1,.contact-hero h1,.about-copy h1{font-family:var(--serif);font-size:clamp(42px,5.2vw,70px);line-height:.98;font-weight:700;letter-spacing:0;margin:14px 0 17px}
.services-hero-copy p,.contact-hero p,.about-copy p{font-size:18px;line-height:1.62;max-width:38em}
.services-hero-copy p,.services-flow-step em{color:#d2ddda}
.services-hero .btn-ghost,.contact-hero .btn-ghost{border-color:rgba(250,247,242,.24);color:var(--cream);background:rgba(255,255,255,.06)}
.services-flow-card{display:grid;gap:12px;border:1px solid rgba(250,247,242,.14);border-radius:24px;background:rgba(255,253,248,.08);padding:18px;backdrop-filter:blur(12px)}
.services-flow-step{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start;border-radius:18px;padding:16px;background:rgba(255,255,255,.07)}
.services-flow-step b{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--brass-light);color:var(--lagoon);font-family:var(--serif);font-size:22px}
.services-flow-step strong,.services-flow-step em{display:block}
.services-flow-step strong{font-size:18px;margin-bottom:4px}
.services-flow-step em{font-style:normal;font-size:14px;line-height:1.45}
.service-included{padding-bottom:42px}
.service-included-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.service-card,.about-value,.contact-card-pro{border:1px solid var(--line);background:var(--card);box-shadow:0 18px 48px rgba(20,58,56,.06)}
.service-card{border-radius:20px;padding:26px 22px}
.service-card .ic,.about-value .ic{width:46px;height:46px;border-radius:14px;background:rgba(198,164,78,.14);display:grid;place-items:center;color:var(--gold-ink);margin-bottom:16px}
.service-card .ic svg,.about-value .ic svg{width:24px;height:24px}
.service-card h3,.about-value h3{font-family:var(--serif);font-size:25px;line-height:1.08;margin-bottom:8px}
.service-card p,.about-value p,.service-channel-band p,.service-note-panel p{color:var(--muted);font-size:14.5px;line-height:1.58}
.service-channel-band{display:grid;grid-template-columns:minmax(0,.72fr) minmax(420px,1fr);gap:28px;align-items:center;border-radius:24px;background:var(--white);border:1px solid var(--line-c);padding:34px;margin-bottom:24px}
.service-channel-band .serif.big{font-size:42px;margin:8px 0 10px}
.service-channel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.service-channel-card{display:flex;min-height:190px;flex-direction:column;border:1px solid rgba(20,58,56,.14);border-radius:18px;background:var(--white);padding:20px;transition:.18s}
.service-channel-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.service-channel-card span{font-weight:800;font-size:17px;color:var(--ink)}
.service-channel-card p{margin:10px 0 18px}
.service-channel-card b{margin-top:auto;color:var(--gold-ink)}
.service-note-panel{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:start;border:1px solid rgba(198,164,78,.32);border-radius:20px;background:#fff9e8;padding:22px 24px;margin-bottom:70px}
.service-note-panel b{font-family:var(--serif);font-size:24px;line-height:1.05}

.about-hero{grid-template-columns:minmax(0,.92fr) minmax(360px,.86fr);padding:48px 0 20px}
.about-copy p{color:#48635f;margin-bottom:24px}
.about-media{border-radius:220px 220px 26px 26px;aspect-ratio:4/4.5;overflow:hidden;background:linear-gradient(160deg,#e9e2d2,#dcd4c1);box-shadow:0 30px 80px -48px rgba(13,42,40,.55)}
.about-media img{width:100%;height:100%;object-fit:cover;padding:28px;filter:drop-shadow(0 24px 22px rgba(13,42,40,.16))}
.about-mission{border-radius:30px;background:var(--teal);color:var(--cream);padding:42px 46px;margin:24px 0 12px}
.about-mission span{display:block;text-transform:uppercase;letter-spacing:.18em;color:var(--brass-light);font-size:12px;font-weight:800;margin-bottom:12px}
.about-mission h2{font-family:var(--serif);font-size:clamp(34px,4.6vw,54px);line-height:1.05;font-weight:700;max-width:18em}
.about-values-section{padding-top:58px}
.about-values{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.about-value{border-radius:20px;padding:24px 22px}

.contact-hero{grid-template-columns:minmax(0,.82fr) minmax(430px,1fr);border-radius:32px;padding:44px;background:linear-gradient(135deg,#0d2a28,#17463f);color:var(--cream);box-shadow:0 28px 80px -46px rgba(13,42,40,.75)}
.contact-hero p{color:#d2ddda}
.contact-card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.contact-card-pro{display:flex;min-height:140px;flex-direction:column;border-color:rgba(250,247,242,.14);border-radius:18px;background:rgba(255,253,248,.09);color:var(--cream);padding:18px;transition:.18s}
.contact-card-pro:hover{transform:translateY(-2px);background:rgba(255,253,248,.13)}
.contact-card-pro span{font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--brass-light);font-weight:800}
.contact-card-pro b{display:block;font-size:16px;line-height:1.35;margin:10px 0;color:#f5f1e8;overflow-wrap:anywhere}
.contact-card-pro em{font-style:normal;margin-top:auto;color:#cbd7d4;font-size:13px;font-weight:800}
.contact-panel-grid{display:grid;grid-template-columns:minmax(340px,.72fr) minmax(0,1fr);gap:24px;margin:34px 0 70px;align-items:start}
.contact-form-panel,.contact-faq-panel{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:0 18px 48px rgba(20,58,56,.06)}
.contact-form-panel .serif.big,.contact-faq-panel .serif.big{margin:8px 0 20px}
.contact-faq-panel .faq-list{max-width:none}

/* booking wizard */
.wrap.narrow{max-width:640px}
.book .wrap.narrow{max-width:880px}
.book.book-premium{padding:0;background:var(--salt)}
.book.book-premium .wrap.narrow{max-width:1280px;padding:0 24px}
.bookbar.bookbar-hidden{display:none}
.steps-dots{display:flex;align-items:center;justify-content:center;gap:0;margin:20px 0 22px}
.steps-dots span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:#e6ddc9;color:var(--muted)}
.steps-dots span.on{background:var(--teal);color:var(--cream)}
.steps-dots i{width:40px;height:2px;background:#e0d6c0;display:block}
.booking-title{text-align:center}
.booking-title h2{margin-top:4px}
.booking-steps{gap:8px}
.booking-steps span{width:auto;min-width:118px;height:auto;min-height:46px;border-radius:999px;padding:7px 12px;grid-template-columns:24px minmax(0,1fr);gap:7px;text-align:left}
.booking-steps span b{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.55);font-size:12px}
.booking-steps span em{font-style:normal;font-size:11.5px;font-weight:800;line-height:1.12;letter-spacing:.01em}
.booking-steps i{width:22px}
.wiz{padding:30px}
.book .wiz.booking-step-1{padding:0;overflow:hidden;border-radius:24px;background:var(--white)}
.book-premium .wiz.booking-step-1{border-radius:24px;border:1px solid rgba(20,58,56,.1);box-shadow:0 28px 80px -44px rgba(13,42,40,.45)}
.booking-appbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:116px;padding:30px 48px;background:linear-gradient(135deg,#0d2a28,#17443f);color:var(--cream);background-size:cover;background-position:center}
.book-premium .booking-appbar{border-radius:23px 23px 0 0}
.booking-appbar.booking-appbar-image{background-size:100% 100%}
.booking-appbar.booking-appbar-image .booking-appbrand,.booking-appbar.booking-appbar-image p{opacity:0}
.booking-appbrand{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}
.booking-appbrand .mark{width:32px;height:auto;grid-row:1/3}
.booking-appbrand span{font-family:var(--serif);font-size:25px;font-weight:700;letter-spacing:.16em;line-height:1}
.booking-appbrand em{grid-column:2;font-style:normal;color:var(--brass-light);font-size:14px;letter-spacing:.42em;text-transform:uppercase;line-height:1;margin-top:8px}
.booking-appbar p{text-align:right;text-transform:uppercase;letter-spacing:.18em;font-size:13px;font-weight:700;line-height:1.7;color:#f2ebdc}
.booking-appbar-meta{display:grid;justify-items:end;gap:9px}
.booking-packages-link{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border:1px solid rgba(250,247,242,.3);border-radius:8px;color:var(--cream);font-size:12px;font-weight:800;background:rgba(255,255,255,.07);transition:background .18s,border-color .18s}
.booking-packages-link:hover{background:rgba(255,255,255,.14);border-color:rgba(198,164,78,.72)}
.booking-exit{padding:12px 48px 0;text-align:right}
.booking-exit a{color:var(--teal);font-size:13px;font-weight:700}
@media(max-width:430px){
  .booking-exit{padding:12px 20px 0}
  .book-premium .booking-appbar:not(.booking-appbar-image){padding:20px;gap:12px}
  .booking-appbar:not(.booking-appbar-image) .booking-appbrand span{font-size:18px;letter-spacing:0}
  .booking-appbar:not(.booking-appbar-image) .booking-appbrand em{font-size:10px;letter-spacing:0}
  .booking-appbar:not(.booking-appbar-image) p{font-size:10px;letter-spacing:0}
  .booking-appbar:not(.booking-appbar-image) .booking-packages-link{font-size:10px;padding:6px 8px}
}
.book-premium .booking-steps{display:flex;align-items:flex-start;justify-content:center;gap:22px;margin:28px 48px 24px}
.book-premium .booking-steps span{width:auto;min-width:118px;min-height:72px;flex:1 1 0;border:0;background:transparent;color:#687672;padding:0;display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;gap:10px}
.book-premium .booking-steps span:not(.on){background:transparent}
.book-premium .booking-steps span.on{background:transparent;color:var(--ink);border-color:transparent}
.book-premium .booking-steps span b{width:50px;height:50px;background:var(--white);border:2px solid rgba(20,58,56,.24);color:#687672;font-size:19px;box-shadow:0 2px 8px rgba(13,42,40,.04)}
.book-premium .booking-steps span.on b{background:var(--gold);color:var(--cream)}
.book-premium .booking-steps span em{font-size:17px;font-weight:700;letter-spacing:0;line-height:1.15}
.book-premium .booking-steps i{width:116px;background:rgba(126,99,24,.38);margin-top:25px;flex:0 0 116px}
.wiz .serif.big{margin-bottom:18px}
.booking-copy{margin-bottom:16px}
.booking-copy .serif.big{margin-bottom:6px}
.booking-copy p{color:var(--muted);font-size:14px;line-height:1.5;max-width:42em}
.booking-section-copy{padding:26px 32px 0;margin-bottom:12px}
.booking-section-number{display:block;margin-bottom:7px;color:var(--gold-ink);font-size:11px;font-weight:900;letter-spacing:.18em}
.booking-ride-hero{position:relative;display:grid;grid-template-columns:minmax(0,.86fr) minmax(270px,1fr);gap:18px;align-items:center;padding:34px 38px 24px;overflow:hidden;background:linear-gradient(110deg,var(--white) 0%,var(--white) 40%,#e8f8fb 100%)}
.booking-ride-hero-premium{padding:36px 48px 26px;grid-template-columns:minmax(260px,.88fr) minmax(340px,1.04fr);gap:0;background:linear-gradient(90deg,var(--white) 0%,var(--white) 42%,#dff6fb 76%,var(--white) 100%)}
.booking-ride-hero::after{content:'';position:absolute;inset:auto -16% -38% 40%;height:78%;background:radial-gradient(circle,rgba(198,164,78,.13),rgba(198,164,78,0) 66%);pointer-events:none}
.booking-ride-hero-premium::after{display:none}
.booking-ride-copy{position:relative;z-index:1}
.ride-kicker{font-size:12px;font-weight:800;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:10px}
.booking-ride-copy :is(h1,h3){font-size:72px;line-height:.95;margin:0 0 14px;color:var(--teal)}
.booking-ride-hero-premium .booking-ride-copy :is(h1,h3){font-size:70px;letter-spacing:0;max-width:4.5ch}
.booking-ride-copy p{font-size:20px;line-height:1.35;color:#596765;max-width:14em;margin:0 0 20px}
.booking-ride-copy strong{display:inline-flex;border-radius:12px;background:var(--gold);color:var(--cream);font-size:25px;line-height:1;padding:18px 22px;box-shadow:0 18px 32px rgba(126,99,24,.18)}
.booking-ride-media{position:relative;z-index:1;min-height:280px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(20,58,56,.08);border-radius:22px;background:rgba(255,253,248,.62);overflow:hidden;box-shadow:0 24px 48px rgba(20,58,56,.08)}
.booking-ride-scene{min-height:386px;border:0;border-radius:0;background-color:#e8f8fb;background-size:contain;background-repeat:no-repeat;background-position:center;box-shadow:none;align-self:stretch;margin:-22px -48px -12px -20px}
.booking-ride-scene::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--white) 0%,rgba(255,253,248,.86) 10%,rgba(255,253,248,.28) 27%,rgba(255,253,248,0) 48%);pointer-events:none}
.booking-ride-media img{width:100%;height:100%;max-height:330px;object-fit:contain;filter:drop-shadow(0 24px 22px rgba(13,42,40,.16));padding:18px}
.booking-benefits{position:relative;z-index:1;grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:8px;border-top:1px solid rgba(20,58,56,.12);padding-top:22px}
.booking-benefits span{display:grid;grid-template-columns:46px minmax(0,1fr);column-gap:13px;align-items:center;padding:0 18px;border-right:1px solid rgba(20,58,56,.12)}
.booking-benefits span:first-child{padding-left:0}
.booking-benefits span:last-child{border-right:0;padding-right:0}
.booking-benefits i,.booking-loc-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:rgba(198,164,78,.12);color:var(--gold-ink);font-style:normal}
.booking-benefits svg,.booking-loc-ic svg{width:24px;height:24px}
.booking-benefits b{font-size:15px;line-height:1.2}
.booking-benefits em{grid-column:2;font-style:normal;color:var(--muted);font-size:13px;line-height:1.25}
.compact-picks{padding:0 32px;margin-bottom:22px}
.compact-picks .pick{background:#fff;border-radius:14px}
.package-section-copy{display:flex;align-items:end;justify-content:space-between;gap:24px}
.package-section-copy p{max-width:31em}
.booking-package-pane{padding:8px 24px}
.booking-package-pane .booking-section-copy{padding:26px 8px 0}
.package-choice-shell{margin:0 8px 28px;padding:0;color:var(--teal)}
.package-group-tabs{display:inline-flex;gap:4px;padding:4px;margin-bottom:16px;border:1px solid rgba(20,58,56,.1);border-radius:8px;background:var(--cream-2)}
.package-group-tabs button,.package-group-tabs a{display:grid;min-height:38px;padding:8px 17px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:13px;font-weight:800;cursor:pointer;place-items:center}
.package-group-tabs button.on,.package-group-tabs a.on{background:var(--teal);color:var(--cream)}
.package-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.package-choice-card{display:flex;min-width:0;min-height:272px;flex-direction:column;text-align:left;padding:22px;border:1px solid rgba(20,58,56,.14);border-radius:12px;background:#fff;color:var(--teal);font:inherit;cursor:pointer;box-shadow:0 14px 32px -28px rgba(13,42,40,.5);transition:transform .18s,border-color .18s,background .18s,box-shadow .18s}
.package-choice-card:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 20px 38px -26px rgba(13,42,40,.42)}
.package-choice-card.on{border-color:var(--gold);background:#fbf6e9;box-shadow:inset 0 0 0 1px rgba(198,164,78,.38),0 20px 40px -30px rgba(13,42,40,.48)}
.package-choice-card[hidden]{display:none}
.package-choice-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}
.package-choice-head b{font-size:20px;line-height:1.15}
.package-choice-head em{flex:0 0 auto;padding:4px 7px;border-radius:6px;background:var(--gold);color:var(--teal);font-size:9px;font-style:normal;font-weight:900;text-transform:uppercase}
.package-choice-price{display:flex;align-items:end;gap:7px;margin:15px 0 12px}
.package-choice-price strong{font-size:40px;line-height:.94;letter-spacing:0;color:var(--teal)}
.package-choice-price small{color:var(--muted);font-size:12px;font-weight:800;margin-bottom:3px}
.package-choice-description{min-height:38px;color:var(--muted);font-size:13px;line-height:1.45}
.package-choice-features{display:grid;gap:8px;margin:14px 0 16px;padding-top:13px;border-top:1px solid var(--line)}
.package-choice-features>span{display:grid;grid-template-columns:18px minmax(0,1fr);gap:7px;align-items:center}
.package-choice-features svg{width:17px;height:17px;color:var(--gold-ink)}
.package-choice-features i{font-size:11px;line-height:1.2;font-style:normal;font-weight:700;color:var(--teal)}
.package-choice-cta{display:block;margin-top:auto;padding:10px;border:1px solid rgba(20,58,56,.3);border-radius:6px;color:var(--teal);text-align:center;font-size:12px;font-weight:900}
.package-choice-card.on .package-choice-cta{border-color:transparent;background:var(--teal);color:var(--cream)}
.booking-location-intro{padding:34px 48px 16px;border-top:1px solid var(--line)}
.booking-location-intro h3{font-size:34px;line-height:1.05;margin-bottom:8px}
.booking-location-intro p{color:var(--muted);font-size:17px}
.booking-delivery-workspace{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(390px,.82fr);gap:20px;padding:0 48px 30px;align-items:start}
.booking-map-pane,.booking-timing-pane{min-width:0}
.booking-timing-pane{display:grid;gap:16px}
.booking-delivery-workspace .booking-location-card,.booking-delivery-workspace .booking-schedule-card{margin:0}
.booking-delivery-workspace .booking-landmark-field{margin:0;padding:20px 22px 8px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 18px 42px rgba(20,58,56,.06)}
.booking-delivery-workspace .availability-panel{margin:0}
.booking-location-card,.booking-schedule-card{margin:0 48px 22px;border:1px solid var(--line);border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 18px 42px rgba(20,58,56,.06)}
.booking-location-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px}
.booking-location-head b{display:block;font-size:22px;line-height:1.2}
.booking-location-head em{display:block;font-style:normal;color:var(--muted);font-size:14px;margin-top:2px;overflow-wrap:anywhere}
.booking-location-head .chips{justify-content:flex-end;max-width:260px}
.booking-location-head .chip{padding:8px 14px;font-size:13px;background:#fff}
.booking-location-head .chip.on{background:var(--teal);color:var(--cream)}
.book-premium .booking-location-head .chips{display:block}
.book-premium .booking-location-head .chip{display:none}
.book-premium .booking-location-head .chip.on{display:inline-flex;border:0;background:transparent;color:var(--gold-ink);font-size:19px;font-weight:800;padding:0;box-shadow:none}
.booking-map-shell{background-size:cover;background-position:center;border-top:1px solid var(--line)}
.concierge-map{height:285px;border-radius:0;border-width:1px 0;background:#e6eff1}
.book-premium .concierge-map{height:390px;background:#e6eff1;mix-blend-mode:normal}
.booking-location-card .pinbar{padding:12px 16px 16px;margin:0}
.booking-location-card .pinbar .btn{padding:9px 13px;font-size:13px}
.booking-location-card .pinbar #bkCoords{margin-left:auto}
.booking-schedule-card{display:grid;grid-template-columns:1fr 1fr;gap:0}
.booking-schedule-card-stacked{grid-template-columns:1fr}
.booking-schedule-card-stacked .booking-schedule-col+.booking-schedule-col{border-left:0;border-top:1px solid var(--line)}
.booking-schedule-col{position:relative;padding:22px 22px 18px}
.booking-schedule-col+.booking-schedule-col{border-left:1px solid var(--line)}
.booking-schedule-col>.booking-loc-ic{margin-bottom:12px}
.booking-schedule-card .field{margin-bottom:12px}
.booking-schedule-card .field:last-child{margin-bottom:0}
.booking-schedule-card .fhint{display:block;margin-top:6px;color:var(--muted);font-size:12.5px}
.booking-schedule-heading{margin:-42px 0 18px 60px;display:grid;gap:3px}
.booking-schedule-heading b{font-size:20px;color:var(--teal)}
.booking-schedule-heading span{font-size:12.5px;color:var(--muted)}
.booking-quick-dates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0 0 17px}
.booking-quick-dates button{min-height:38px;padding:7px 8px;border:1px solid var(--line);border-radius:9px;background:var(--white);color:var(--teal);font:inherit;font-size:11.5px;font-weight:800;cursor:pointer;transition:.16s}
.booking-quick-dates button:hover{border-color:var(--gold);transform:translateY(-1px)}
.booking-quick-dates button.on{border-color:var(--teal);background:var(--teal);color:var(--cream)}
.rental-length-field .counter{min-height:48px;background:var(--white)}
.booking-schedule-card-premium{grid-template-columns:minmax(0,1.12fr) minmax(250px,.88fr)}
.booking-delivery-workspace .booking-schedule-card-premium{grid-template-columns:1fr}
.booking-delivery-workspace .booking-schedule-card-premium .booking-schedule-col+.booking-schedule-col{border-left:0;border-top:1px solid var(--line)}
.booking-schedule-card-premium .booking-schedule-col{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:center;padding:26px 28px}
.booking-schedule-card-premium .booking-loc-ic{margin:0}
.booking-date-fields{display:grid;grid-template-columns:1fr;gap:8px}
.booking-date-fields span,.booking-schedule-card-premium .rental-length-field>span{display:block;color:var(--ink);font-weight:700;font-size:20px;margin-bottom:2px}
.booking-date-fields input{width:100%;border:0;background:transparent;padding:0;border-radius:0;font-family:var(--sans);font-size:25px;font-weight:800;color:var(--teal);line-height:1.2}
.booking-date-fields input:focus{outline:2px solid rgba(198,164,78,.4);outline-offset:4px}
.booking-schedule-card-premium .rental-length-field{margin:0}
.booking-schedule-card-premium .booking-counter{border:0;background:transparent;padding:0;display:grid;grid-template-columns:52px 1fr 52px;gap:18px;align-items:center}
.booking-schedule-card-premium .booking-counter button{width:52px;height:52px;border-radius:12px;background:#fbf7ef;font-size:28px;color:var(--gold-ink)}
.booking-schedule-card-premium .booking-counter b{font-size:30px;color:var(--teal)}
.booking-schedule-card-premium .booking-counter .muted{grid-column:1/-1;margin-left:0!important;text-align:left;font-size:19px}
.booking-landmark-field{margin:0 48px 18px}
.book-premium .availability-panel{margin:0 48px 22px;border:0;border-radius:16px;padding:24px 30px 24px 88px;position:relative;background:linear-gradient(90deg,#eef8ef,#f4fbf1);box-shadow:0 16px 36px rgba(20,58,56,.07);font-size:18px;color:#6c7774}
.book-premium .availability-panel::before{content:'✓';position:absolute;left:34px;top:50%;transform:translateY(-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#4b9b4f;color:white;font-size:34px;font-weight:700}
.book-premium .availability-panel b{font-size:23px;color:var(--teal);margin-bottom:8px}
.book-premium .availability-panel span{line-height:1.35}
.book-premium .availability-panel.warn,.book-premium .availability-panel.manual,.book-premium .availability-panel.checking{background:#fff8e8;border:1px solid #ead5a5;padding-left:30px}
.book-premium .availability-panel.warn::before,.book-premium .availability-panel.manual::before,.book-premium .availability-panel.checking::before{display:none}
.booking-totalbar{position:sticky;bottom:18px;z-index:3;margin:10px 22px 22px;padding:14px 16px 14px 20px;border:1px solid rgba(20,58,56,.12);border-radius:22px;background:rgba(255,253,248,.92);backdrop-filter:blur(12px);display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.75fr);gap:16px;align-items:center;box-shadow:0 18px 50px -20px rgba(13,42,40,.38)}
.book-premium .booking-totalbar{bottom:14px;margin:0 28px 26px;padding:17px 20px 17px 24px;border-width:1px;border-radius:18px;background:rgba(255,253,248,.96);grid-template-columns:minmax(0,1fr) minmax(300px,.65fr)}
.booking-totalbar span{display:block;color:var(--muted);font-size:13px;font-weight:700}
.booking-totalbar b{display:block;font-family:var(--serif);font-size:32px;line-height:1.05;color:var(--teal)}
.book-premium .booking-totalbar b{font-family:var(--sans);font-size:35px;font-weight:800}
.booking-totalbar em{display:block;font-style:normal;color:var(--muted);font-size:14px;line-height:1.2}
.booking-totalbar .btn{min-height:58px;justify-content:center;font-size:17px}
.book-premium .booking-totalbar .btn{min-height:60px;border-radius:999px;font-size:20px}

@media(min-width:981px){
  .book-premium .booking-appbar{min-height:86px;padding:20px 40px}
  .book-premium .booking-steps{gap:16px;margin:17px 48px 15px}
  .book-premium .booking-steps span{min-height:54px;gap:6px}
  .book-premium .booking-steps span b{width:38px;height:38px;font-size:15px}
  .book-premium .booking-steps span em{font-size:14px}
  .book-premium .booking-steps i{width:92px;flex-basis:92px;margin-top:19px}
  .booking-ride-hero-premium{padding:22px 40px 16px;grid-template-columns:minmax(230px,.72fr) minmax(390px,1.28fr)}
  .booking-ride-hero-premium .booking-ride-copy :is(h1,h3){font-size:56px;margin-bottom:10px;max-width:10ch}
  .booking-ride-hero-premium .booking-ride-copy p{font-size:17px;margin-bottom:14px}
  .booking-ride-hero-premium .booking-ride-copy strong{font-size:20px;padding:14px 18px}
  .booking-ride-scene{min-height:270px;margin:-12px -40px -7px -12px}
  .booking-benefits{margin-top:4px;padding-top:14px}
  .booking-benefits i{width:40px;height:40px}
  .booking-benefits span{grid-template-columns:40px minmax(0,1fr)}
  .booking-benefits b{font-size:13px}
  .booking-benefits em{font-size:11px}
  .booking-location-intro{padding-top:24px}
}

@media(max-width:980px){
  .book.book-premium .wrap.narrow{padding:0 18px}
  .booking-delivery-workspace{grid-template-columns:1fr;padding:0 32px 28px}
  .book-premium .concierge-map{height:330px}
}
.book .wiz.booking-step-2,.book .wiz.booking-step-3{border-radius:24px;background:linear-gradient(180deg,var(--white) 0%,#fbf7ee 100%);box-shadow:0 22px 70px -42px rgba(13,42,40,.38)}
.booking-step-2 .booking-copy,.booking-step-3 .booking-copy{border-radius:18px;background:linear-gradient(135deg,#0d2a28,#17443f);color:var(--cream);padding:24px;margin:-4px -4px 22px}
.booking-step-2 .booking-copy p,.booking-step-3 .booking-copy p{color:#d2ddda;font-size:15px}
.booking-step-2 .booking-copy .serif.big,.booking-step-3 .booking-copy .serif.big{color:var(--cream);margin-bottom:8px}
.booking-step-2 .field>span{font-size:13.5px;color:#4c625e}
.booking-step-2 .field input,.booking-step-2 .field select,.booking-step-2 .field textarea{border-radius:14px;background:#fff;border-color:rgba(20,58,56,.12);min-height:50px}
.booking-step-2 .pay-options{gap:12px}
.booking-step-2 .pay-option{position:relative;min-height:116px;border-radius:16px;padding:16px;background:#fff;border-color:rgba(20,58,56,.12);box-shadow:0 12px 32px rgba(20,58,56,.045)}
.booking-step-2 .pay-option:hover{transform:translateY(-1px);border-color:rgba(198,164,78,.5)}
.booking-step-2 .pay-option.on{background:#fff9e8;border-color:rgba(198,164,78,.7);box-shadow:0 0 0 2px rgba(198,164,78,.16),0 16px 36px rgba(126,99,24,.08)}
.booking-step-2 .pay-option.on::after{content:'✓';position:absolute;right:14px;top:14px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:var(--teal);font-weight:900}
.booking-step-2 .pay-option b{font-size:15px;padding-right:28px}
.booking-step-2 .pay-option span{font-size:12.5px;color:var(--muted)}
.booking-step-2 .fastpay{border-radius:16px;background:#fff;border-color:rgba(198,164,78,.3);padding:16px}
.booking-step-2 .uploads.one{max-width:none}
.booking-step-2 .upl{aspect-ratio:16/7;min-height:128px;border-radius:16px;background:linear-gradient(145deg,var(--white),#f5efe2)}
.booking-step-2 .agree{border-top:0;border-radius:18px;background:#fff;border:1px solid var(--line);padding:18px;margin-top:18px}
.booking-step-2 .terms{max-height:155px;border-radius:14px;background:var(--white)}
.booking-step-2 .sigbox{border-radius:14px;background:var(--white)}
.booking-step-2 .sigbox canvas{height:150px}
.pick-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pick{border:1.5px solid var(--line);background:var(--card);border-radius:16px;padding:16px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;transition:.15s}
.pick.on{border-color:var(--gold);box-shadow:0 0 0 3px rgba(198,164,78,.18)}
.pick img{height:74px;object-fit:contain}
.pick .pn{font-family:var(--serif);font-size:19px;font-weight:600}
.pick .pp{font-size:13px;color:var(--muted)}
.pick small{font-size:11.5px;color:var(--muted);text-align:center;line-height:1.25}
.package-grid{grid-template-columns:repeat(3,1fr)}
.package-grid .pick{min-height:96px;justify-content:center}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:10px 18px;font-weight:600;cursor:pointer;font-family:var(--sans);font-size:14px}
.chip.on{background:var(--teal);color:var(--cream);border-color:var(--teal)}
.counter{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 14px}
.counter button{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--cream);font-size:20px;cursor:pointer;line-height:1}
.counter b{font-size:18px;min-width:20px;text-align:center}
.wiz-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px}
.req{color:#c0562f;font-style:normal}
.review .rrow{display:flex;justify-content:space-between;padding:9px 0;font-size:15px;gap:12px}
/* My account (23 Oct 2026): label and value were running together ("NameTest Customer"). */
#accountBody .rrow{display:flex;justify-content:space-between;gap:12px;padding:8px 0;font-size:15px;border-bottom:1px solid var(--line)}
#accountBody .rrow:last-child{border-bottom:0}
#accountBody .rrow span:first-child{color:var(--muted)}
#accountBody .rrow span:last-child{text-align:right;overflow-wrap:anywhere}
.review .rrow span:first-child{color:var(--muted)}
.review .rsep{border-top:1px dashed var(--line);margin:8px 0}
.review .rrow.total{font-family:var(--serif);font-size:24px;font-weight:600}
.review .rrow.total span:first-child{color:var(--ink)}
.booking-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:20px 0 6px}
.booking-timeline div{display:grid;gap:6px;justify-items:center;text-align:center;color:var(--muted);font-size:11.5px;font-weight:700}
.booking-timeline i{width:18px;height:18px;border-radius:50%;background:#e6ddc9;border:2px solid #e6ddc9}
.booking-timeline .on{color:var(--teal)}
.booking-timeline .on i{background:var(--gold);border-color:var(--gold)}
.booking-next{line-height:1.5}
.status-shell{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}
.status-hero{border:1px solid var(--line);border-radius:18px;padding:22px;background:linear-gradient(145deg,var(--white),#f4eedf)}
.status-hero.ok{background:linear-gradient(145deg,#f5fbf6,var(--white));border-color:rgba(28,122,74,.2)}
.status-hero.bad{background:linear-gradient(145deg,#fff7f2,var(--white));border-color:rgba(192,86,47,.24)}
.status-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.status-pill{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.status-hero h3{margin:0 0 6px;font-size:34px;line-height:1.05}
.status-hero p{color:var(--muted);max-width:42em;margin:0}
.status-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}
.status-facts span,.pay-lines span{display:grid;gap:2px;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,248,.72);padding:10px 12px;min-width:0}
.status-facts em,.pay-lines em,.pay-card small{font-style:normal;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.status-facts b,.pay-lines strong{font-size:13.5px;line-height:1.25;overflow-wrap:anywhere}
.pay-card{border:1px solid rgba(198,164,78,.36);border-radius:16px;background:#fff9e8;padding:16px;margin-top:14px;color:var(--ink)}
.pay-card.ok{border-color:rgba(28,122,74,.22);background:#f2fbf5}
.pay-card.small{margin-top:14px}
.pay-card b{display:block;font-size:17px;margin-top:2px}
.pay-card p{font-size:13.5px;color:var(--muted);margin-top:10px}
.pay-lines{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.rental-portal{display:grid;gap:16px}
.portal-hero{border:1px solid var(--line);border-radius:22px;padding:22px;background:linear-gradient(145deg,var(--white),#f4eedf);box-shadow:var(--shadow)}
.portal-hero.ok{background:linear-gradient(145deg,#f4fbf6,var(--white));border-color:rgba(28,122,74,.22)}
.portal-hero.due{background:linear-gradient(145deg,#fff8e8,var(--white));border-color:rgba(198,164,78,.34)}
.portal-hero.closed{background:linear-gradient(145deg,#f4f0e7,var(--white))}
.portal-hero h3{margin:0 0 6px;font-size:34px;line-height:1.05}
.portal-hero p{color:var(--muted);max-width:38em;margin:0}
.portal-card,.portal-details{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px}
.portal-card>p{font-size:13.5px;margin:6px 0 14px}
.portal-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.portal-action{border:1px solid var(--line);border-radius:14px;background:rgba(20,58,56,.03);padding:14px;display:grid;gap:12px;align-content:start}
.portal-action.wide{grid-column:1/-1}
.portal-action b{display:block;font-size:16px}
.portal-action span{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.portal-action textarea{width:100%;font:inherit;font-size:15px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink);resize:vertical}
.extend-line{display:grid;grid-template-columns:88px 1fr;gap:8px}
.extend-line input{width:100%;font:inherit;font-size:16px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--white);color:var(--ink)}
.portal-details{padding:0;overflow:hidden}
.portal-details summary{cursor:pointer;padding:16px 18px;font-weight:700;color:var(--ink)}
.portal-details .review{border-top:1px solid var(--line);padding:8px 18px 14px}
.tick{width:70px;height:70px;border-radius:50%;background:var(--gold);color:var(--teal);display:grid;place-items:center;font-size:38px;margin:0 auto 14px}
.btn-oauth{background:var(--card);border:1px solid var(--line);color:var(--ink);justify-content:center;margin-bottom:10px}
.btn-oauth:hover{border-color:var(--teal)}
.btn-oauth span{font-size:18px}
.auth-more{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.45)}
.auth-more summary{cursor:pointer;padding:13px 15px;text-align:center;font-weight:750;color:var(--teal);list-style:none}
.auth-more summary::-webkit-details-marker{display:none}
.auth-more summary::after{content:' +';color:var(--brass-light);font-size:18px}
.auth-more[open] summary::after{content:' -'}
.auth-more-body{padding:2px 14px 14px;border-top:1px solid var(--line)}
.auth-more-body .field{margin-top:12px}
.auth-more-body .btn-oauth{margin-top:10px;margin-bottom:0}
.or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:16px 0}
.or::before,.or::after{content:'';flex:1;height:1px;background:var(--line)}
.btn-link.block{display:block;width:100%;text-align:center;border:0}
.badge{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 11px;border-radius:999px;background:#e6ddc9;color:var(--muted);text-transform:uppercase}
.badge.act{background:#1c7a4a;color:#fff}
/* add-ons in booking */
.addon-list{display:grid;gap:8px;margin-top:6px}
.addon-row{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:var(--card)}
.counter.sm{padding:4px 8px;gap:10px}
.counter.sm button{width:28px;height:28px;font-size:17px}
/* gallery */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
/* auto-fit + a fixed max card width (not repeat(3,1fr)'s equal-thirds) so a
   handful of items sizes to its own content and centres, instead of one
   lonely card stretching or pinning to the left edge of a mostly-empty page —
   which is exactly what happened with a single video before this. */
.gal-grid.big{grid-template-columns:repeat(auto-fit,minmax(280px,340px));justify-content:center}
.gal{border:0;background:none;cursor:pointer;text-align:left;padding:0;font-family:var(--sans)}
.gal-pic{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:linear-gradient(150deg,#dcd4c1,#cfc6b0);display:grid;place-items:center}
.gal-pic img{width:100%;height:100%;object-fit:cover}
.gal-pic .play{position:absolute;width:52px;height:52px;border-radius:50%;background:rgba(20,58,56,.82);color:var(--cream);display:grid;place-items:center;font-size:18px;padding-left:3px}
.gal-t{margin-top:10px;font-family:var(--serif);font-size:20px;font-weight:600}
.video-box{position:relative;width:100%;max-width:900px;aspect-ratio:16/9;margin:auto;border-radius:14px;overflow:hidden;background:#000}
.video-box iframe{width:100%;height:100%;border:0}
.vclose{position:absolute;top:-40px;right:0;background:none;border:0;color:#fff;font-size:30px;cursor:pointer}
/* Controlled social panel. The homepage used to depend on a third-party feed
   iframe; this keeps the customer path stable even when a widget provider is
   down, unpaid, or blocked. */
.social-panel{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:16px}
.social-card{display:flex;min-height:168px;flex-direction:column;justify-content:space-between;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--card);color:var(--ink);text-decoration:none;box-shadow:0 18px 42px rgba(20,58,56,.06)}
.social-card.primary{background:var(--teal);color:var(--cream);border-color:var(--teal)}
.social-card h3{font-family:var(--serif);font-size:28px;margin:8px 0 10px;line-height:1.05}
.social-card p{margin:0;color:inherit;opacity:.82;line-height:1.5}
.social-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-ink)}
.social-card.primary .social-kicker{color:var(--brass-light)}
.social-card.primary .btn-link{color:var(--brass-light)}
/* availability */
.avail{display:inline-block;font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px;margin-bottom:14px}
.avail.ok{background:#e3f0e6;color:#1c7a4a}
.avail.out{background:#f6e9d6;color:var(--gold-ink)}
.avail.sync{background:#eef1ed;color:var(--muted)}
.avail-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.avail-line small{font-size:12px;color:var(--muted);line-height:1.25}
.pick .pick-avail{margin-top:6px}
.pick .avail{margin:0;font-size:11px;padding:3px 9px}
@media(max-width:920px){ .gal-grid,.gal-grid.big{grid-template-columns:1fr 1fr} }
@media(max-width:680px){ .gal-grid,.gal-grid.big{grid-template-columns:1fr} }

@media(max-width:920px){
  .hero .grid{grid-template-columns:1fr}
  .arch{max-width:420px;margin:0 auto}
  .fleet-grid,.feat-grid,.tst-grid,.steps-grid,.ig-grid,.contact-grid,.social-panel{grid-template-columns:1fr 1fr}
  .fleet-hero,.maafushi-hero{grid-template-columns:1fr;padding:36px}
  .fleet-hero-card,.maafushi-media{max-width:560px;width:100%;margin:0 auto}
  .fleet-snapshot-grid,.fleet-expect-grid,.maafushi-package-grid{grid-template-columns:1fr 1fr}
  .home-hero-grid,.home-app-panel,.home-live-grid{grid-template-columns:1fr}
  .home-device{max-width:520px;margin:0 auto;width:100%}
  .home-choice-grid,.platform-grid{grid-template-columns:1fr}
  .home-flow-grid{grid-template-columns:1fr 1fr}
  .home-phone-card{max-width:420px}
  .home-video-card{max-width:620px;width:100%;margin:0 auto}
  .social-card.primary{grid-column:1/-1}
  .footer .cols{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .services-hero,.about-hero,.contact-hero,.service-channel-band,.contact-panel-grid{grid-template-columns:1fr}
  .service-included-grid,.about-values,.service-channel-grid{grid-template-columns:1fr 1fr}
  .about-media{max-width:520px;width:100%;margin:0 auto}
  .contact-card-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .toast.availability{left:14px;right:14px;bottom:18px;max-width:none;transform:translateY(20px)}
  .toast.availability.show{transform:translateY(0)}
  /* Nav, Sign in and the currency toggle move out of the tight phone header.
     The Book now button moves to a sticky bar at the bottom to keep the main
     action reachable without crowding the brand row. */
  .nav,.hdr .signin,.hdr .hdr-book{display:none}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;margin-right:-6px}
  .cur-toggle{display:none}
  .hdr .wrap{gap:8px;height:auto;min-height:64px;padding:0 14px}
  .hdr .spacer{flex:1 1 auto;min-width:4px}
  /* The brand takes the row up to the menu button; it was capped at 45vw, which
     cut "KOLI MOTORENTALS" to "KOLI MOTORENT…" with plenty of room left. */
  .logo{font-size:13px;letter-spacing:.03em;min-width:0;flex:0 1 auto;max-width:calc(100% - 52px)}
  .logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .logo .mark{width:26px;height:26px;gap:8px}
  .hdr .logo{gap:7px}
  .mobnav[hidden]{display:none}
  .mobnav{display:flex;flex-direction:column;border-top:1px solid var(--line);background:var(--card)}
  .mobnav a{padding:15px 18px;font-size:15px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line)}
  .mobnav a:last-child{border-bottom:0}
  .mobnav a:active{background:var(--bg)}
  /* The sticky bar slides in once the top of the page has scrolled away (body.bookbar-on), not over the first screen. */
  .bookbar{transform:translateY(110%);transition:transform .25s ease}
  body.bookbar-on .bookbar{transform:none}
  .bookbar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:block;text-align:center;
    background:var(--teal);color:var(--cream);font-weight:700;font-size:15px;padding:15px 16px calc(15px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -6px 18px rgba(20,58,56,.16)}
  /* Clear the sticky bar so it never covers the last line of a page. */
  .footer{padding-bottom:76px}
  .feat-grid,.tst-grid,.steps-grid,.fleet-grid,.footer .cols,.contact-grid,.pick-grid,.social-panel{grid-template-columns:1fr}
  .fleet-hero,.maafushi-hero{padding:28px 20px;border-radius:24px;margin-top:18px;gap:24px}
  .fleet-hero-copy h1,.maafushi-copy h1{font-size:40px;max-width:none}
  .fleet-hero-copy p,.maafushi-copy p{font-size:15.5px;line-height:1.6}
  .fleet-hero-card,.maafushi-media{border-radius:20px}
  .fleet-hero-card img{height:250px}
  .maafushi-media img{height:285px}
  .fleet-hero-info{padding:17px 18px}
  .fleet-snapshot{padding-top:32px;padding-bottom:26px}
  .fleet-snapshot-grid,.fleet-expect-grid{grid-template-columns:1fr;gap:12px}
  .maafushi-package-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .fleet-snapshot-grid>div,.fleet-expect-grid>div{border-radius:18px;padding:21px}
  .maafushi-package-card{min-height:214px;border-radius:15px;padding:14px}
  .maafushi-package-head{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:10px}
  .maafushi-package-head span{font-size:15px;line-height:1.08}
  .maafushi-package-head strong{justify-self:start;font-size:9px;padding:4px 8px}
  .maafushi-package-price{display:grid;gap:3px;margin-bottom:9px}
  .maafushi-package-price b{font-size:30px;line-height:1}
  .maafushi-package-price em{font-size:12px;margin:0}
  .maafushi-package-card p{display:none}
  .maafushi-package-card ul{gap:6px;padding-top:10px;margin-bottom:12px}
  .maafushi-package-card li{font-size:11.5px;padding-left:22px}
  .maafushi-package-card li::before{width:17px;height:17px;font-size:11px}
  .maafushi-package-cta{border-radius:11px;padding:10px 8px;font-size:12px}
  .fleet-snapshot-grid b{font-size:32px}
  .maafushi-packages{padding-top:36px}
  .maafushi-price-row{width:100%;grid-template-columns:1fr;gap:6px}
  .maafushi-price-row b{font-size:34px}
  .social-card.primary{grid-column:auto}
  .services-hero,.contact-hero{padding:28px 20px;border-radius:24px;margin-top:18px}
  .services-hero-copy h1,.contact-hero h1,.about-copy h1{font-size:40px}
  .services-hero-copy p,.contact-hero p,.about-copy p{font-size:15.5px}
  .services-flow-card{padding:12px;border-radius:19px}
  .services-flow-step{grid-template-columns:42px 1fr;padding:13px;border-radius:15px}
  .services-flow-step b{width:42px;height:42px;font-size:18px}
  .service-included-grid,.about-values,.service-channel-grid,.contact-panel-grid{grid-template-columns:1fr}
  .contact-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .contact-card-pro{min-height:112px;padding:14px}
  .contact-card-pro span{font-size:10px;letter-spacing:.1em}
  .contact-card-pro b{font-size:13px;line-height:1.28;margin:8px 0;overflow-wrap:anywhere}
  .contact-card-pro em{font-size:11.5px}
  .service-channel-band{padding:24px 20px;border-radius:22px}
  .service-channel-band .serif.big{font-size:32px}
  .service-channel-card{min-height:auto}
  .service-note-panel{grid-template-columns:1fr;padding:18px 20px;margin-bottom:46px}
  .about-hero{grid-template-columns:1fr;padding:30px 0 12px}
  .about-media{border-radius:140px 140px 22px 22px;max-width:360px}
  .about-mission{padding:28px 22px;border-radius:24px}
  .about-values-section{padding-top:42px}
  .contact-form-panel,.contact-faq-panel{padding:22px 18px;border-radius:20px}
  .contact-panel-grid{margin-bottom:46px}
  /* Narrower cards so the next one is already peeking in — that edge is what
     tells you the row is moving. */
  .tst-track .tst{width:272px;flex:0 0 272px;padding:22px;margin-right:14px}
  .ig-grid{grid-template-columns:1fr 1fr}
  .row2,.uploads{grid-template-columns:1fr}
  .pay-options{grid-template-columns:1fr}
  .booking-title{text-align:left}
  .booking-title h1,.booking-title h2{text-align:left;font-size:34px}
  .booking-steps{display:grid;grid-template-columns:1fr;gap:8px;margin:14px 0 16px}
  .booking-steps i{display:none}
  .booking-steps span{width:100%;min-width:0;min-height:42px;border-radius:14px}
  .booking-steps span:not(.on){background:rgba(230,221,201,.55)}
  .booking-steps span em{font-size:12px}
  .booking-timeline{grid-template-columns:1fr;gap:0;margin:18px 0 8px}
  .booking-timeline div{grid-template-columns:22px 1fr;justify-items:start;text-align:left;gap:9px;padding:7px 0;border-bottom:1px solid var(--line)}
  .booking-timeline div:last-child{border-bottom:0}
  .booking-timeline i{width:15px;height:15px;margin-top:2px}
  .status-shell{padding:14px;border-radius:18px}
  .status-hero{padding:16px;border-radius:15px}
  .status-top{align-items:flex-start;flex-direction:column;gap:8px}
  .status-hero h3{font-size:28px}
  .status-facts,.pay-lines{grid-template-columns:1fr}
  .portal-hero{padding:16px;border-radius:18px}
  .portal-hero h3{font-size:28px}
  .portal-actions{grid-template-columns:1fr}
  .extend-line{grid-template-columns:76px 1fr}
  .sec{padding:52px 0}
  .hero{padding:36px 0 20px}
  .home-hero{padding:38px 0 40px}
  .home-hero-grid{gap:30px}
  .home-hero-copy h1{font-size:42px}
  .home-hero-copy .lead{font-size:16px}
  .home-hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .home-hero-actions .btn{width:100%}
  .home-device{border-radius:22px;max-width:390px}
  .home-device-top{padding:14px 16px}
  .home-bike-scene{min-height:215px}
  .home-price-chip{left:14px;bottom:14px;padding:10px 14px;border-radius:13px}
  .home-price-chip b{font-size:22px}
  .home-mini-flow{gap:6px;padding:12px}
  .home-mini-flow span{font-size:12px;padding:6px 9px}
  .home-device-card{margin:0 14px 14px;padding:13px 14px;border-radius:14px}
  .home-choice-card,.platform-card{padding:22px;border-radius:18px}
  .home-choice-card h3,.platform-card h3{font-size:27px}
  .home-choice-card p{min-height:auto}
  .home-live{padding:46px 0}
  .home-live-copy{padding:22px;border-radius:20px}
  .home-live-copy h2{font-size:34px}
  .home-video-card{border-radius:20px}
  .home-video-media{min-height:250px}
  .home-flow{padding:30px 18px;border-radius:22px}
  .home-flow-grid,.home-flow-grid.home-flow-3{grid-template-columns:1fr}
  .home-app-panel{padding:22px;border-radius:22px}
  .home-app-panel .serif.big{font-size:32px}
  .home-phone-card{border-radius:20px}
  .wrap{padding:0 16px}
  .wrap.narrow{max-width:100%}
  .pagetop{padding-top:34px}
  .sec-head{align-items:flex-start;margin-bottom:24px}
  .hero h1{font-size:42px;letter-spacing:0}
  .hero .stats{align-items:flex-start;gap:12px;flex-wrap:wrap}
  .btn{white-space:normal;justify-content:center;text-align:center}
  .bookrow{display:grid;grid-template-columns:1fr;gap:10px}
  .bookrow .btn{width:100%}
  .panel{padding:20px;border-radius:18px}
  .wiz{padding:18px}
  .book .wiz.booking-step-1{padding:0;border-radius:20px}
  .book-premium .wiz.booking-step-1{border-radius:20px}
  .book-premium .booking-appbar{border-radius:19px 19px 0 0}
  .booking-section-copy{padding:20px 18px 0}
  .booking-package-pane{padding:0}
  .booking-package-pane .booking-section-copy{padding:20px 18px 0}
  .booking-ride-hero{grid-template-columns:1fr;padding:24px 20px 18px;gap:10px}
  .booking-ride-hero-premium{grid-template-columns:minmax(0,.74fr) minmax(230px,1fr);padding:24px 20px 16px;gap:0;background:linear-gradient(90deg,var(--white) 0%,var(--white) 45%,#e8f8fb 100%)}
  .booking-ride-copy{min-width:0}
  .booking-ride-copy :is(h1,h3){font-size:42px;max-width:6.6ch;overflow-wrap:normal}
  .booking-ride-hero-premium .booking-ride-copy :is(h1,h3){font-size:44px;max-width:4.7ch}
  .booking-ride-copy p{font-size:18px;max-width:15em}
  .booking-ride-hero-premium .booking-ride-copy p{font-size:15px;line-height:1.35;max-width:10em;margin-bottom:14px}
  .booking-ride-copy strong{font-size:22px;padding:16px 18px}
  .booking-ride-hero-premium .booking-ride-copy strong{font-size:20px;padding:14px 16px;border-radius:10px}
  .booking-ride-media{min-height:180px;align-items:center}
  .booking-ride-scene{min-height:275px;margin:-8px -20px -8px -24px;background-size:contain;background-position:right center}
  .booking-ride-scene::before{background:linear-gradient(90deg,var(--white) 0%,rgba(255,253,248,.78) 11%,rgba(255,253,248,.16) 33%,rgba(255,253,248,0) 58%)}
  .booking-ride-media img{max-height:240px}
  .booking-benefits{grid-template-columns:repeat(3,1fr);gap:0;padding-top:16px}
  .booking-benefits span{border-right:1px solid rgba(20,58,56,.12);padding:0 8px;grid-template-columns:38px minmax(0,1fr)}
  .booking-benefits span:last-child{border-right:0}
  .booking-benefits i,.booking-loc-ic{width:42px;height:42px}
  .booking-benefits i{width:38px;height:38px}
  .booking-benefits b{font-size:13px}
  .booking-benefits em{font-size:11.5px}
  .compact-picks{padding:0 18px;margin-bottom:18px}
  .package-section-copy{display:block}
  .package-choice-shell{margin:0 18px 22px;padding:14px;overflow:hidden}
  .package-group-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-bottom:13px}
  .package-group-tabs button,.package-group-tabs a{padding:8px 10px}
  .package-choice-grid{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding:1px 1px 8px;overscroll-behavior-inline:contain}
  .package-choice-card{flex:0 0 270px;width:270px;min-height:286px;scroll-snap-align:start}
  .package-choice-card[hidden]{display:none}
  .booking-location-intro{padding:24px 18px 12px}
  .booking-location-intro h3{font-size:29px}
  .booking-location-intro p{font-size:15px}
  .booking-location-card,.booking-schedule-card{margin:0 18px 18px;border-radius:16px}
  .booking-delivery-workspace{padding:0 18px 18px;gap:14px}
  .booking-delivery-workspace .booking-location-card,.booking-delivery-workspace .booking-schedule-card{margin:0}
  .booking-delivery-workspace .booking-landmark-field{padding:17px 16px 5px;border-radius:16px}
  .booking-location-head{grid-template-columns:auto minmax(0,1fr);padding:16px;gap:12px}
  .booking-location-head .chips{grid-column:1/-1;justify-content:flex-start;max-width:none}
  .booking-location-head b{font-size:20px}
  .concierge-map{height:230px}
  .book-premium .concierge-map{height:250px}
  .booking-location-card .pinbar{grid-template-columns:1fr 1fr;padding:12px}
  .booking-location-card .pinbar .btn{width:100%;padding:9px 10px}
  .booking-location-card .pinbar .map-open{grid-column:1/-1}
  .booking-location-card .pinbar #bkCoords{grid-column:1/-1;margin-left:0;text-align:left}
  .booking-schedule-card{grid-template-columns:1fr}
  .booking-schedule-col{padding:18px}
  .booking-schedule-heading{margin:-39px 0 16px 54px}
  .booking-schedule-heading b{font-size:18px}
  .booking-quick-dates{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .booking-quick-dates button{min-height:36px;padding:6px 4px;font-size:10.5px}
  .booking-schedule-col+.booking-schedule-col{border-left:0;border-top:1px solid var(--line)}
  .book-premium .availability-panel{margin:0 18px 18px;padding:20px 18px 20px 76px;font-size:15px}
  .book-premium .availability-panel::before{left:18px;width:46px;height:46px;font-size:27px}
  .book-premium .availability-panel b{font-size:19px;margin-bottom:5px}
  .booking-totalbar{position:sticky;bottom:12px;margin:4px 12px 14px;padding:14px;grid-template-columns:1fr;gap:12px;border-radius:20px}
  .booking-totalbar b{font-size:30px}
  .booking-totalbar .btn{width:100%;min-height:54px}
  .book-premium .booking-totalbar{bottom:0;margin:0;padding:14px 16px;grid-template-columns:minmax(0,1fr) minmax(190px,1.35fr);gap:10px}
  .book-premium .booking-totalbar b{font-size:27px}
  .book-premium .booking-totalbar em{font-size:11.5px}
  .book-premium .booking-totalbar .btn{min-height:56px;font-size:19px}
  .steps-dots{margin:12px 0 18px}
  .steps-dots span{width:30px;height:30px}
  .steps-dots i{width:28px}
  .booking-steps span{width:100%;height:auto}
  .pick{padding:14px 12px}
  .pick img{height:62px}
  .pick .pn{font-size:18px;line-height:1.15;text-align:center}
  .pick .pp{font-size:12.5px;text-align:center}
  .package-grid{grid-template-columns:1fr 1fr}
  .package-grid .pick{min-height:88px}
  .avail-strip{display:grid;grid-template-columns:1fr;align-items:start}
  .booking-copy p{font-size:13.5px}
  .field input,.field select,.field textarea{font-size:16px}
  .counter{gap:10px;flex-wrap:wrap}
  .counter button{flex:0 0 34px}
  .counter .muted{flex:1 0 100%;margin-left:0!important;text-align:right;overflow-wrap:anywhere}
  .pinbar{display:grid;grid-template-columns:1fr;gap:8px}
  .pinbar .btn{width:100%}
  .pinbar .muted{overflow-wrap:anywhere}
  .pay-options{grid-template-columns:1fr}
  .wiz-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .wiz-actions .btn{width:100%}
  .review .rrow{display:grid;grid-template-columns:1fr;gap:2px}
  .review .rrow span:last-child{overflow-wrap:anywhere;text-align:left}
  .modal-back{padding:16px 12px calc(86px + env(safe-area-inset-bottom,0px))}
  .modal .head{padding:18px}
  .modal .body{padding:18px}
}

@media(max-width:430px){
  .package-choice-card{flex-basis:min(270px,100%);width:min(270px,100%)}
  .booking-quick-dates button{font-size:10px;padding-inline:2px;overflow-wrap:normal}
  .booking-ride-hero-premium{grid-template-columns:1fr;padding:22px 18px 16px}
  .booking-ride-scene{min-height:230px;margin:0 -18px -4px;background-size:contain}
  .booking-ride-hero-premium .booking-ride-copy :is(h1,h3){font-size:43px;max-width:none}
  .booking-ride-hero-premium .booking-ride-copy p{max-width:18em}
  .booking-benefits{grid-template-columns:1fr;gap:12px}
  .booking-benefits span{border-right:0;padding:0}
}

@media(max-width:380px){
  .wrap{padding:0 12px}
  .cur-toggle button{padding:6px 8px}
  .menu-btn{width:36px}
  .steps-dots span{width:28px;height:28px}
  .steps-dots i{width:22px}
}
@media(max-width:430px){
  .hdr .wrap{gap:6px}
  .hdr .spacer{min-width:0}
  .logo{font-size:12px}
  .cur-toggle{display:none}
  .menu-btn{flex:0 0 34px;width:34px;margin-right:0}
}
@media(min-width:600px) and (max-width:680px){
  .book-premium .booking-steps{display:flex;align-items:center;justify-content:center;gap:10px;margin:28px 46px 24px}
  .book-premium .booking-steps span{width:auto;min-width:0;min-height:74px;flex:1 1 0;border:0;background:transparent;padding:0;display:grid;grid-template-columns:1fr;justify-items:center;text-align:center}
  .book-premium .booking-steps span:not(.on){background:transparent}
  .book-premium .booking-steps span b{width:42px;height:42px;font-size:17px}
  .book-premium .booking-steps span em{font-size:16px}
  .book-premium .booking-steps i{display:block;width:48px;flex:0 0 48px;margin-top:-26px}
  .book-premium .booking-ride-hero{grid-template-columns:minmax(0,.84fr) minmax(240px,1fr);padding:34px 38px 24px;gap:18px}
  .book-premium .booking-ride-copy :is(h1,h3){font-size:62px;max-width:none}
  .book-premium .booking-ride-media{min-height:280px}
  .book-premium .booking-ride-media img{max-height:330px}
  .book-premium .booking-benefits{grid-template-columns:repeat(3,1fr);gap:0}
  .book-premium .booking-benefits span{border-right:1px solid rgba(20,58,56,.12);padding:0 12px;grid-template-columns:42px minmax(0,1fr)}
  .book-premium .booking-benefits span:last-child{border-right:0}
}

@media(max-width:680px){
  .book-premium .booking-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:20px 10px 18px}
  .book-premium .booking-steps span{width:auto;min-width:0;min-height:72px;padding:0 2px;display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;gap:8px;background:transparent}
  .book-premium .booking-steps span:not(.on){background:transparent}
  .book-premium .booking-steps span b{width:42px;height:42px;font-size:16px}
  .book-premium .booking-steps span em{font-size:11.5px;line-height:1.15;overflow-wrap:anywhere}
  .book-premium .booking-steps i{display:none}
}

/* ---- line icons in value cards ---- */
.feat .ic{width:44px;height:44px;border-radius:12px;background:rgba(198,164,78,.14);display:grid;place-items:center;color:var(--gold-2);margin-bottom:14px}
.feat .ic svg{width:24px;height:24px;display:block}
/* photos that are set to "fit whole photo" get a soft backdrop instead of hard bars */
.bike .pic img[style*="contain"],.arch img[style*="contain"]{padding:6%}

/* attached document (PDF / scan / doc) shown in an upload tile */
.upl .filechip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px;text-align:center;width:100%;height:100%}
.upl .filechip .fi{font-size:30px;line-height:1}
.upl .filechip .fn{font-size:12.5px;font-weight:600;color:var(--ink);word-break:break-word;max-width:100%}
.upl .filechip .fs{font-size:11px;color:var(--muted)}

/* ---------- delivery pin ---------- */
.pinmap{height:240px;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#e8eceb}
.pinbar{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}
.pinbar .muted{font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pinbar .map-open{white-space:nowrap}
.pinfallback{display:grid;place-items:center;height:100%;padding:20px;text-align:center;color:var(--muted);font-size:14px}
/* Marker drawn in CSS so there is no image file to ship or fail to load. */
.koli-pin span{display:block;width:26px;height:26px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  background:var(--teal);border:3px solid var(--gold);box-shadow:0 3px 10px rgba(0,0,0,.35)}
.leaflet-container{font:inherit}
.leaflet-control-attribution{font-size:10px}
@media(max-width:680px){ .pinmap{height:200px} }


/* ---------- skip to content ---------- */
.booking-field-error{display:block;color:#a12f24;font-size:13px;margin-top:6px;white-space:normal;overflow-wrap:anywhere}
.booking-quote-inline{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:14px 0;border-block:1px solid var(--line)}
.booking-quote-inline b{font-size:22px}
.booking-quote-inline em{grid-column:1/-1;font-size:13px;color:var(--muted);font-style:normal}
[aria-invalid="true"]{outline:2px solid #a12f24;outline-offset:2px}
.upl{font:inherit;color:inherit;width:100%}
.upl:focus-visible,.faq-item summary:focus-visible,.pin-entry summary:focus-visible{outline:3px solid var(--gold-ink);outline-offset:4px}
.signature-upload{margin-top:14px}
.booking-date-label{font-size:13px!important;color:var(--muted);font-weight:600}
.booking-date-fields,.booking-schedule-col,.booking-timing-pane,.booking-map-pane{min-width:0}
.booking-date-fields input,.field input,.field select,.field textarea{min-width:0;max-width:100%;box-sizing:border-box}
.booking-quick-dates button{min-width:0;white-space:normal;overflow-wrap:anywhere}
.pin-entry{padding:12px 16px;border-top:1px solid var(--line);font-size:13px}
.pin-entry summary{cursor:pointer;color:var(--teal);font-weight:600}
.pin-entry .row2{margin-top:12px}
@media(min-width:681px) and (max-width:1099px){
  .hdr .nav{display:none}
  .hdr .wrap{gap:14px}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px}
  .mobnav[hidden]{display:none}
  .mobnav:not([hidden]){display:flex;flex-wrap:wrap;gap:0;background:var(--card);border-top:1px solid var(--line)}
  .mobnav a{padding:16px 20px;font-weight:600}
}
@media(max-width:430px){
  .booking-date-col{grid-template-columns:minmax(0,1fr)!important}
  .booking-date-col>.booking-loc-ic{display:none}
  .book-premium .booking-totalbar{grid-template-columns:minmax(0,1fr)!important}
  .booking-location-card .pinbar{grid-template-columns:minmax(0,1fr)!important}
}
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--teal);color:var(--cream);
  padding:12px 18px;border-radius:0 0 10px 0;font-weight:600;text-decoration:none}
.skip:focus{left:0}

/* ---------- gallery: videos that play in place ---------- */
.gal.auto,.gal.ig{margin:0;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--teal);display:flex;flex-direction:column}
.gal.auto video,.gal.auto iframe{width:100%;aspect-ratio:9/16;display:block;border:0;object-fit:cover;background:#000}
.gal.ig iframe{width:100%;height:560px;display:block;border:0;background:#fff}
.gal.auto .gal-t,.gal.ig .gal-t{padding:12px 14px;font-weight:600;font-size:14px;color:var(--cream);background:var(--teal)}
@media(max-width:680px){ .gal.ig iframe{height:520px} }

/* the logo mark keeps its own proportions wherever it sits */
.logo .mark{width:34px;height:auto;display:block;flex:0 0 auto}


/* Keyboard focus. Inputs already had a gold ring; links and buttons fell back
   to whatever the browser drew, which varies and is easy to lose on cream.
   :focus-visible so it appears for keyboard users without ringing every click. */
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{
  outline:3px solid var(--gold);outline-offset:3px;border-radius:4px}

/* An embedded Instagram post. The iframe carries Instagram's own chrome, so it
   needs more height than a bare photo tile and must not be clipped. */
.ig.ig-post{padding:0;background:none;aspect-ratio:auto;overflow:visible}
.ig.ig-post iframe{width:100%;min-height:400px;border:0;display:block;background:var(--card);border-radius:14px}

/* ---------------------------------------------------------------------------
   Rental agreement + signature, on the booking form.
   Signed on a phone, with a finger — so the pad is tall enough to write in and
   the terms scroll in their own box rather than burying the form.
   --------------------------------------------------------------------------- */
.uploads.one{grid-template-columns:1fr;max-width:340px}

.agree{margin-top:18px;padding-top:16px;border-top:1px solid var(--line,#e6e0d4)}
.terms{
  max-height:190px;overflow-y:auto;
  padding:12px 14px;
  border:1px solid var(--line,#e6e0d4);border-radius:10px;
  background:#fff;
  font-size:13.5px;line-height:1.65;color:#3d4a47;
  white-space:pre-wrap;
}
.terms:focus-visible{outline:2px solid var(--gold-ink,#8a6e1e);outline-offset:2px}

.sigbox{position:relative;border:1px dashed var(--line,#c9c0ac);border-radius:10px;background:#fff;overflow:hidden}
/* Without this the page scrolls under the finger and signing is impossible. */
.sigbox canvas{display:block;width:100%;height:160px;touch-action:none;cursor:crosshair}
.sigbox::after{
  content:"Sign here";
  position:absolute;left:14px;bottom:10px;
  font-size:12px;color:#b4ada0;pointer-events:none;letter-spacing:.04em;
}
.sigclear{
  position:absolute;top:8px;right:8px;
  border:1px solid var(--line,#e6e0d4);background:#fff;border-radius:7px;
  padding:4px 10px;font-size:12px;color:#5d6a67;cursor:pointer;font:inherit;font-size:12px;
}
.sigclear:hover{background:var(--salt)}

/* ---------- live booking and app tracking prototypes ---------- */
.live-demo{min-height:calc(100vh - 86px);background:linear-gradient(180deg,#f9fbfb 0%,var(--salt) 100%);padding:22px}
.live-demo-shell{display:grid;grid-template-columns:minmax(340px,440px) minmax(0,1fr);max-width:1320px;margin:0 auto;min-height:min(760px,calc(100vh - 130px));border-radius:26px;overflow:hidden;background:var(--white);box-shadow:0 28px 80px -48px rgba(13,42,40,.58)}
.live-booking-panel{position:relative;z-index:3;padding:30px 24px 24px;background:rgba(255,253,248,.97);box-shadow:14px 0 44px rgba(13,42,40,.08);overflow:auto}
.live-mini-kicker{font-size:10px;font-weight:900;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-ink);margin-bottom:12px}
.live-booking-panel h1{font-size:clamp(34px,3.25vw,48px);line-height:.98;color:var(--ink);max-width:8em;margin-bottom:10px}
.live-booking-panel p{color:#65736f;font-size:14.5px;line-height:1.5;margin-bottom:14px}
.live-select{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center;border:1px solid rgba(20,58,56,.12);border-radius:15px;background:#fff;padding:12px 13px;margin-bottom:10px}
.live-select::before{content:'';width:42px;height:42px;border-radius:50%;background:rgba(198,164,78,.14);box-shadow:inset 0 0 0 9px rgba(255,253,248,.64)}
.live-select span{display:block;color:var(--muted);font-size:13px}.live-select b{font-size:18px;color:var(--teal)}
.live-saved-places{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px}
.live-saved-places button{display:grid;grid-template-columns:24px 1fr;gap:4px 7px;align-items:center;text-align:left;border:1px solid var(--line);border-radius:13px;background:#fff;padding:10px 9px;color:var(--ink)}
.live-saved-places button.on{border-color:var(--gold);box-shadow:0 0 0 2px rgba(198,164,78,.14);background:#fffaf0}
.live-saved-places svg{width:24px;height:24px;color:var(--gold-ink);grid-row:1/3}.live-saved-places span{font-weight:800;font-size:13.5px}.live-saved-places small{color:var(--muted);font-size:11.5px}
.live-form-grid,.live-pay-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px}
.live-form-grid label{border:1px solid var(--line);border-radius:14px;background:#fff;padding:11px 12px}.live-form-grid span{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.live-form-grid b{font-size:15.5px;color:var(--teal)}
.live-bike-card{display:grid;grid-template-columns:108px minmax(0,1fr);gap:12px;align-items:center;border:1px solid var(--gold);border-radius:16px;background:var(--white);padding:12px;margin:4px 0 12px}
.live-bike-card img{width:108px;height:82px;object-fit:contain;filter:drop-shadow(0 14px 12px rgba(13,42,40,.12))}
.live-bike-card b{display:block;font-size:19px;line-height:1.05;color:var(--ink)}.live-bike-card span,.live-bike-card small{display:block;color:var(--muted);font-size:12.5px;line-height:1.32}.live-bike-card strong{grid-column:1/-1;font-size:22px;line-height:1;color:var(--teal);text-align:left}.live-bike-card strong em{display:inline;font-style:normal;color:var(--muted);font-size:12px;font-weight:700;margin-left:4px}
.live-pay-row button{border:1px solid var(--line);border-radius:13px;background:#fff;padding:11px 10px;font-weight:800;color:var(--ink)}.live-pay-row button.on{border-color:#2f8d5a;background:#f1fbf4;color:#17623b}
.live-available{position:relative;border-radius:16px;background:linear-gradient(90deg,#eef8ef,#f9fbf6);padding:14px 15px 14px 56px;margin-bottom:12px;color:#61716d}.live-available::before{content:'✓';position:absolute;left:16px;top:50%;transform:translateY(-50%);width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#4b9b4f;color:white;font-weight:900}.live-available b{display:block;color:var(--teal);font-size:15.5px}.live-available span{display:block;font-size:12.5px;line-height:1.33}
.live-total{display:grid;grid-template-columns:1fr;gap:4px;align-items:center;border-top:1px solid var(--line);padding-top:13px}.live-total span{color:var(--muted);font-weight:800}.live-total b{font-size:32px;line-height:1;color:var(--ink)}.live-total em{font-style:normal;color:var(--muted)}.live-total .btn{margin-top:8px;border-radius:999px;min-height:54px;justify-content:center;width:100%}
.live-map-stage{position:relative;min-height:720px;background-color:#88dfe7;background-size:cover;background-position:center;overflow:hidden;isolation:isolate}.live-map-stage::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,32,31,.05),rgba(8,32,31,0) 35%,rgba(8,32,31,.08)),radial-gradient(circle at 82% 14%,rgba(255,253,248,.34),transparent 24%);z-index:1;pointer-events:none}
.live-real-map{position:absolute;inset:0;z-index:0;background:#8adce7;filter:saturate(1.08) contrast(.98);transform:scale(1.01)}
.live-real-map .leaflet-tile{filter:saturate(1.08) brightness(1.04)}
.live-real-map .leaflet-control-attribution{font-size:8px;background:rgba(255,255,255,.74);color:#66726f}
.live-map-stage.has-real-map .live-map-label,.live-map-stage.has-real-map .live-route,.live-map-stage.has-real-map .live-route-dot,.live-map-stage.has-real-map .live-pin,.live-map-stage.has-real-map .live-bike-marker{display:none}
.live-three-world{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}.live-three-world canvas{display:block;width:100%;height:100%}.has-three-world>.live-ambient{display:none}
.live-google-overlay{position:absolute;left:0;top:0;z-index:8;pointer-events:none;will-change:transform}
.live-map-toolbar{position:absolute;z-index:9;top:22px;right:104px;display:flex;align-items:center;gap:9px;pointer-events:auto}.live-area-switch{display:flex;gap:3px;padding:4px;border:1px solid rgba(20,58,56,.13);border-radius:999px;background:rgba(255,253,248,.92);box-shadow:0 12px 28px rgba(13,42,40,.14);backdrop-filter:blur(10px)}.live-area-switch[hidden]{display:none!important}.live-area-switch button{min-height:34px;border:0;border-radius:999px;background:transparent;color:#687572;padding:7px 11px;font:inherit;font-size:11px;font-weight:800;cursor:pointer}.live-area-switch button.on{background:var(--teal);color:#fff}.live-provider-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;background:rgba(255,253,248,.92);color:var(--teal);padding:10px 12px;font-size:11px;font-weight:900;box-shadow:0 12px 28px rgba(13,42,40,.14);backdrop-filter:blur(10px)}.live-provider-badge i,.live-app-eta small i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#24a861;box-shadow:0 0 0 4px rgba(36,168,97,.14);animation:livePulse 1.8s ease-out infinite}
.live-ocean-motion{position:absolute;inset:-8%;z-index:1;pointer-events:none;opacity:.36;background:radial-gradient(ellipse at 20% 35%,rgba(255,255,255,.30),transparent 18%),radial-gradient(ellipse at 75% 68%,rgba(255,255,255,.22),transparent 21%),repeating-linear-gradient(118deg,rgba(255,255,255,.14) 0 1px,transparent 1px 34px);mix-blend-mode:soft-light;animation:oceanDrift 5s ease-in-out infinite alternate}
.live-leaflet-bike{border:0!important;background:transparent!important;overflow:visible!important}
.live-rider{position:relative;width:126px;height:96px;filter:drop-shadow(0 12px 13px rgba(13,42,40,.28));animation:riderBob .72s ease-in-out infinite alternate;transform-origin:50% 80%}
.live-rider>img{display:block;width:124px;height:88px;object-fit:contain;object-position:center;transform:scaleX(-1)}
.live-rider-bubble{position:absolute;z-index:2;left:72px;top:-38px;max-width:220px;white-space:nowrap;border-radius:14px;background:#fff7e8;color:var(--teal);border:1px solid rgba(198,164,78,.35);padding:9px 12px;font-size:11.5px;font-weight:900;box-shadow:0 12px 24px rgba(13,42,40,.13)}
.live-rider-bubble::after{content:'';position:absolute;left:14px;bottom:-6px;width:11px;height:11px;background:#fff7e8;border-right:1px solid rgba(198,164,78,.35);border-bottom:1px solid rgba(198,164,78,.35);transform:rotate(45deg)}
.live-rider-bubble.is-arriving{left:auto;right:40px;top:72px;width:190px;white-space:normal;text-align:center}
.live-rider-bubble.is-arriving::after{display:none}
.live-leaflet-pin{position:relative!important;border:0!important;background:transparent!important}.live-leaflet-pin span{position:absolute;left:-14px;top:-18px;width:30px;height:30px;border-radius:50% 50% 50% 0;background:var(--teal);border:4px solid #fff;box-shadow:0 10px 24px rgba(13,42,40,.26);transform:rotate(-45deg)}.live-leaflet-pin.end span{background:#2b8859}.live-leaflet-pin b{position:absolute;left:18px;top:-26px;white-space:nowrap;border-radius:13px;background:#fff;padding:8px 11px;color:var(--ink);font-size:13px;font-weight:900;box-shadow:0 10px 24px rgba(13,42,40,.16)}
.live-leaflet-pin.end b{left:-112px;top:18px}
.live-ambient{position:absolute;z-index:3;display:block;pointer-events:none;object-fit:contain;filter:drop-shadow(0 10px 14px rgba(13,42,40,.18))}
.live-speedboat{width:118px;height:76px}.live-speedboat-a{left:7%;top:24%;animation:boatGlideA 7.5s linear infinite}.live-speedboat-b{right:9%;bottom:15%;width:94px;height:62px;animation:boatGlideB 9s linear infinite}
.live-dhoni{left:5%;bottom:10%;width:168px;height:116px;animation:dhoniFloat 4.8s ease-in-out infinite alternate}
.live-cloud-image{z-index:5;width:430px;height:auto;opacity:.72;filter:drop-shadow(0 16px 28px rgba(255,255,255,.18))}.live-cloud-image.live-cloud-a{left:-115px;top:-54px;animation:ambientCloudA 18s ease-in-out infinite alternate}.live-cloud-image.live-cloud-b{right:-160px;bottom:-36px;width:360px;animation:ambientCloudB 22s ease-in-out infinite alternate}
.live-map-label{position:absolute;z-index:2;font-family:var(--serif);font-size:28px;font-weight:800;color:#0d2a28;text-shadow:0 2px 16px rgba(255,255,255,.8);letter-spacing:.04em}.live-map-label.male{left:18%;top:47%}.live-map-label.hulhumale{right:20%;top:41%}
.live-route{position:absolute;z-index:2;left:53%;top:24%;width:9px;height:58%;border-radius:999px;background:#0e8054;box-shadow:0 0 0 5px rgba(255,255,255,.9);transform:rotate(16deg);transform-origin:center}.live-route-dot{position:absolute;z-index:3;width:18px;height:18px;border-radius:50%;background:#fff;border:5px solid #0e8054}.live-route-dot.d1{left:60%;top:26%}.live-route-dot.d2{left:58%;top:50%}.live-route-dot.d3{left:52%;top:70%}
.live-pin{position:absolute;z-index:4;width:40px;height:40px;border-radius:50% 50% 50% 0;background:var(--teal);border:4px solid #fff;box-shadow:0 12px 25px rgba(13,42,40,.32);transform:rotate(-45deg)}.live-pin span{position:absolute;left:26px;top:-2px;transform:rotate(45deg);white-space:nowrap;border-radius:13px;background:#fff;padding:11px 14px;color:var(--ink);font-weight:800;box-shadow:0 12px 30px rgba(13,42,40,.18)}.live-pin.start{left:50%;top:72%;background:#12312e}.live-pin.end{right:18%;top:22%;background:#2b8859}
.live-bike-marker{position:absolute;z-index:6;left:53%;top:66%;width:86px;height:66px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.94);box-shadow:0 16px 34px rgba(13,42,40,.24)}.live-bike-marker img{width:82px;height:52px;object-fit:contain;transform:scaleX(-1)}
.live-eta{position:absolute;z-index:6;left:24px;top:24px;max-width:290px;border-radius:18px;background:rgba(255,247,232,.94);color:var(--teal);border:1px solid rgba(198,164,78,.38);padding:15px 17px;box-shadow:0 18px 36px rgba(13,42,40,.18);backdrop-filter:blur(10px)}.live-eta b{display:block;font-size:16px;line-height:1.2}.live-eta span{display:block;margin-top:5px;font-size:12.5px;line-height:1.35;color:#65736f}
.live-compass,.live-zoom button{border:0;background:#fff;color:var(--teal);box-shadow:0 14px 34px rgba(13,42,40,.18);font-weight:900}.live-compass{position:absolute;right:28px;top:28px;z-index:6;width:58px;height:58px;border-radius:50%}.live-zoom{position:absolute;right:28px;bottom:118px;z-index:6;display:grid;border-radius:14px;overflow:hidden}.live-zoom button{width:46px;height:42px;font-size:22px}.live-zoom button+button{border-top:1px solid var(--line)}
.live-map-actions{position:absolute;left:30px;bottom:30px;z-index:7;display:flex;gap:10px}.live-map-stage.replay{animation:mapZoomIn 5s cubic-bezier(.18,.74,.22,1) both}.live-map-stage.replay .live-cloud-a{animation:cloudSweepA 5s ease both}.live-map-stage.replay .live-cloud-b{animation:cloudSweepB 5s ease both}.live-map-stage.replay .live-bike-marker{animation:bikeRoute 5s cubic-bezier(.4,0,.2,1) .3s both}
.live-tilt{position:relative;transform:perspective(700px) rotateX(var(--tiltY,0deg)) rotateY(var(--tiltX,0deg));transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;will-change:transform}
.live-tilt::after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--glowX,50%) var(--glowY,50%),rgba(255,255,255,.42),transparent 46%);opacity:0;pointer-events:none;transition:opacity .18s ease}
.live-tilt:hover{box-shadow:0 16px 34px rgba(13,42,40,.12);border-color:rgba(198,164,78,.48)}
.live-tilt:hover::after{opacity:1}
@keyframes mapZoomIn{0%{transform:scale(1.06);filter:saturate(.88) brightness(1.05)}100%{transform:scale(1);filter:saturate(1) brightness(1)}}@keyframes cloudSweepA{0%{transform:translate(28px,20px) scale(1.08);opacity:.95}100%{transform:translate(-80px,-34px) scale(.96);opacity:.58}}@keyframes cloudSweepB{0%{transform:translate(-28px,-10px) scale(1.04);opacity:.9}100%{transform:translate(80px,42px) scale(.96);opacity:.54}}@keyframes bikeRoute{0%{left:51%;top:72%;transform:scale(.82)}46%{left:55%;top:56%;transform:scale(.94)}100%{left:62%;top:35%;transform:scale(1)}}@keyframes ambientCloudA{0%{transform:translateX(0)}100%{transform:translateX(56px) translateY(8px)}}@keyframes ambientCloudB{0%{transform:translateX(0)}100%{transform:translateX(-70px) translateY(-12px)}}@keyframes oceanDrift{0%{transform:translate3d(-12px,-8px,0) scale(1.02)}100%{transform:translate3d(12px,8px,0) scale(1.04)}}@keyframes boatGlideA{0%{transform:translate(-50px,12px) rotate(5deg);opacity:.08}14%,82%{opacity:1}100%{transform:translate(230px,-42px) rotate(5deg);opacity:.08}}@keyframes boatGlideB{0%{transform:translate(90px,-8px) scale(.82) rotate(-7deg);opacity:.08}14%,78%{opacity:.92}100%{transform:translate(-210px,34px) scale(.82) rotate(-7deg);opacity:.08}}@keyframes dhoniFloat{0%{transform:translateY(0) rotate(-2deg)}100%{transform:translateY(-5px) rotate(1deg)}}@keyframes riderBob{0%{transform:translateY(0) rotate(-1.5deg)}100%{transform:translateY(-2px) rotate(1.5deg)}}@keyframes livePulse{0%{box-shadow:0 0 0 0 rgba(36,168,97,.34)}70%,100%{box-shadow:0 0 0 7px rgba(36,168,97,0)}}

.live-app-demo{display:grid;place-items:center;background:#f3efe6;padding:28px 16px}.live-phone-app{width:min(100%,430px);border-radius:30px;background:var(--white);overflow:hidden;box-shadow:0 36px 90px rgba(7,18,17,.32)}.live-app-hero{position:relative;min-height:176px;background-color:#123d39;background-size:cover;background-position:center;color:var(--cream);padding:22px 22px 30px;overflow:hidden}.live-app-hero::after{content:'';position:absolute;inset:0;background:rgba(8,39,36,.82);pointer-events:none}.live-app-top{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.live-app-top b{display:block;font-size:27px;letter-spacing:.22em}.live-app-top span{display:block;text-transform:uppercase;letter-spacing:.24em;color:var(--brass-light);font-size:10px}.live-app-top button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#f2eadb;color:var(--teal);font-weight:900}.live-app-greeting{position:relative;z-index:1;display:flex;justify-content:space-between;gap:18px;align-items:flex-end}.live-app-hero p,.live-app-hero h1,.live-app-hero strong{position:relative;z-index:1}.live-app-hero p{font-size:14px;margin:0 0 2px;color:#e2ece9}.live-app-hero h1{font-size:42px;line-height:.95;margin:0;color:#fff}.live-app-hero strong{display:block;max-width:135px;text-align:right;font-size:16px;line-height:1.25;font-weight:650}
.live-app-card{margin:0 14px 14px;position:relative;z-index:3;border:1px solid rgba(20,58,56,.10);border-radius:20px;background:rgba(255,253,248,.97);box-shadow:0 18px 44px rgba(13,42,40,.10)}.live-ride-card{padding:18px}.live-ride-card-compact{margin-top:-34px}.live-status-dot{display:inline-flex;align-items:center;gap:8px;border-radius:999px;background:#e8f5eb;color:#17623b;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:900;padding:7px 11px;margin-bottom:9px}.live-status-dot::before{content:'';width:8px;height:8px;border-radius:50%;background:#1fa160}.live-ride-grid{display:grid;grid-template-columns:1fr 124px;gap:8px;align-items:end}.live-ride-grid h2{font-size:28px;line-height:1;margin:0 0 7px;color:var(--teal)}.live-ride-grid p{color:var(--muted);font-size:13px;line-height:1.35;margin:0}.live-ride-grid img{width:124px;height:88px;object-fit:contain;filter:drop-shadow(0 16px 16px rgba(13,42,40,.14))}.live-ride-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.live-ride-facts em{display:block;font-style:normal;color:var(--muted);font-size:10.5px}.live-ride-facts b{display:block;color:var(--ink);font-size:12.5px;line-height:1.3;margin-top:3px}
.live-app-map{position:relative;height:470px;margin:0;background-color:#78d7e1;background-size:cover;background-position:center;overflow:hidden;isolation:isolate;box-shadow:0 18px 44px rgba(13,42,40,.10)}.live-app-map::after{content:'';position:absolute;inset:0;z-index:1;background:rgba(255,255,255,.04);pointer-events:none}.live-app-map .live-real-map{filter:saturate(1.18) brightness(1.04)}.live-app-map .live-ocean-motion{opacity:.22}.live-app-map .live-rider{width:102px;height:78px}.live-app-map .live-rider>img{width:100px;height:72px}.live-app-map .live-rider-bubble{left:auto;right:46px;top:-42px;width:170px;white-space:normal;text-align:center;font-size:10px;line-height:1.25;padding:8px 10px}.live-app-map .live-rider-bubble::after{left:auto;right:15px}.live-app-map .live-rider-bubble.is-arriving{left:-36px;right:auto;top:64px}.live-app-map .live-rider-bubble.is-arriving::after{display:none}.live-app-map .live-leaflet-pin.end b{display:none}.live-app-cloud{left:-95px;top:-60px;width:295px;height:auto;z-index:5;opacity:.64;filter:drop-shadow(0 16px 28px rgba(255,255,255,.2));animation:ambientCloudA 16s ease-in-out infinite alternate}.live-app-speedboat{right:-22px;top:57%;width:90px;height:58px;animation:boatGlideB 8s linear infinite}.live-app-dhoni{left:-28px;bottom:-10px;width:112px;height:82px;animation:dhoniFloat 4.8s ease-in-out infinite alternate}.live-app-map-toolbar{left:10px;right:10px;top:10px;justify-content:center}.live-app-map-toolbar .live-area-switch{max-width:100%;overflow:auto}.live-app-map-toolbar .live-area-switch button{padding:6px 10px}.live-app-eta{position:absolute;left:12px;top:62px;z-index:8;border-radius:15px;background:rgba(255,247,232,.95);color:var(--teal);border:1px solid rgba(198,164,78,.38);padding:10px 12px;box-shadow:0 12px 28px rgba(13,42,40,.16);backdrop-filter:blur(8px)}.live-app-eta small{display:flex;align-items:center;gap:6px;margin-bottom:5px;color:#4d6863;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.live-app-eta small span{display:inline;margin:0;color:inherit;font-size:inherit}.live-app-eta b{display:block;font-size:19px;line-height:1.1}.live-app-eta>span{display:block;margin-top:3px;font-size:11.5px;color:#64716f}.live-locate{position:absolute;right:12px;top:68px;z-index:8;border:0;border-radius:999px;background:#fff;color:var(--teal);font-weight:900;padding:10px 12px;box-shadow:0 10px 25px rgba(13,42,40,.18)}.live-locate:disabled{opacity:.7}.live-map-staff-sheet{position:absolute;left:12px;right:12px;bottom:12px;z-index:9;display:grid;grid-template-columns:62px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(20,58,56,.12);border-radius:18px;background:rgba(255,253,248,.95);padding:10px 11px 10px 8px;box-shadow:0 18px 38px rgba(13,42,40,.18);backdrop-filter:blur(12px)}.live-map-staff-sheet img{width:62px;height:58px;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(13,42,40,.16))}.live-map-staff-sheet small,.live-map-staff-sheet b,.live-map-staff-sheet span{display:block}.live-map-staff-sheet small{font-size:8.5px;font-weight:900;text-transform:uppercase;letter-spacing:.13em;color:var(--gold-ink)}.live-map-staff-sheet b{font-size:13px;color:var(--teal);margin:2px 0}.live-map-staff-sheet span{font-size:10.5px;color:var(--muted)}.live-map-staff-sheet button{border:1px solid rgba(20,58,56,.16);border-radius:999px;background:#fff;color:var(--teal);font-weight:900;padding:9px 10px;font-size:10px}
.live-staff-card{display:grid;grid-template-columns:96px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:14px 14px 14px 10px}.live-staff-card>img{width:96px;height:86px;object-fit:contain;filter:drop-shadow(0 12px 16px rgba(13,42,40,.16))}.live-staff-card small{display:block;color:var(--gold-ink);font-size:10px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.live-staff-card h2{font-size:24px;line-height:1;margin:4px 0;color:var(--teal)}.live-staff-card p{font-size:12px;line-height:1.35;color:var(--muted);margin:0 0 5px}.live-staff-card strong{display:block;font-size:12px;line-height:1.35;color:var(--ink)}.live-staff-card>a{width:42px;height:42px;border:0;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:#fff}.live-staff-card>a svg{width:18px;height:18px}.live-map-staff-sheet i,.live-app-timeline i{font-style:normal}
.live-payment-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:16px}.live-payment-card small,.live-payment-card span{display:block;color:var(--muted);font-size:11px}.live-payment-card h3{font-size:15px;margin:3px 0 4px;color:var(--ink)}.live-payment-card code{display:block;font-family:inherit;font-size:20px;font-weight:900;letter-spacing:.04em;color:var(--teal);overflow-wrap:anywhere}.live-payment-card button{border:1px solid rgba(20,58,56,.16);border-radius:999px;background:#f3eee4;color:var(--teal);font-weight:900;padding:11px 13px;white-space:nowrap}.live-payment-card button:hover{border-color:var(--gold);background:#fff8e9}
.live-app-timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:14px;border:1px solid var(--line);border-radius:20px;background:#fff;padding:16px 10px}.live-app-timeline span{position:relative;text-align:center;font-size:12.5px;font-weight:800;color:#6a7774}.live-app-timeline b{display:grid;place-items:center;margin:0 auto 8px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(20,58,56,.18);background:#fff;color:var(--muted)}.live-app-timeline span.done b{background:var(--gold);color:#fff;border-color:var(--gold)}.live-app-timeline span.now b{background:var(--teal);color:#fff;border-color:var(--teal)}.live-app-timeline em{display:block;font-style:normal;font-weight:500;color:var(--muted);margin-top:2px}.live-quick-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px}.live-quick-actions button,.live-saved-list button{border:1px solid var(--line);border-radius:16px;background:#fff;padding:14px 10px;color:var(--teal);font-weight:800;min-height:70px}.live-saved-list{padding:0 14px 14px}.live-saved-list h3{font-size:18px;margin:0}.live-saved-list a{color:var(--gold-ink);font-size:13px;font-weight:800}.live-saved-list button{width:100%;display:block;text-align:left;margin-top:10px;min-height:auto}.live-saved-list b,.live-saved-list span{display:block}.live-saved-list span{color:var(--muted);font-weight:500;margin-top:2px}.live-help-card{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;margin:0 14px 18px;border-radius:18px;background:linear-gradient(90deg,#eff8ee,var(--white));padding:16px}.live-help-card b,.live-help-card span{display:block}.live-help-card span{color:var(--muted);font-size:13px}.live-help-card button{border:0;border-radius:999px;background:var(--teal);color:#fff;font-weight:900;padding:13px 16px}
@media(max-width:980px){.live-demo{padding:12px}.live-demo-shell{grid-template-columns:1fr}.live-booking-panel{box-shadow:none}.live-map-stage{min-height:620px}.live-total{grid-template-columns:1fr}.live-total .btn{grid-row:auto;grid-column:1;min-width:0}}
@media(max-width:560px){.live-demo{padding:0}.live-demo-shell{border-radius:0}.live-booking-panel{padding:26px 18px}.live-booking-panel h1{font-size:42px}.live-saved-places,.live-form-grid,.live-pay-row{grid-template-columns:1fr}.live-bike-card{grid-template-columns:96px 1fr}.live-bike-card strong{grid-column:1/-1;text-align:left}.live-map-stage{min-height:560px}.live-map-stage>.live-map-toolbar{left:10px;right:10px;top:10px;justify-content:center}.live-map-stage>.live-map-toolbar .live-provider-badge{display:none}.live-eta{left:12px;right:12px;top:62px;max-width:none}.live-map-actions{left:12px;right:12px;bottom:14px;display:grid}.live-pin span{display:none}.live-phone-app{border-radius:0;box-shadow:none}.live-app-demo{padding:0}.live-ride-grid{grid-template-columns:1fr 112px}.live-ride-grid img{width:112px;height:82px}.live-ride-facts{grid-template-columns:repeat(3,1fr)}.live-quick-actions{grid-template-columns:1fr 1fr}.live-help-card{grid-template-columns:1fr}.live-help-card button{width:100%}}
@media(prefers-reduced-motion:reduce){.live-ocean-motion,.live-rider,.live-provider-badge i,.live-app-eta small i{animation:none!important}.live-map-stage.replay{animation:none!important}.live-three-world{opacity:.82}}
.live-payment-card[hidden]{display:none}

/* KOLI App section (home) */
.app-store-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.app-store-btn{display:inline-flex;flex-direction:column;justify-content:center;min-width:170px;min-height:56px;padding:8px 18px;border-radius:14px;background:#0d2a28;color:var(--cream,var(--salt));text-decoration:none;line-height:1.15}
.app-store-btn span{font-size:11.5px;opacity:.75;letter-spacing:.02em}
.app-store-btn b{font-size:18px}
.app-store-btn.soon{background:transparent;color:var(--muted);border:1px dashed var(--line)}
@media (max-width:760px){.app-store-btn{flex:1 1 150px}}

/* Privacy policy and account deletion */
.legal-page h1{font-size:clamp(34px,5vw,52px);line-height:1.05;margin:6px 0 14px}
.legal-page .lead{color:var(--muted);font-size:17px;line-height:1.65}
.legal-block{margin-top:28px}
.legal-block h2{font-size:21px;margin:0 0 10px}
.legal-block p,.legal-block li{line-height:1.7;color:var(--ink,inherit)}
.legal-block ul{padding-left:20px;display:grid;gap:8px;margin:0}
/* Usage-statistics consent: a slim frosted pill along the bottom; a rounded card on phones, lifted above the booking bar. */
.koli-usage-banner { position:fixed; left:50%; bottom:calc(18px + env(safe-area-inset-bottom)); transform:translateX(-50%); z-index:65; width:max-content; max-width:min(780px,calc(100vw - 32px)); display:flex; align-items:center; gap:14px; padding:7px 7px 7px 18px; border-radius:999px; border:1px solid rgba(20,58,56,.14); background:rgba(255,253,248,.76); -webkit-backdrop-filter:blur(16px) saturate(1.4); backdrop-filter:blur(16px) saturate(1.4); box-shadow:0 16px 40px -18px rgba(13,42,40,.5), inset 0 1px 0 rgba(255,255,255,.75); color:var(--teal); animation:koliUsageIn .5s cubic-bezier(.2,.8,.2,1) both; }
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) { .koli-usage-banner { background:var(--white); } }
.koli-usage-dot { flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px rgba(198,164,78,.22); }
.koli-usage-banner p { margin:0; font-size:13px; line-height:1.4; color:#3f5a57; }
.koli-usage-banner p b { color:var(--teal); font-weight:700; }
.koli-usage-banner a { text-decoration:underline; text-underline-offset:2px; color:var(--teal); font-weight:600; white-space:nowrap; }
.koli-usage-actions { display:flex; gap:6px; flex:0 0 auto; }
.koli-usage-actions button { min-height:38px; border:1px solid transparent; border-radius:999px; background:transparent; color:var(--teal); padding:8px 16px; font:inherit; font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; transition:background .15s; }
.koli-usage-actions button:hover { background:rgba(20,58,56,.07); }
.koli-usage-actions button[data-choice=allow] { background:var(--teal); color:var(--cream); }
.koli-usage-actions button[data-choice=allow]:hover { background:var(--teal-soft); }
.koli-usage-actions :focus-visible { outline:3px solid #c4a34b; outline-offset:2px; }
@keyframes koliUsageIn { from { opacity:0; transform:translate(-50%,14px); } to { opacity:1; transform:translate(-50%,0); } }
@media(max-width:700px) {
  .koli-usage-banner { left:12px; right:12px; transform:none; width:auto; max-width:none; flex-wrap:wrap; gap:10px 12px; padding:14px 14px 12px 16px; border-radius:22px; animation-name:koliUsageInPhone; }
  .koli-usage-banner p { flex:1 1 0; min-width:0; }
  /* Slimmer on phones (27 Oct 2026) so it covers less of the first screen; the detail is on the Privacy page. */
  .koli-usage-banner { padding:10px 10px 10px 14px; gap:8px 10px; }
  .koli-usage-banner p span { display:none; }
  .koli-usage-dot { align-self:flex-start; margin-top:5px; }
  .koli-usage-actions { width:100%; }
  .koli-usage-actions button { flex:1; border-color:rgba(20,58,56,.18); }
  @keyframes koliUsageInPhone { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
}
@media(max-width:920px) { body.bookbar-on:has(.bookbar:not(.bookbar-hidden)) .koli-usage-banner { bottom:calc(52px + env(safe-area-inset-bottom)); } }
/* Phones (design review, 27 Oct 2026): the statistics question is a slim strip along the bottom edge, one line,
   so it no longer covers the photo and the main button. */
@media(max-width:680px) {
  .koli-usage-banner { left:0; right:0; bottom:0; border-radius:0; border-width:1px 0 0; flex-wrap:nowrap; gap:8px; padding:8px 8px calc(8px + env(safe-area-inset-bottom)) 14px; background:rgba(255,253,248,.96); box-shadow:0 -8px 24px -18px rgba(13,42,40,.45); animation:none; }
  .koli-usage-banner p { font-size:12.5px; }
  .koli-usage-dot, .koli-usage-long { display:none; }
  .koli-usage-actions { width:auto; }
  .koli-usage-actions button { flex:none; min-height:36px; padding:6px 12px; }
}
@media(prefers-reduced-motion:reduce) { .koli-usage-banner { animation:none; } .bookbar { transition:none; } }

h1,h2,.serif { font-family:var(--serif) !important; font-weight:500 !important; letter-spacing:0 !important; overflow-wrap:break-word; }
h3,h4,h5,h6,.eyebrow { font-family:var(--subheading) !important; letter-spacing:0 !important; }
.status-currency { display:flex; align-items:center; justify-content:flex-end; gap:12px; margin-bottom:14px; font-size:12px; color:var(--muted); }
.status-currency .cur-toggle button { min-width:48px; min-height:40px; }

/* Partner businesses */
.home-partners{background:var(--white)}
.home-partner-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 18px 48px rgba(20,58,56,.06)}
.home-partner-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.partner-slides{position:relative;min-height:300px;background:#e9e3d4;overflow:hidden}
.partner-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease}
.partner-slide.on{opacity:1}
.partner-cap{position:absolute;left:14px;bottom:14px;border-radius:999px;background:rgba(255,253,248,.94);color:var(--teal);padding:7px 13px;font-size:12px;font-weight:700;letter-spacing:.02em;box-shadow:0 8px 22px rgba(13,42,40,.18)}
.partner-dots{position:absolute;right:14px;bottom:20px;display:flex;gap:6px}
.partner-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,253,248,.55);transition:background .4s,transform .4s}
.partner-dots i.on{background:var(--white);transform:scale(1.25)}
.partner-body{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:32px 36px}
.partner-body h3{margin-bottom:12px;line-height:0}
.partner-logo{display:block;height:50px;width:auto;max-width:100%}
.partner-body p{color:var(--muted);font-size:14.5px;line-height:1.55;margin-bottom:22px}
.partner-body .btn{white-space:nowrap}
@media(max-width:760px){.home-partner-card{grid-template-columns:1fr}.partner-slides{min-height:0;aspect-ratio:16/11}.partner-body{padding:22px}.partner-body .btn{align-self:stretch;text-align:center;justify-content:center}}

/* ---- Earn with Koli ---- */
.earn-page{padding:34px 0 70px}
.earn-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;align-items:center}
.earn-photo{width:100%;height:auto;max-width:100%;border-radius:26px;object-fit:cover;aspect-ratio:940/650;background:var(--card)}
@media (max-width:860px){.earn-top{grid-template-columns:1fr;gap:8px}.earn-photo{border-radius:20px}}
.earn-hero{max-width:760px;padding:28px 0 8px}
.earn-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(36px,5.4vw,60px);line-height:1.02;margin:10px 0 14px}
.earn-hero p{color:var(--muted);font-size:18px;max-width:40em}
.earn-hero .bookrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.earn-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:44px 0}
.earn-step,.earn-look{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px}
.earn-step b,.earn-look b{display:block;font-size:17px;margin:10px 0 6px}
.earn-step p,.earn-look p{color:var(--muted);font-size:14.5px}
.earn-n{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--teal);color:var(--cream);font-weight:700}
.earn-ways{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:44px}
.earn-way{border:1px solid var(--line);border-radius:22px;padding:28px;background:var(--card)}
.earn-way.on{border-color:var(--teal);box-shadow:var(--shadow)}
.earn-way.soon{background:transparent;border-style:dashed}
.earn-way h2{font-size:28px;margin:8px 0 10px}
.earn-way p{color:var(--muted)}
.earn-calc{background:var(--teal);color:var(--cream);border-radius:26px;padding:34px;margin-bottom:44px}
.earn-calc .eyebrow{color:var(--brass-light)}
.earn-calc .serif.big{font-size:clamp(24px,3vw,34px);line-height:1.15;margin:8px 0 22px;max-width:22em}
.earn-calc .muted,.earn-calc p{color:rgba(250,247,242,.78)}
.earn-calc a.btn-link{color:var(--cream)}
.earn-slider{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;max-width:560px}
.earn-slider span{grid-column:1/-1;font-size:13px;font-weight:600;letter-spacing:.04em;opacity:.85}
.earn-slider input[type=range]{width:100%;accent-color:var(--gold);height:34px}
.earn-slider b{font-size:18px;min-width:5.5em;text-align:right}
.earn-total{margin:22px 0 10px;display:flex;flex-direction:column;gap:2px}
.earn-total span{font-size:13px;letter-spacing:.06em;opacity:.8}
.earn-total b{font-family:var(--serif);font-size:clamp(40px,6vw,64px);line-height:1.05;color:var(--brass-light)}
.earn-total em{font-style:normal;opacity:.85;font-size:14.5px}
.earn-note{font-size:13.5px;max-width:46em;margin-top:6px}
.earn-away{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 4px}
.earn-away div{border:1px solid rgba(250,247,242,.22);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.earn-away span{font-size:12.5px;letter-spacing:.04em;opacity:.8}
.earn-away b{font-family:var(--serif);font-size:22px;color:var(--brass-light);font-variant-numeric:tabular-nums}
.earn-refer{margin-bottom:44px}
@media (max-width:720px){.earn-away{grid-template-columns:1fr 1fr}}
.earn-looks{margin-bottom:44px}
.earn-look-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:14px}
.earn-faq{margin-bottom:44px}
.earn-faq .faq-list{margin-top:14px;max-width:none}
.earn-apply .contact-form-panel .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.earn-mode{border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:4px 0 16px;display:grid;gap:8px}
.earn-mode legend{font-size:13px;font-weight:600;color:var(--muted);padding:0 6px}
.earn-mode label{display:flex;gap:10px;align-items:center;cursor:pointer}
.earn-mode label.off{opacity:.7;cursor:not-allowed}
.earn-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.earn-uploads{grid-template-columns:repeat(4,1fr);margin:6px 0 18px}
.earn-uploads .upl{aspect-ratio:1/1}
.earn-consent{display:flex;gap:10px;align-items:flex-start;margin:6px 0 14px;font-size:14px;color:var(--muted)}
.earn-consent input{margin-top:3px}
.earn-consent a{text-decoration:underline}
.earn-err{background:#fdecea;color:#8a1c12;border:1px solid #f1b8b2;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14.5px}
@media (max-width:900px){
  .earn-steps,.earn-look-grid{grid-template-columns:1fr 1fr}
  .earn-uploads{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  .earn-steps,.earn-look-grid,.earn-ways{grid-template-columns:1fr}
  .earn-apply .contact-form-panel .form-grid{grid-template-columns:1fr}
  .earn-calc{padding:24px 20px;border-radius:20px}
  .earn-hero .bookrow .btn{width:100%;justify-content:center}
}

.earn-statement{max-width:760px;padding-bottom:30px}
.stmt-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.stmt-table th,.stmt-table td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:15px}
.stmt-table th{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.stmt-total{display:flex;justify-content:space-between;align-items:baseline;margin:20px 0 8px;padding:16px 18px;background:var(--teal);color:var(--cream);border-radius:14px}
.stmt-total b{font-family:var(--serif);font-size:28px;color:var(--brass-light)}
@media print{.hdr,.bookbar,footer,.bookrow,.mobnav{display:none!important}.earn-statement{max-width:none}}
/* Desktop header: four links, the currency switch and Book now, with room to
   breathe (Services, Gallery, About and Sign in are in the footer and menu). */
@media(min-width:1100px){
  .hdr .wrap{gap:22px}
  .nav{gap:26px;margin-left:12px}
  .nav a{white-space:nowrap}
}

/* ===================== Brand heroes (19 Oct 2026) =====================
   Built from the owner's banner designs: Motorentals is cream and sunlit,
   Koli Rides is deep teal against the sea, and "Backed by Koli" pairs the
   teal panel with the workshop photo. Diagonal panels on wide screens; on a
   phone each one stacks like the portrait versions. */

/* Home: Koli Motorentals */
.kh{background:var(--cream);overflow:hidden}
.kh-wrap{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;min-height:clamp(520px,72vh,720px)}
.kh-copy{padding:48px max(24px,env(safe-area-inset-left,0px)) 48px max(48px,env(safe-area-inset-left,0px))}
.kh-eyebrow,.kr-eyebrow{font-size:13px;font-weight:600;letter-spacing:.34em;text-transform:uppercase;color:var(--ink);opacity:.85}
.kh-title,.kr-title,.kb-title{font-family:var(--serif);font-weight:600;letter-spacing:-.015em;line-height:.98;margin:18px 0 22px;text-wrap:balance}
.kh-title{font-size:clamp(48px,6.4vw,96px);color:var(--teal-2)}
.kh-price{font-size:clamp(22px,2.3vw,30px);margin:0 0 6px;color:var(--teal-2)}
.kh-price b{font-weight:700}
.kh-note{font-size:clamp(15px,1.4vw,18px);margin:0 0 30px;color:var(--teal-2);opacity:.9}
.kh-actions,.kr-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px}
.kh-cta,.kb-cta{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:clamp(17px,1.6vw,21px);color:var(--teal-2)}
.kh-cta span,.kb-cta span,.kr-cta span{transition:transform .2s}
.kh-cta:hover span,.kb-cta:hover span,.kr-cta:hover span{transform:translateX(4px)}
.kh-alt,.kr-alt{font-size:14px;font-weight:600;color:var(--muted);border-bottom:1px solid currentColor;padding-bottom:1px}
.kh-media{align-self:stretch;position:relative;min-height:420px}
.kh-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:30% 60%}

/* Maafushi: Koli Rides, and the home "Backed by Koli" band */
.kr,.kb{position:relative;display:grid;min-height:clamp(520px,70vh,700px);overflow:hidden;background:var(--teal-2)}
.kr-media,.kb-media{position:absolute;inset:0 0 0 auto;width:62%}
.kr-media img,.kb-media img{width:100%;height:100%;object-fit:cover}
.kr-media img{object-position:35% 55%}
.kb-media img{object-position:20% 60%}
.kr-panel,.kb-panel{position:relative;z-index:1;width:58%;background:var(--teal-2);clip-path:polygon(0 0,100% 0,78% 100%,0 100%);display:flex;align-items:center}
.kr-copy,.kb-copy{padding:56px 22% 56px max(48px,env(safe-area-inset-left,0px));color:var(--cream)}
.kr-eyebrow{color:#a9d7bf;opacity:1}
.kr-title{font-size:clamp(44px,5.4vw,84px);color:var(--cream)}
.kr-sub{font-size:clamp(16px,1.5vw,20px);margin:0 0 22px;opacity:.92}
.kr-rule{display:block;width:40px;height:2px;background:#a9d7bf;margin:0 0 22px}
.kr-price{font-size:clamp(18px,1.8vw,24px);margin:0 0 14px}
.kr-price b{font-weight:700}
.kr .avail-line{margin:0 0 22px;color:var(--cream)}
.kr-cta{display:inline-flex;align-items:center;gap:12px;font-weight:600;letter-spacing:.12em;font-size:clamp(15px,1.3vw,18px);color:#a9d7bf}
.kr-alt{color:var(--cream);opacity:.8}
/* Koli Rides islands (28 Oct 2026): Maafushi | Thoddoo on the dark hero panel */
.kr-islands{background:rgba(250,247,242,.08);border-color:rgba(250,247,242,.18);margin:0 0 22px}
.kr-islands a{color:var(--cream);opacity:.85;text-decoration:none}
.kr-islands a.on{background:var(--cream);color:var(--teal);opacity:1}
.kr-soon{margin:0 0 22px;font-size:16px;line-height:1.5;color:var(--cream);max-width:34ch}
.kr-soon b{display:block;font-size:18px}
.kb-title{font-size:clamp(40px,4.8vw,76px);color:var(--cream)}
.kb-kicker{font-size:13px;letter-spacing:.3em;text-transform:uppercase;margin:0 0 30px;opacity:.9}
.kb-points{list-style:none;padding:0;margin:0 0 34px;display:grid;gap:18px}
.kb-points li{display:grid;grid-template-columns:34px 1px 1fr;align-items:center;gap:16px;font-size:16px}
.kb-points li::after{content:none}
.kb-points svg{width:30px;height:30px;fill:none;stroke:var(--cream);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.kb-points li span{grid-column:3}
.kb-points li{background:linear-gradient(var(--cream),var(--cream)) 50px 50%/1px 28px no-repeat}
.kb-cta{font-family:var(--serif);font-weight:600;color:var(--cream);font-size:clamp(22px,2.2vw,30px)}

@media(max-width:900px){
  .kh-wrap{grid-template-columns:1fr;min-height:0;text-align:center}
  .kh-copy{padding:40px max(20px,env(safe-area-inset-left,0px)) 8px}
  .kh-actions{justify-content:center}
  .kh-media{min-height:0;aspect-ratio:1004/887;max-width:100%}
  .kr,.kb{display:block;min-height:0}
  .kr-panel,.kb-panel{width:100%;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
  .kr-copy,.kb-copy{padding:44px max(20px,env(safe-area-inset-left,0px)) 64px;text-align:center;width:100%}
  .kr-rule{margin:0 auto 22px}
  .kr-actions{justify-content:center}
  .kr .avail-line{justify-content:center}
  .kr-media,.kb-media{position:relative;width:100%;aspect-ratio:4/3;margin-top:-40px}
  .kb-points{justify-items:start;max-width:340px;margin:0 auto 30px;text-align:left}
}
@media(prefers-reduced-motion:reduce){.kh-cta span,.kb-cta span,.kr-cta span{transition:none}}
/* The photo's own wall is cream: fade its left edge into the page, as in the banner. */
@media(min-width:901px){.kh-media img{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%);mask-image:linear-gradient(to right,transparent 0,#000 22%)}}
/* Keep the whole bike clear of the diagonal panel on wide screens. */
@media(min-width:901px){
  .kr-media,.kb-media{width:52%}
  .kr-media img{object-position:0% 55%}
  .kb-media img{object-position:0% 60%}
}
/* Phones: text panel first, photo below it (the portrait banners). */
@media(max-width:900px){
  .kr,.kb{display:flex;flex-direction:column}
  .kr-panel,.kb-panel{order:1}
  .kr-media,.kb-media{order:2}
}

/* --- Hero fixes (20 Oct): panel and photo share one top edge; full-bleed photos; real secondary button --- */
.kr.pagetop{padding-top:0;margin-top:0}
.kr{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr)}
.kr-media,.kb-media{position:relative;inset:auto;width:auto;grid-row:1;grid-column:2}
.kr-panel,.kb-panel{grid-row:1;grid-column:1;width:auto;margin-right:-140px;clip-path:polygon(0 0,100% 0,calc(100% - 140px) 100%,0 100%)}
.kr-copy,.kb-copy{padding-right:180px}
.kr-media img,.kb-media img{position:absolute;inset:0;object-position:30% 55%}
.kb{display:grid;grid-template-columns:minmax(0,46%) minmax(0,1fr)}
.kb-media img{object-position:25% 60%}
.kr-alt{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(250,247,242,.45);border-radius:999px;padding:10px 18px;font-size:14px;font-weight:600;color:var(--cream);opacity:1;border-bottom-width:1px}
.kr-alt:hover{background:rgba(250,247,242,.08)}
.kh{background:var(--cream)}
.kh-wrap{max-width:none;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.kh-copy{padding-left:max(48px,calc((100vw - 1180px) / 2 + 24px))}
@media(max-width:900px){
  .kr,.kb{display:flex;flex-direction:column}
  .kr-panel,.kb-panel{margin-right:0;clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
  .kr-copy,.kb-copy{padding-right:max(20px,env(safe-area-inset-right,0px))}
  .kr-media,.kb-media{width:100%;aspect-ratio:4/3;margin-top:-40px}
  .kh-wrap{grid-template-columns:1fr}
  .kh-copy{padding-left:max(20px,env(safe-area-inset-left,0px))}
}

/* Maafushi hero: a complete bike photo, clear of the copy and actions. */
.kr.kr-refreshed{grid-template-columns:minmax(0,.92fr) minmax(0,1.28fr);align-items:center;gap:clamp(28px,4vw,64px);min-height:0;padding:clamp(32px,4vw,64px) max(32px,calc((100vw - 1440px)/2 + 40px))}
.kr-refreshed .kr-panel{width:auto;margin:0;clip-path:none;background:transparent;display:block}
.kr-refreshed .kr-copy{padding:0}
.kr-refreshed .kr-title{font-size:clamp(44px,4.6vw,74px);line-height:1.06;margin-bottom:22px}
.kr-refreshed .kr-media{position:relative;inset:auto;grid-column:2;grid-row:1;width:100%;aspect-ratio:auto;margin:0;border-radius:18px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,.14)}
.kr-refreshed .kr-media picture{display:block;width:100%}
.kr-refreshed .kr-media img{position:static;width:100%;height:auto;object-fit:contain;object-position:center}
.kr-refreshed .kr-cta{background:var(--cream);color:var(--teal-2);border-radius:999px;padding:13px 20px;font-size:15px;font-weight:700;letter-spacing:0}
.kr-refreshed .kr-actions{gap:12px;align-items:stretch}
.kr-refreshed .kr-alt{justify-content:center;min-height:48px}
.kr-refreshed .avail-line{margin-bottom:26px}
.kr-refreshed a:focus-visible{outline:3px solid #a9d7bf;outline-offset:5px}
@media(max-width:900px){
  .kr.kr-refreshed{display:grid;grid-template-columns:1fr;gap:28px;padding:32px 20px}
  .kr-refreshed .kr-panel{grid-column:1;grid-row:1}
  .kr-refreshed .kr-copy{text-align:center;width:100%}
  .kr-refreshed .kr-title{font-size:clamp(40px,7vw,62px);max-width:650px;margin:0 auto 18px}
  .kr-refreshed .kr-sub{margin-bottom:18px}
  .kr-refreshed .kr-rule{margin-bottom:18px}
  .kr-refreshed .kr-media{grid-column:1;grid-row:2;max-width:760px;justify-self:center;border-radius:14px}
}
@media(max-width:420px){.kr-refreshed .kr-actions{display:grid;grid-template-columns:1fr;width:100%}.kr-refreshed .kr-cta{justify-content:center}.kr-refreshed .kr-title{font-size:42px}}

/* ===================== Booking wizard (20 Oct 2026) =====================
   From the owner's mockups: three numbered steps, generous serif headings,
   outlined fields with icons, a summary panel beside the form on wide
   screens, and on a phone a bike card first and a sticky total bar. */
.bk{--bk-line:#E4DED2;--bk-gold:#B8923A;--bk-gold-soft:#F6EEDC;--bk-mint:#E9F1EC;background:var(--cream);padding:18px max(16px,env(safe-area-inset-left,0px)) 0 max(16px,env(safe-area-inset-right,0px))}
.bk-top{max-width:1240px;margin:0 auto 6px;display:grid;gap:10px}
.bk-back{justify-self:start;background:none;border:0;padding:4px 0;font:600 14px var(--sans);color:var(--muted);cursor:pointer}
.bk-back:hover{color:var(--ink)}
.bk-steps{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,1fr);max-width:900px;width:100%;counter-reset:s}
.bk-steps li{position:relative;display:grid;justify-items:center;gap:8px;text-align:center;font-size:14px;color:var(--muted)}
.bk-steps li:not(:last-child)::after{content:"";position:absolute;top:18px;left:calc(50% + 26px);right:calc(-50% + 26px);height:1px;background:var(--bk-line)}
.bk-steps li.done:not(:last-child)::after{background:var(--bk-gold)}
.bk-steps b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--bk-line);background:var(--card);font-weight:600;color:var(--muted)}
.bk-steps li.now{color:var(--ink);font-weight:600}
.bk-steps li.now b{background:var(--teal);border-color:var(--teal);color:var(--cream)}
.bk-steps li.done b{border-color:var(--bk-gold);color:var(--bk-gold)}
.bk-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:0 48px;align-items:start}
.bk-main{min-width:0;padding:22px 0 60px}
.bk-head{margin:0 0 26px}
.bk-title{font-family:var(--serif);font-weight:600;font-size:clamp(40px,5vw,64px);line-height:1.02;letter-spacing:-.01em;color:var(--teal-2);margin:0 0 10px;text-wrap:balance}
.bk-lead{font-size:clamp(16px,1.4vw,19px);color:var(--muted);margin:0;max-width:40em}
.bk-block{padding:24px 0;border-top:1px solid var(--bk-line)}
.bk-block:first-of-type{border-top:0;padding-top:4px}
.bk-h{font-family:var(--sans);font-weight:600;font-size:20px;color:var(--teal-2);margin:0 0 14px}
.bk-sub{color:var(--muted);margin:-6px 0 14px;font-size:15.5px}
.bk-opt{font-weight:400;font-size:13px;color:var(--muted);margin-left:6px}
.bk-lbl{display:block;font-size:15px;color:var(--ink);margin:0 0 8px}
.bk-areas{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bk-area{display:flex;gap:16px;align-items:center;padding:20px 22px;border:1px solid var(--bk-line);border-radius:12px;background:var(--card);color:var(--ink)}
.bk-area i,.bk-pkg i,.bk-pays .pay-option i{flex:0 0 22px;width:22px;height:22px;border-radius:50%;border:1.5px solid #B9B2A4;display:grid;place-items:center}
.bk-area.on,.bk-pkg.on,.bk-pays .pay-option.on{background:var(--bk-gold-soft);border-color:var(--bk-gold)}
.bk-area.on i,.bk-pkg.on i,.bk-pays .pay-option.on i{border-color:var(--bk-gold)}
.bk-area.on i::after,.bk-pkg.on i::after,.bk-pays .pay-option.on i::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--bk-gold)}
.bk-area b{display:block;font-size:17px;font-weight:600}
.bk-area em{font-style:normal;color:var(--muted);font-size:14.5px}
.bk-when{display:grid;grid-template-columns:1fr 1fr;gap:0}
.bk-when-col{padding-right:22px}
.bk-when-col+.bk-when-col{padding:0 0 0 22px;border-left:1px solid var(--bk-line)}
.bk-dt{display:grid;grid-template-columns:1.4fr 1fr;border:1px solid var(--bk-line);border-radius:10px;background:var(--card);overflow:hidden}
.bk-dt>*+*{border-left:1px solid var(--bk-line)}
.bk-in{display:flex;align-items:center;gap:12px;padding:0 14px;min-height:52px;background:var(--card);color:var(--ink)}
.bk-in svg,.bk-length svg,.bk-sum svg,.bk-included svg,.bk-rev svg,.bk-hint svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.bk-in input{border:0;background:transparent;font:500 16px var(--sans);color:var(--ink);width:100%;min-width:0;padding:14px 0;outline:0}
.bk-in select{border:0;background:transparent;font:500 16px var(--sans);color:var(--ink);width:100%;min-width:0;padding:14px 0;outline:0;-webkit-appearance:none;appearance:none;cursor:pointer}
.bk-in:focus-within{box-shadow:inset 0 0 0 2px var(--bk-gold)}
.bk-in-static b{font-weight:500}
.bk-in-wide{border:1px solid var(--bk-line);border-radius:10px;margin-bottom:12px}
.bk-length{display:flex;align-items:center;gap:10px;margin-top:16px;padding:14px 18px;border-radius:10px;background:var(--bk-mint);color:var(--teal-2);font-size:15.5px}
.bk-length span{color:var(--muted)}
.bk-locs{margin:0 0 14px}
.bk-map{position:relative;isolation:isolate;z-index:0;border:1px solid var(--bk-line);border-radius:12px;overflow:hidden;margin:4px 0 10px}
.bk-map .pinmap{height:300px;border-radius:0}
.bk-hint{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:14px;margin:10px 0 0}
.bk-included{display:flex;gap:14px;align-items:center;margin:4px 0 0;padding:16px 0;border-top:1px solid var(--bk-line);color:var(--teal-2)}
.bk-included svg{width:40px;height:40px;flex:0 0 40px;padding:9px;border-radius:50%;background:var(--bk-gold-soft);color:var(--bk-gold)}
.bk-included b{display:block;font-size:15px}
.bk-included span{color:var(--muted);font-size:14px}
.bk-pkgs{display:grid;gap:10px;margin-top:12px}
.bk-pkg{display:flex;flex-direction:row;min-height:0;align-items:center;gap:16px;width:100%;padding:16px 20px;border:1px solid var(--bk-line);border-radius:12px;background:var(--card);text-align:left;cursor:pointer;font:inherit;color:var(--ink)}
.bk-pkg[hidden]{display:none}
.bk-pkg-txt{flex:1;min-width:0}
.bk-pkg b{display:block;font-size:16.5px}
.bk-pkg em{font-style:normal;color:var(--muted);font-size:14px}
.bk-pkg strong{flex-shrink:0;font-size:18px;color:var(--teal-2)}
.bk-map-help{font-size:14px;margin:0 0 12px}
.bk .uploads.one{max-width:none}
.bk #uplLic{aspect-ratio:auto;min-height:128px;height:144px}
.bk #uplLic img{object-fit:contain}
.bk-upload-help{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0 0}
/* summary panel */
.bk-aside{position:sticky;top:calc(env(safe-area-inset-top,0px) + 90px);padding:22px 0 40px 40px;border-left:1px solid var(--bk-line);min-width:0}
.bk-sum-title{font-family:var(--serif);font-weight:600;font-size:28px;color:var(--teal-2);margin:0 0 6px}
.bk-sum-ride{aspect-ratio:4/3;max-height:220px;display:grid;place-items:center;margin:0 auto 6px}
.bk-sum-ride img{max-width:100%;max-height:220px;object-fit:contain;border-radius:12px}
.bk-sum-name{font-family:var(--serif);font-weight:600;font-size:30px;color:var(--teal-2);line-height:1.1}
.bk-sum-area{color:var(--muted);margin:2px 0 14px}
.bk-sum-rows{margin:0;padding:14px 0;border-top:1px solid var(--bk-line);display:grid;gap:10px}
.bk-sum-rows div{display:flex;justify-content:space-between;gap:12px;font-size:15px}
.bk-sum-rows dt{display:flex;gap:10px;align-items:center;color:var(--muted)}
.bk-sum-rows dd{margin:0;text-align:right;color:var(--ink)}
.bk-sum-line{display:flex;justify-content:space-between;padding:14px 0 6px;border-top:1px solid var(--bk-line);color:var(--ink)}
.bk-sum-total{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0 18px}
.bk-sum-total span{font-family:var(--serif);font-weight:600;font-size:24px;color:var(--teal-2)}
.bk-sum-total b{font-size:30px;font-weight:700;color:var(--teal-2)}
.bk-primary{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;background:var(--teal-2);color:var(--cream);font:600 17px var(--sans);padding:16px 26px;cursor:pointer;transition:background .18s}
.bk-primary:hover{background:var(--teal)}
.bk-primary:focus-visible{outline:3px solid var(--bk-gold);outline-offset:2px}
.bk-primary-wide{width:100%}
.bk-sum-note{display:flex;gap:8px;justify-content:center;align-items:center;font-size:13.5px;color:var(--muted);margin:12px 0 0;text-align:center}
.bk-sum-note svg{width:16px;height:16px;flex:0 0 16px}
.bk-sum-help{text-align:center;margin:16px 0 0;padding-top:14px;border-top:1px solid var(--bk-line);font-size:14.5px;color:var(--muted)}
.bk-sum-help a{color:var(--teal-2);font-weight:600;text-decoration:underline}
/* review step */
.bk-rev{padding:22px 24px;border:1px solid var(--bk-line);border-radius:14px;background:var(--card);margin:0 0 16px}
.bk-rev header{display:flex;align-items:center;gap:14px;margin:0 0 14px}
.bk-rev h2{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--teal-2);margin:0;flex:1}
.bk-rev-ic{width:42px;height:42px;border-radius:50%;background:var(--bk-gold-soft);display:grid;place-items:center;color:var(--teal-2)}
.bk-edit{display:inline-flex;gap:6px;align-items:center;background:none;border:0;font:600 14px var(--sans);color:var(--teal-2);text-decoration:underline;cursor:pointer}
.bk-edit svg{width:16px;height:16px}
.bk-rev-trip{display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:start}
.bk-rev-trip img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;background:var(--cream-2)}
.bk-rev-trip b{font-size:17px;color:var(--teal-2)}
.bk-rev-trip>div>span{display:block;color:var(--muted);font-size:14.5px;margin:2px 0 10px}
.bk-rev dl{margin:0;display:grid;gap:9px}
.bk-rev dl div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;font-size:15px}
.bk-rev dt{display:flex;gap:8px;align-items:center;color:var(--muted)}
.bk-rev dd{margin:0;color:var(--ink);overflow-wrap:anywhere}
.bk-rev dd a{color:var(--gold-ink);font-weight:600;margin-left:6px}
.bk-pays{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 0 12px}
.bk-pays .pay-option{display:grid;grid-template-columns:22px 1fr;gap:4px 14px;align-items:center;text-align:left;padding:16px 18px;border:1px solid var(--bk-line);border-radius:12px;background:var(--card);font:inherit;color:var(--ink);cursor:pointer}
.bk-pays .pay-option b{font-size:15.5px}
.bk-pays .pay-option span{grid-column:2;color:var(--muted);font-size:14px}
.bk-agree summary{display:flex;gap:10px;align-items:center;padding:14px 16px;border:1px solid var(--bk-line);border-radius:10px;cursor:pointer;font-weight:600;list-style:none}
.bk-agree summary::-webkit-details-marker{display:none}
.bk-agree[open] summary{margin-bottom:12px}
.bk-agree-status{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--gold-ink);margin:10px 0 0}
.bk-review-note{margin:4px 0 0}
/* phone pieces (hidden on desktop) */
.bk-ridecard,.bk-bar{display:none}
@media(max-width:980px){
  .bk-grid{grid-template-columns:1fr}
  .bk-aside{display:none}
  .bk-main{padding-bottom:120px}
  .bk-steps li:not(:last-child)::after{left:calc(50% + 24px);right:calc(-50% + 24px)}
  .bk-ridecard{display:grid;grid-template-columns:44% 1fr;gap:16px;align-items:center;padding:14px;margin:0 0 18px;border:1px solid var(--bk-line);border-radius:14px;background:var(--card)}
  .bk-ridecard img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
  .bk-ridecard b{display:block;font-family:var(--serif);font-size:22px;color:var(--teal-2);line-height:1.1}
  .bk:not(.bk-step-1) .bk-ridecard{grid-template-columns:76px 1fr;padding:10px;gap:12px}
  .bk:not(.bk-step-1) .bk-ridecard b{font-family:var(--sans);font-size:17px}
  .bk:not(.bk-step-1) .bk-ridecard span{margin-bottom:4px}
  .bk:not(.bk-step-1) .bk-ridecard em{font-size:13px;padding:0}
  .bk-ridecard span{display:block;color:var(--muted);font-size:14px;margin:2px 0 10px}
  /* Plain price text, not white on gold (2.4:1, too faint) — design review, 27 Oct 2026. */
  .bk-ridecard em{display:inline-block;font-style:normal;background:none;color:var(--teal);font-weight:700;border-radius:0;padding:0;font-size:15px}
  .bk-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--card);border-top:1px solid var(--bk-line);padding:12px max(16px,env(safe-area-inset-right,0px)) calc(12px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));box-shadow:0 -6px 24px rgba(20,58,56,.08)}
  .bk-bar span{display:block;font-size:12.5px;color:var(--muted)}
  .bk-bar b{display:block;font-size:24px;color:var(--teal-2);line-height:1.1}
  .bk-bar em{display:block;font-style:normal;font-size:12.5px;color:var(--muted)}
  .bk-bar .bk-primary{flex:0 0 auto;padding:14px 22px}
  .bk .bookbar{display:none}
}
@media(max-width:640px){
  .bk-areas,.bk-when{grid-template-columns:1fr}
  .bk-when-col{padding:0}
  .bk-when-col+.bk-when-col{padding:16px 0 0;border-left:0}
  .bk-dt{grid-template-columns:1fr}
  .bk-dt>*+*{border-left:0;border-top:1px solid var(--bk-line)}
  .bk-steps span{font-size:12.5px}
  .bk-rev{padding:18px 16px}
  .bk-rev-trip{grid-template-columns:1fr}
  .bk-rev-trip img{aspect-ratio:16/9}
  .bk-rev dl div{grid-template-columns:120px minmax(0,1fr)}
  .bk-map .pinmap{height:240px}
}
.bk-brandbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--teal-2);color:var(--cream);padding:18px max(24px,calc((100vw - 1240px) / 2)) 18px max(24px,calc((100vw - 1240px) / 2))}
.bk-brand{display:flex;align-items:center;gap:14px;color:var(--cream);font-weight:600;letter-spacing:.3em;font-size:17px}
.bk-brand .mark{width:34px;height:auto}
.bk-brandbar p{margin:0;text-align:right;font-size:12px;letter-spacing:.3em;text-transform:uppercase;line-height:1.5;opacity:.9}
@media(max-width:640px){.bk-brandbar p{display:none}.bk-brand{font-size:15px;letter-spacing:.2em}}
/* One icon per field: the browser's own picker icon is hidden (a click anywhere opens the picker). */
.bk-in input[type=date]::-webkit-calendar-picker-indicator,.bk-in input[type=time]::-webkit-calendar-picker-indicator{opacity:0;width:0;margin:0;padding:0}
.bk-in input[type=date],.bk-in input[type=time]{cursor:pointer}

/* Keep the action and price readable on narrow phones. */
@media(max-width:380px){
  .bk-bar{gap:10px}
  .bk-bar em{display:none}
  .bk-bar b{font-size:22px;white-space:nowrap}
  .bk-bar .bk-primary{font-size:15px;gap:6px;padding:14px}
}

/* Booking completion: totals and actions remain beside the decision. */
.bk-price-breakdown{padding:20px 24px;margin-bottom:16px;border:1px solid var(--bk-line);border-radius:14px;background:var(--card)}
.bk-price-breakdown dl{margin:0;display:grid;gap:10px}
.bk-price-breakdown dl>div{display:flex;justify-content:space-between;gap:16px}
.bk-price-breakdown dt{color:var(--muted)}
.bk-price-breakdown dd{margin:0;text-align:right;font-weight:600}
.bk-price-total{border-top:1px solid var(--bk-line);padding-top:12px;font-size:20px}
.bk-price-total dt{color:var(--ink);font-weight:600}
.bk-finish{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--bk-line);padding:22px 0}
.bk-finish span,.bk-finish b,.bk-finish small{display:block}
.bk-finish b{font-size:28px}.bk-finish small{color:var(--muted);font-size:13px}
.bk-full-terms{margin-bottom:10px}.bk .terms.bk-terms-full{max-height:none}
.bk-draft{max-width:1240px;margin:20px auto;padding:18px 22px;border:1px solid var(--bk-gold);border-radius:12px;background:var(--bk-gold-soft)}
.bk-draft p{margin:6px 0 12px;font-size:14px}.bk-draft>div{display:flex;gap:10px;flex-wrap:wrap}
.bk-aside .bk-sum-ride{max-height:130px}.bk-aside .bk-sum-ride img{max-height:130px}
.bk-aside .bk-sum-name{font-size:24px}.bk-aside .bk-sum-rows{padding:10px 0;gap:6px}
@media(max-width:980px){.bk-price-breakdown{padding:18px 16px}.bk-finish{display:none}.bk-step-3 .bk-rev-trip{grid-template-columns:76px minmax(0,1fr);gap:12px}.bk-step-3 .bk-rev-trip img{aspect-ratio:1}.bk-step-3 .bk-rev-trip dl{grid-column:1/-1}.bk-step-3 .bk-rev-trip>div{display:contents}.bk-step-3 .bk-rev-trip>div>b,.bk-step-3 .bk-rev-trip>div>span{grid-column:2}.bk-step-3 .bk-rev-trip>div>b{grid-row:1;align-self:center}.bk-step-3 .bk-rev-trip>div>span{grid-row:1;align-self:end;font-size:12px;margin:0}}
.st-slip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px}

/* A grid track will not shrink below its content, so a long word in a social card pushed it 6px past the edge on a 320px phone. */
.social-panel>*{min-width:0}
.social-card{min-width:0;overflow-wrap:anywhere}
@media(max-width:380px){.social-card{padding:18px}.social-card h3{font-size:24px}}

/* Any device: comfortable touch targets and nothing smaller than 11px */
@media (hover:none),(max-width:899px){
  .menu-btn,.hdr .logo,.cur-toggle button,.kb-cta,.faq-item summary,main summary,main button:not(.menu-btn),.chip{min-height:44px}
  .faq-item summary,main summary{display:flex;align-items:center}
  a.btn-link,a.kh-cta,a.kb-cta,a.bk-brand,a.bk-back{display:inline-flex;align-items:center;min-height:44px}
  .hdr button,.fleet-filters button,.vehicle-filters button,main button,.koli-usage-actions button{min-height:44px}
  main :is(input:not([type=checkbox],[type=radio],[type=range],[type=hidden]),select){min-height:44px}
}
.maafushi-package-head strong,.upl.req::after,.contact-grid span{font-size:11px}

/* The main button on the dark fleet and Maafushi heroes was teal on teal; give it the gold used for those heroes' accents. */
.fleet-hero .btn-primary,.maafushi-hero .btn-primary{background:var(--gold);color:var(--teal-2)}
.fleet-hero .btn-primary:hover,.maafushi-hero .btn-primary:hover{background:#d8b866}

/* Home picture on a phone: let the image set its own height from its width and height attributes.
   The old box relied on aspect-ratio + an absolutely placed image, which iPhone browsers (WebKit) can collapse to nothing. */
@media(max-width:900px){
  .kh-media{align-self:start;aspect-ratio:auto;min-height:0;width:100%}
  .kh-media img{position:static;display:block;width:100%;height:auto;object-fit:cover}
}

/* Bank transfer on the booking page: account details with copy buttons, then the slip. */
.bk-bank{margin:14px 0 8px;padding:16px;border:1px solid var(--bk-gold,var(--line));border-radius:14px;background:var(--white)}
.bk-bank-lead{margin:0 0 12px;font-size:14px;line-height:1.5;color:var(--ink)}
.bk-bank-rows{margin:0 0 14px;display:grid;gap:0}
.bk-rev .bk-bank-rows>div{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;font-size:15px;padding:9px 0;border-bottom:1px solid var(--line);min-width:0}
.bk-rev .bk-bank-rows>div:last-child{border-bottom:0}
.bk-rev .bk-bank-rows dt{flex:0 0 100%;font-size:12.5px;color:var(--muted)}
.bk-rev .bk-bank-rows dd{flex:1 1 auto;margin:0;display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;font-weight:600;color:var(--ink)}
.bk-rev .bk-bank-rows code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;letter-spacing:.02em;white-space:nowrap}
.bk-copy{flex:0 0 auto;display:inline-grid;place-items:center;width:44px;height:44px;margin:-8px -6px -8px 0;border:0;border-radius:10px;background:none;color:var(--teal,#143a38);cursor:pointer}
.bk-copy:hover{background:rgba(20,58,56,.08)}
.bk-copy.done{color:#1b7a4b}
.bk-copy.done svg{display:none}
.bk-copy.done::after{content:"✓";font-size:18px;font-weight:700}
.bk-bank .upl{margin-top:6px}

/* ---------------------------------------------------------------- Koli Travels (#/boats, #/boats/join, manage and request pages) */
.boats-page .chip{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.boats-page .chip.on{background:var(--teal);border-color:var(--teal);color:var(--cream)}
.boat-req{grid-column:1/-1;border-top:1px solid var(--line);padding-top:16px}
.boat-req .form-grid,.boat-editor .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.boat-req-sum{margin-bottom:12px}
.boat-small{font-size:13.5px;margin:4px 0 12px}
.boat-empty{background:var(--card);border:1px dashed var(--line);border-radius:20px;padding:24px;margin-bottom:12px}
.boat-empty b{display:block;font-size:17px;margin-bottom:4px}
.boat-empty .bookrow,.boat-status-card .bookrow,.boat-tt .bookrow,.boat-rq .bookrow,.boat-editor .bookrow,.boats-manage .bookrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.boat-join-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--teal);color:var(--cream);border-radius:26px;padding:32px}
.boat-join-cta .eyebrow{color:var(--brass-light)}
.boat-join-cta h2{font-size:clamp(24px,3vw,32px);margin:6px 0 8px}
.boat-join-cta .muted{color:rgba(250,247,242,.78)}
.boat-join-cta .btn-primary{background:var(--brass-light);color:var(--lagoon)}
.boat-join-cta .btn-primary:hover{background:#CDB27C}
.boat-join-cta .btn-ghost{color:var(--salt);border-color:rgba(250,247,242,.35)}
.boat-uploads{grid-template-columns:repeat(3,1fr)}
.boat-status,.boats-manage #boatManage{max-width:820px}
.boat-status-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:26px}
.boat-badge{display:inline-block;border-radius:999px;padding:5px 12px;font-size:12.5px;font-weight:700;letter-spacing:.04em;background:var(--cream-2);color:var(--ink)}
.s-new .boat-badge{background:#fbf1d6;color:var(--gold-ink)}
.s-confirmed .boat-badge{background:#dff1e6;color:#1b6b43}
.s-declined .boat-badge,.s-cancelled .boat-badge{background:#f6e3e0;color:#8a1c12}
.boat-status-card>p{margin:12px 0}
.boat-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px;margin:18px 0 6px}
.boat-facts dt{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.boat-facts dd{margin:2px 0 0;font-weight:600}
.boat-facts a{text-decoration:underline}
.boat-confirm{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 18px;margin-bottom:16px;font-size:14.5px}
.boat-confirm.stale{border-color:var(--gold);background:#fbf6e8}
.boat-confirm .btn{padding:10px 16px}
.boat-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.boat-rq,.boat-tt{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 20px;margin-bottom:10px}
.boat-rq.s-new{border-color:var(--gold)}
.boat-rq.s-declined,.boat-rq.s-cancelled,.boat-tt.off{opacity:.7}
.boat-rq-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.boat-rq-top span:last-child{color:var(--muted)}
.boat-rq-who{margin-top:8px;font-size:14.5px;display:flex;flex-direction:column;gap:3px}
.boat-rq-who a{text-decoration:underline}
.boat-tt .btn,.boat-rq .btn{padding:10px 16px;font-size:14px}
.boat-tt-main b{font-size:18px}
.boat-tt-main>span{font-weight:600;margin-left:6px}
.boat-tt-main .muted{font-size:14px;margin-top:3px}
.boat-cancels{display:flex;flex-direction:column;gap:4px;margin-top:8px;font-size:13.5px;color:#8a1c12}
.boat-cancels .btn-link{font-size:13px;margin-left:6px}
.boat-cancel-form{margin-top:12px;border-top:1px solid var(--line);padding-top:12px}
.boat-editor{margin-bottom:16px}
.boat-editor h3{font-size:22px;margin-bottom:12px}
.boat-daypick{border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin:0 0 16px;display:flex;gap:8px 16px;flex-wrap:wrap}
.boat-daypick legend{font-size:13px;font-weight:600;color:var(--muted);padding:0 6px}
.boat-daypick label{display:flex;gap:6px;align-items:center;cursor:pointer;font-size:14.5px}
@media (max-width:900px){
}
@media (max-width:620px){
  .boat-req .form-grid,.boat-editor .form-grid,.boat-facts{grid-template-columns:1fr}
  .boat-join-cta{flex-direction:column;align-items:flex-start;padding:24px 20px;border-radius:20px}
  .boat-join-cta .btn{width:100%;justify-content:center}
}
/* ---- Koli Travels: shared pieces */
.boats-page .sr-only,.bm-live .sr-only,.bm-cal .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.boats-page .btn.sm{padding:9px 14px;font-size:13.5px}
.bi{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.boat-steps{grid-template-columns:repeat(3,1fr)}
.boat-ok{color:#1b7a4b;font-weight:600}
.boat-feats{display:flex;gap:6px;flex-wrap:wrap}
.boat-feats i{font-style:normal;font-size:12.5px;border-radius:999px;padding:3px 10px;color:var(--ink);background:var(--cream-2)}
.boat-note{font-style:italic;color:var(--ink)}
.boat-stale{color:var(--gold-ink);font-weight:600;font-size:13.5px}
.boat-cant{color:var(--muted);font-size:13.5px}
.b-stars{display:inline-flex;gap:1px;color:#d8ccb2;font-size:15px;letter-spacing:0}
.b-stars i{font-style:normal}.b-stars i.on{color:var(--gold-2)}
.b-nophoto{display:grid;place-items:center;width:100%;height:100%;background:var(--cream-2);color:rgba(20,58,56,.32)}
.b-nophoto .bi{width:46%;height:46%;max-width:120px;stroke-width:.9}
.boat-sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:18px}
.boat-sec-head h2{font-size:clamp(26px,3.2vw,38px);line-height:1.08;margin-top:6px}
.boat-wide{grid-column:1/-1}

/* ---- the open page: the sea hero carries the search */
.boat-sea.is-open .boat-sea-copy{grid-template-rows:1fr;padding-top:60px;padding-bottom:150px}
.boat-search-wrap{position:relative;z-index:2;margin-top:-126px}
.boat-sea.is-open .boat-sea-head{max-width:min(660px,57%)}
.boat-sea.is-open .boat-sea-head h1{font-size:clamp(34px,3.7vw,54px)}
.boat-sea.is-open .boat-sea-head p{max-width:31em}
.boat-search{display:grid;grid-template-columns:minmax(0,1.2fr) 40px minmax(0,1.2fr) minmax(0,1fr) 120px auto;gap:10px 12px;align-items:end;
  background:var(--card);color:var(--ink);border-radius:24px;padding:18px 18px 14px;box-shadow:0 24px 60px -30px rgba(8,26,24,.55)}
.boat-search .field{margin:0}
.boat-search .field>span{display:flex;align-items:center;gap:6px;color:var(--muted)}
.boat-search .field input,.boat-search .field select{background:var(--cream);border-color:transparent;height:48px;min-height:48px}
.boat-search .field>span .bi{width:14px;height:14px;vertical-align:0}
.boat-search .boat-swap{width:40px;height:48px;border:0;border-radius:12px;background:var(--cream);cursor:pointer;font-size:17px;color:var(--ink)}
.boat-search .boat-swap:hover{background:var(--cream-2)}
.boat-search .boat-go{min-height:48px;justify-content:center;padding:0 28px}
.boat-search .boat-fare{grid-column:1/-1;grid-row:2;border:0;padding:0;margin:0;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.boat-search .boat-fare legend{float:left;font-size:13px;font-weight:600;color:var(--muted);margin-right:8px}
.boat-search .boat-fare label{position:relative;cursor:pointer}
.boat-search .boat-fare input{position:absolute;opacity:0;inset:0;cursor:pointer}
.boat-search .boat-fare span{display:inline-block;padding:6px 13px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--muted)}
.boat-search .boat-fare input:checked+span{background:var(--teal);color:var(--cream)}
.boat-search .boat-fare input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}
.boat-search-msg{grid-column:1/-1;margin:6px 0}
.boats-open{padding-top:44px}
@media (max-width:999px){.boat-sea.is-open .boat-sea-copy{grid-template-rows:1fr;padding-bottom:90px}.boat-sea.is-open .boat-sea-head{align-self:end}.boat-search-wrap{margin-top:-60px}}

/* results */
#boatResults{scroll-margin-top:96px}
.boat-res-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.boat-res-head h2{font-size:clamp(28px,3.6vw,42px);line-height:1.05;margin-top:6px}
.boat-res-head .arr{color:var(--gold-2)}
.boat-view{display:inline-flex;background:var(--cream-2);border-radius:999px;padding:4px}
.boat-view button{border:0;background:transparent;font:inherit;font-weight:600;font-size:14px;padding:8px 18px;border-radius:999px;color:var(--muted);cursor:pointer}
.boat-view button.on{background:var(--card);color:var(--ink)}
.boat-days{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 0}
.boat-filters{display:flex;gap:10px 22px;flex-wrap:wrap;align-items:center;margin:14px 0 4px;padding:12px 0 0}
.boat-fgroup{display:flex;gap:6px;flex-wrap:wrap}
.boat-filters .chip{padding:6px 12px;font-size:13px;background:transparent}
.boat-filters .chip.on{background:var(--teal)}
.boat-sort{display:flex;align-items:center;gap:8px;margin-left:auto;font-size:13.5px;color:var(--muted);font-weight:600}
.boat-sort select{font:inherit;font-size:14px;padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.boat-count{font-size:14px;color:var(--muted);margin:10px 0 2px}
/* Departures as timetable rows: photo | times | the boat | fare and button. The request form opens under the row. */
.boat-cards{display:flex;flex-direction:column;gap:12px;margin:6px 0 10px}
.boat-card{display:grid;grid-template-columns:132px minmax(190px,230px) minmax(0,1fr) auto;grid-template-areas:"photo times body foot";align-items:center;gap:0 24px;background:var(--card);border-radius:20px;padding:14px;overflow:hidden;transition:box-shadow .18s}
.boat-card:hover{box-shadow:0 10px 26px -18px rgba(11,40,37,.45)}
.boat-card-photo{grid-area:photo;align-self:stretch;min-height:96px;border-radius:14px;overflow:hidden;background:var(--cream-2)}
.boat-card-photo img{width:100%;height:100%;object-fit:cover;display:block}
.boat-card-badges{display:flex;flex-wrap:wrap;gap:6px}
.boat-card-rate,.boat-card-ok{border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;background:var(--cream-2);color:var(--ink)}
.boat-card-rate span{font-weight:500;color:var(--muted)}
.boat-card-ok{color:#1b6b43}
.bm-vessel .boat-card-ok,.fleet-card .boat-card-ok{position:absolute;top:12px;right:12px;background:var(--card)}
.boat-card-body{grid-area:body;display:flex;flex-direction:column;gap:6px;min-width:0;padding:4px 0}
.boat-card-times{grid-area:times;display:flex;align-items:center;gap:10px}
.boat-card-times b{font-family:var(--serif);font-size:26px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.boat-card-times i{flex:1;position:relative;height:18px;font-style:normal;text-align:center;min-width:56px}
.boat-card-times i::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--cream-2)}
.boat-card-times i span{position:relative;background:var(--card);padding:0 6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.boat-card-op{display:flex;flex-direction:column;gap:2px}
.boat-card-op b{font-size:16.5px}
.boat-card-op span,.boat-card-line{font-size:14px;color:var(--muted)}
.boat-card-line{display:flex;gap:6px;align-items:flex-start}
.boat-card-foot{grid-area:foot;display:flex;flex-direction:column;align-items:flex-end;gap:10px;text-align:right;padding-left:20px;border-left:1px solid var(--cream-2);align-self:stretch;justify-content:center;min-width:150px}
.boat-card-fare b{display:block;font-family:var(--serif);font-size:26px;line-height:1.05;white-space:nowrap}
.boat-card-fare span{display:block;font-size:13px;color:var(--muted)}
.boat-card-fare .boat-card-left{font-weight:600}
.boat-card-fare .boat-card-left.low{color:var(--gold-ink);font-weight:700}
.boat-card-foot .boat-cant{text-align:right;max-width:13em;font-size:13.5px}
.boat-card-foot .btn{padding:11px 18px;white-space:nowrap}
.boat-card.open{box-shadow:inset 0 0 0 2px var(--teal)}
.boat-card .boat-req{border-radius:14px;margin-top:14px}
.boat-card .boat-req,.boat-row .boat-req{grid-column:1/-1;border-top:0;background:var(--cream);margin:0;padding:20px 22px}
/* map + list */
.boat-mapview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px;align-items:start;margin:6px 0 10px}
.boat-rows{display:flex;flex-direction:column;gap:10px;max-height:640px;overflow:auto;padding-right:4px}
.boat-rows .boat-count,.boat-rows .boat-empty,.boat-rows>p{margin:0}
.boat-row{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--card);border-radius:18px;padding:10px;flex:0 0 auto}
.boat-row.open{box-shadow:inset 0 0 0 2px var(--teal)}
.boat-row-photo{width:84px;height:64px;border-radius:12px;overflow:hidden;background:var(--cream-2)}
.boat-row-photo img{width:100%;height:100%;object-fit:cover}
.boat-row-main{display:flex;flex-direction:column;gap:1px;min-width:0}
.boat-row-main b{font-size:16px;font-variant-numeric:tabular-nums}
.boat-row-main span{font-size:13.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.boat-row-rate{color:var(--ink)!important;font-weight:600}.boat-row-rate span{font-weight:400}
.boat-row-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;padding-right:6px}
.boat-row-side b{font-family:var(--serif);font-size:19px}
.boat-row .boat-req{border-radius:14px}
.boat-map{position:sticky;top:96px;height:640px;border-radius:22px;overflow:hidden;background:#cfe6e6;z-index:0}
.boat-pin span{position:absolute;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:var(--card);border:3px solid var(--teal)}
.boat-pin b{position:absolute;left:12px;top:-11px;white-space:nowrap;font:600 12px/1 var(--sans);color:var(--ink);background:rgba(255,253,248,.92);padding:5px 7px;border-radius:999px}
.boat-pin.from span,.boat-pin.to span{left:-9px;top:-9px;width:18px;height:18px;background:var(--gold);border-color:var(--teal)}
.boat-pin.from b,.boat-pin.to b{background:var(--teal);color:var(--cream)}
.boat-pop{display:flex;flex-direction:column;gap:2px;font-family:var(--sans)}
.boat-pop b{font-size:15px}.boat-pop span{color:var(--muted);font-size:12.5px}
.boat-pop div{display:flex;gap:6px;margin-top:8px}
.boat-pop button{border:0;border-radius:999px;background:var(--cream-2);color:var(--ink);font:600 12.5px var(--sans);padding:7px 11px;cursor:pointer}
.boat-pop button:hover{background:var(--teal);color:var(--cream)}

/* three steps: one teal field, not three cards */
.boat-howto{margin:64px 0 0;background:var(--teal);color:var(--cream);border-radius:28px;padding:34px 36px}
.boat-howto .eyebrow{color:var(--brass-light)}
.boat-howto-list{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:14px}
.boat-howto-step b{display:flex;align-items:baseline;gap:8px;font-family:var(--serif);font-size:24px;font-weight:600;margin:12px 0 6px}
.boat-howto-step b em{font-style:normal;color:var(--brass-light)}
.boat-howto-step p{color:rgba(250,247,242,.8);font-size:15px}
.boat-howto-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(250,247,242,.1);color:var(--brass-light)}
.boat-howto-ic .bi{width:22px;height:22px}

/* popular routes */
.boat-routes{margin:72px 0 0}
.boat-routes:empty,.boat-fleet:empty,.boat-reviews:empty{display:none}
.boat-route-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.boat-route{text-align:left;font:inherit;border:0;background:var(--card);border-radius:20px;padding:20px 22px;cursor:pointer;display:flex;flex-direction:column;gap:6px;color:var(--ink);transition:background .18s}
.boat-route:hover{background:var(--cream-2)}
.boat-route:focus-visible,.boat-card:focus-within,.fleet-track:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.boat-route-name{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:21px}
.boat-route-name i{flex:1;min-width:24px;height:2px;background:linear-gradient(90deg,var(--gold) 50%,transparent 50%) 0 0/10px 2px}
.boat-route-meta{font-size:13.5px;color:var(--muted)}
.boat-route-fare{font-weight:700;font-size:15px}
.boat-route-fare em{font-style:normal;font-weight:500;color:var(--muted)}

/* the fleet */
.boat-fleet{margin:72px 0 0}
.boat-car-nav{display:flex;gap:8px}
.boat-car-nav button{width:44px;height:44px;border-radius:50%;border:0;background:var(--card);color:var(--ink);font-size:22px;cursor:pointer}
.boat-car-nav button:hover{background:var(--teal);color:var(--cream)}
.fleet-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,calc((100% - 36px) / 3));gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.fleet-card{scroll-snap-align:start;background:var(--teal);color:var(--cream);border-radius:24px;overflow:hidden;display:flex;flex-direction:column}
.fleet-photo{position:relative;aspect-ratio:4/3;background:var(--teal-soft)}
.fleet-photo img{width:100%;height:100%;object-fit:cover}
.fleet-photo .b-nophoto{background:var(--teal-soft);color:rgba(250,247,242,.3)}
.fleet-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:10px;flex:1}
.fleet-name b{display:block;font-family:var(--serif);font-size:24px;font-weight:600}
.fleet-name span{font-size:13.5px;color:rgba(250,247,242,.72)}.fleet-name span span{color:inherit}
.fleet-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:2px 0}
.fleet-specs div{background:rgba(250,247,242,.07);border-radius:12px;padding:9px 9px;min-width:0}
.fleet-specs dt{font-size:11px;color:rgba(250,247,242,.7);display:flex;gap:4px;align-items:center;white-space:nowrap}
.fleet-specs dt .bi{width:13px;height:13px}
.fleet-specs dd{margin:3px 0 0;font-weight:700;font-size:14.5px;white-space:nowrap}
.fleet-about{font-size:14px;color:rgba(250,247,242,.82)}
.fleet-routes{font-size:13.5px;color:rgba(250,247,242,.72)}
.fleet-charter{margin-top:auto;display:flex;flex-direction:column;gap:4px;background:rgba(198,164,78,.14);border-radius:14px;padding:11px 13px;font-size:13.5px}
.fleet-charter .btn-link{color:var(--brass-light);font-size:14px;align-self:flex-start}

/* reviews */
.boat-reviews{margin:72px 0 0}
.boat-review-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.boat-review{margin:0;background:var(--card);border-radius:20px;padding:22px}
.boat-review blockquote{margin:10px 0 12px;font-family:var(--serif);font-size:18px;line-height:1.4}
.boat-review figcaption{font-size:13.5px;color:var(--muted)}.boat-review figcaption b{color:var(--ink)}
.boats-open .boat-join-cta{margin-top:72px}

/* the traveller's review */
.boat-review-card{margin-top:16px}
.boat-review-card h2{font-size:24px;margin:6px 0 4px}
.rv-stars{display:flex;gap:4px;margin:10px 0 14px}
.rv-stars button{border:0;background:none;font-size:34px;line-height:1;color:#d8ccb2;cursor:pointer;padding:2px}
.rv-stars button.on{color:var(--gold-2)}
.rv-stars button:focus-visible{outline:2px solid var(--teal);border-radius:6px}

/* ---- the operator's page: a quiet side rail, the work on the right */
.boats-manage #boatManage{max-width:none}
.bm-hero{max-width:760px;padding:28px 0 20px}
.bm-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,4.4vw,48px);line-height:1.05;margin:8px 0 8px}
.bm-shell{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;align-items:start}
.bm-main,.bm-side{min-width:0}
.bm-side{position:sticky;top:96px;display:flex;flex-direction:column;gap:16px}
.bm-nav{display:flex;flex-direction:column;gap:2px}
.bm-nav button{display:flex;align-items:center;gap:10px;border:0;background:transparent;font:inherit;font-size:14.5px;font-weight:600;color:var(--muted);text-align:left;padding:10px 12px;border-radius:12px;cursor:pointer}
.bm-nav button:hover{color:var(--ink)}
.bm-nav button.on{background:var(--cream-2);color:var(--ink)}
.bm-nav button span{flex:1}
.bm-nav em{font-style:normal;font-size:12px;font-weight:700;background:var(--gold);color:var(--teal);border-radius:999px;padding:1px 8px}
.bm-live{background:var(--card);border-radius:20px;padding:18px}
.bm-live.on{background:var(--teal);color:var(--cream)}
.bm-live-top{display:flex;align-items:center;gap:8px;font-size:16px}
.bm-dot{width:10px;height:10px;border-radius:50%;background:#c9bfa8}
.bm-live.on .bm-dot{background:#4cc38a;box-shadow:0 0 0 4px rgba(76,195,138,.22)}
.bm-live p{font-size:13.5px;color:var(--muted);margin:6px 0 10px}
.bm-live.on p{color:rgba(250,247,242,.8)}
.bm-live.on .btn-ghost{color:var(--cream);border-color:rgba(250,247,242,.3)}
.bm-check{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:7px;font-size:13.5px}
.bm-check li{display:flex;gap:8px;align-items:center;color:var(--muted)}
.bm-check li.done{color:var(--ink)}
.bm-check i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;border:2px solid #d8ccb2;font-style:normal;font-size:11px;font-weight:800;flex:0 0 auto}
.bm-check li.done i{background:var(--teal);border-color:var(--teal);color:var(--cream)}
.bm-live .btn:disabled{opacity:.5;cursor:not-allowed}
.bm-main .boat-confirm{border:0}
.bm-sub{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:24px 0 12px}
.bm-sub:first-child{margin-top:0}
.bm-sub h3{font-size:24px}
.boat-rq,.boat-tt{border:0}
.boat-rq.s-new{box-shadow:inset 3px 0 0 var(--gold)}
/* fleet */
.bm-vessels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bm-vessel{display:grid;grid-template-columns:150px minmax(0,1fr);background:var(--card);border-radius:20px;overflow:hidden}
.bm-vessel.off{opacity:.7}
.bm-vessel-photo{position:relative;min-height:150px;background:var(--cream-2)}
.bm-vessel-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bm-vessel-count{position:absolute;left:8px;bottom:8px;font-size:11.5px;font-weight:700;background:rgba(255,253,248,.9);border-radius:999px;padding:3px 8px}
.bm-vessel-body{display:flex;flex-direction:column;gap:4px;padding:14px 16px;font-size:14px}
.bm-vessel-body>b{font-size:17px}
.bm-vessel-body .bookrow{margin-top:6px!important}
.bm-media{background:var(--cream);border-radius:16px;padding:14px;margin:4px 0 14px}
.bm-media-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:14px}
.bm-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bm-photo-grid figure{position:relative;margin:0;border-radius:12px;overflow:hidden;aspect-ratio:4/3;background:var(--cream-2)}
.bm-photo-grid figure img{width:100%;height:100%;object-fit:cover}
.bm-photo-grid figure.hidden img{opacity:.35}
.bm-photo-grid figcaption{position:absolute;left:6px;top:6px;display:flex;gap:4px;flex-wrap:wrap}
.bm-photo-grid .tag{font-size:11px;font-weight:700;background:var(--teal);color:var(--cream);border-radius:999px;padding:2px 8px}
.bm-photo-grid .tag.warn{background:#8a1c12}
.bm-photo-act{position:absolute;left:0;right:0;bottom:0;display:flex;gap:4px;padding:6px;background:rgba(13,42,40,.6)}
.bm-photo-act button{flex:1;border:0;border-radius:8px;background:rgba(255,253,248,.92);font:600 11.5px var(--sans);padding:6px 4px;cursor:pointer;color:var(--ink)}
.bm-photo-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;aspect-ratio:4/3;border:2px dashed #d8ccb2;border-radius:12px;background:transparent;font:600 13px var(--sans);color:var(--ink);cursor:pointer}
.bm-photo-add span{font-size:24px;line-height:1;color:var(--gold-2)}
.bm-photo-add:hover{border-color:var(--teal)}
.boat-editor .form-grid>span:empty{display:block}
/* calendar */
.bm-cal{background:var(--card);border-radius:22px;padding:18px 18px 14px;margin-bottom:6px}
.bm-cal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.bm-cal-month{display:flex;align-items:center;gap:10px}
.bm-cal-month b{font-family:var(--serif);font-size:22px;min-width:9.5em;text-align:center}
.bm-cal-move{width:36px;height:36px;border-radius:50%;border:0;background:var(--cream);font-size:18px;cursor:pointer;color:var(--ink)}
.bm-cal-move:disabled{opacity:.35;cursor:default}
.bm-cal-filter select{font:inherit;font-size:14px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--cream);color:var(--ink);max-width:280px}
.bm-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.bm-cal-dow{font-size:12px;font-weight:700;color:var(--muted);text-align:center;padding:4px 0}
.bm-cal-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:74px;border:0;border-radius:12px;background:var(--cream);padding:7px 8px;font:inherit;color:var(--ink);text-align:left;cursor:pointer}
.bm-cal-cell.empty{background:transparent;cursor:default}
.bm-cal-cell .n{font-size:13px;font-weight:700}
.bm-cal-cell .t{font-size:11.5px;color:var(--muted)}
.bm-cal-cell .s{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}
.bm-cal-cell .s em{font-style:normal;color:var(--gold-ink)}
.bm-cal-cell .bar{position:absolute;left:8px;right:8px;bottom:7px;height:4px;border-radius:2px;background:rgba(20,58,56,.12)}
.bm-cal-cell .bar i{display:block;height:100%;border-radius:2px;background:var(--teal)}
.bm-cal-cell.runs{background:#e7efe9}
.bm-cal-cell.off{background:repeating-linear-gradient(135deg,#f6e3e0 0 6px,#fbefec 6px 12px)}
.bm-cal-cell.off .t{color:#8a1c12;font-weight:600}
.bm-cal-cell.past{opacity:.45}
.bm-cal-cell.today .n{background:var(--gold);color:var(--teal);border-radius:999px;padding:0 6px;margin-left:-4px}
.bm-cal-cell.sel{box-shadow:inset 0 0 0 2px var(--teal)}
.bm-cal-cell:not(.empty):hover{box-shadow:inset 0 0 0 2px rgba(20,58,56,.3)}
.bm-cal-key{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;margin:10px 2px 0}
.bm-cal-key span{display:flex;gap:6px;align-items:center}
.bm-cal-key i{width:14px;height:14px;border-radius:4px}
.bm-cal-key .k-run{background:#e7efe9}.bm-cal-key .k-off{background:repeating-linear-gradient(135deg,#f6e3e0 0 3px,#fbefec 3px 6px)}
.bm-cal-key em{font-style:normal;font-weight:700;color:var(--gold-ink)}
.bm-day{margin-top:12px;background:var(--cream);border-radius:14px;padding:12px 14px}
.bm-day-head{display:flex;justify-content:space-between;margin-bottom:6px}
.bm-day-run{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;padding:8px 0}
.bm-day-run+.bm-day-run{border-top:1px solid var(--line)}
.bm-day-run>span:first-child{flex:1;min-width:200px}
.bm-day-run.off>span:first-child{text-decoration:line-through;color:var(--muted)}
.bm-day-run .muted{font-size:13.5px}
/* earnings */
.bm-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.bm-tiles div{background:var(--card);border-radius:18px;padding:14px 16px;display:flex;flex-direction:column}
.bm-tiles span{font-size:13px;color:var(--muted);font-weight:600}
.bm-tiles b{font-family:var(--serif);font-size:30px;font-weight:600;line-height:1.15;font-variant-numeric:tabular-nums}
.bm-tiles em{font-style:normal;font-size:12.5px;color:var(--muted)}
/* Operator sign-in and sign-in settings */
.boats-manage .bm-hero,.boats-login .bm-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.boat-login{max-width:460px;display:flex;flex-direction:column;gap:14px}
.boat-login .boat-view{align-self:flex-start}
.boat-login .bookrow{justify-content:space-between;gap:12px}
.boat-login .boat-small a{color:var(--teal);text-decoration:underline;text-underline-offset:2px}
.bm-sessions{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:6px;font-size:14px}
.bm-sessions li{background:var(--cream);border-radius:12px;padding:9px 12px}
.bm-summary{margin-bottom:16px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.bm-summary button{background:var(--card);border:0;border-radius:18px;padding:14px 16px;display:flex;flex-direction:column;align-items:flex-start;text-align:left;font:inherit;color:var(--ink);cursor:pointer;min-width:0;transition:box-shadow .15s}
.bm-summary button:hover{box-shadow:inset 0 0 0 2px var(--cream-2)}
.bm-summary button.warn{box-shadow:inset 0 0 0 2px var(--gold)}
.bm-summary b{font-size:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.bm-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bm-charts:has(>:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}
.bm-chart{position:relative;margin:0;background:var(--card);border-radius:20px;padding:16px 16px 8px}
.bm-chart figcaption{font-weight:700;font-size:15px;margin-bottom:6px}
.bm-chart svg{width:100%;height:auto;display:block;overflow:visible}
.bm-chart .grid line{stroke:rgba(20,58,56,.1);stroke-width:1}
.bm-chart text{font:12px var(--sans);fill:var(--muted)}
.bm-chart text.v{fill:var(--ink);font-weight:700}
.bm-chart .bm-bar path{fill:var(--teal)}
.bm-chart .bm-bar .hit{fill:transparent}
.bm-chart .bm-bar:hover path,.bm-chart .bm-bar:focus path{fill:var(--teal-soft)}
.bm-chart .bm-bar:hover .hit,.bm-chart .bm-bar:focus .hit{fill:rgba(20,58,56,.05)}
.bm-chart .bm-bar:focus{outline:none}
.bm-tip{position:absolute;top:38px;background:var(--teal);color:var(--cream);font-size:12.5px;font-weight:600;padding:6px 10px;border-radius:8px;white-space:nowrap;pointer-events:none}
.bm-table{margin:14px 0 4px;font-size:14px}
.bm-table summary{cursor:pointer;font-weight:600}
.bm-table table{width:100%;border-collapse:collapse;margin-top:8px;font-variant-numeric:tabular-nums}
.bm-table th,.bm-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right}
.bm-table th:first-child,.bm-table td:first-child{text-align:left}
.bm-table th{font-size:12.5px;color:var(--muted)}
/* reviews */
.bm-rating{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.bm-rating>b{font-family:var(--serif);font-size:48px;line-height:1}
.bm-rating div{display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.bm-review p{margin-top:8px}
.bm-review.off{opacity:.65}

@media (max-width:1080px){
  .boat-search{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr)}
  .boat-search .bs-date,.boat-search .bs-pax{grid-column:span 1}
  .boat-search .bs-date{grid-column:1}.boat-search .bs-pax{grid-column:3}
  .boat-search .boat-fare{grid-row:auto}
  .boat-search .boat-go{grid-column:1/-1}
  .fleet-track{grid-auto-columns:minmax(280px,calc((100% - 18px) / 2))}
  .bm-shell{grid-template-columns:minmax(0,1fr)}
  .bm-side{position:static}
  .bm-nav{flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:2px}
  .bm-nav button{white-space:nowrap;flex:0 0 auto}
  .bm-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .boat-card{grid-template-columns:110px minmax(0,1fr) auto;grid-template-areas:"photo times foot" "photo body foot";gap:8px 18px}
  .boat-card-photo{min-height:110px}
  .boat-mapview{grid-template-columns:1fr}
  .boat-map{position:relative;top:0;height:380px;order:-1}
  .boat-rows{max-height:none;overflow:visible}
  .boat-route-list,.boat-review-list{grid-template-columns:1fr 1fr}
  .boat-howto-list{grid-template-columns:1fr;gap:18px}
  .bm-charts,.bm-charts:has(>:nth-child(3)),.bm-vessels{grid-template-columns:1fr}
}
@media (max-width:620px){
  .boat-card{grid-template-columns:92px minmax(0,1fr);grid-template-areas:"photo times" "body body" "foot foot";gap:12px 14px;padding:12px}
  .boat-card-photo{min-height:0;height:64px;align-self:center}
  .boat-card-times b{font-size:22px}
  .boat-card-foot{flex-direction:row;align-items:center;justify-content:space-between;text-align:left;border-left:0;border-top:1px solid var(--cream-2);padding:12px 0 0;min-width:0}
  .boat-card-foot .boat-cant{text-align:left}
  .boat-sea.is-open .boat-sea-copy{padding-bottom:70px}
  .boat-sea.is-open .boat-sea-head{max-width:none}
  .boat-search-wrap{margin-top:-46px}
  .boat-search{grid-template-columns:minmax(0,1fr) 40px;padding:14px;border-radius:20px}
  .boat-search .bs-from{grid-column:1;grid-row:1}.boat-search .bs-to{grid-column:1;grid-row:2}
  .boat-search .boat-swap{grid-column:2;grid-row:1/3;align-self:center;height:96px}
  .boat-search .bs-date,.boat-search .bs-pax{grid-column:1/-1;grid-row:auto}
  .boat-search .boat-fare{grid-row:auto}
  .boat-route-list,.boat-review-list,.boat-uploads,.boat-steps{grid-template-columns:1fr}
  .boat-sort{margin-left:0}
  .boat-howto{padding:26px 22px;border-radius:22px}
  .fleet-track{grid-auto-columns:84%}
  .boat-row{grid-template-columns:64px minmax(0,1fr) auto;gap:10px}
  .boat-row-photo{width:64px;height:54px}
  .bm-vessel{grid-template-columns:110px minmax(0,1fr)}
  .bm-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-cal{padding:12px 8px}
  .bm-cal-cell{min-height:58px;padding:5px;border-radius:9px}
  .bm-cal-cell .t{display:none}
  .bm-cal-cell .s{font-size:11px}
  .bm-cal-cell .bar{left:5px;right:5px;bottom:5px}
  .bm-cal-month b{min-width:0;font-size:19px}
  .bm-tiles b{font-size:24px}
}
@media (prefers-reduced-motion:reduce){.boat-card,.boat-route{transition:none}.boat-card:hover{transform:none}}


/* ---- Koli Travels phase A: return trips, passengers, the jetty day, the subscription */
.boat-search.is-return{grid-template-columns:minmax(0,1.1fr) 40px minmax(0,1.1fr) minmax(0,.9fr) minmax(0,.9fr) 110px auto}
.boat-search .boat-trip{grid-column:1/4;grid-row:2}
.boat-search .boat-fare:not(.boat-trip){grid-column:4/-1;grid-row:2;justify-content:flex-end}
.boat-search .bs-back[hidden]{display:none}
.boat-card.picked{box-shadow:inset 0 0 0 2px var(--gold)}
.boat-row.picked{box-shadow:inset 0 0 0 2px var(--gold)}
.boat-back{margin-top:34px;scroll-margin-top:96px}
.boat-back-hint{background:var(--cream-2);border-radius:16px;padding:16px 18px;color:var(--ink);margin:6px 0}
.boat-req-legs{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.boat-req-legs li{background:var(--card);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.boat-req-legs span{font-size:12.5px;font-weight:700;color:var(--gold-ink)}
.boat-req-legs b{font-size:15px}.boat-req-legs em{font-style:normal;font-size:13px;color:var(--muted)}
.boat-names{border:0;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.boat-names legend{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.boat-names input{font:inherit;font-size:15px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink);min-width:0}
.boat-bags{display:grid;grid-template-columns:repeat(2,minmax(0,200px));gap:0 16px}
.boat-sea-note{font-size:13.5px;font-weight:600;border-radius:10px;padding:6px 10px;align-self:flex-start}
.boat-sea-note.s-calm{background:#e3f0e8;color:#1b6b43}
.boat-sea-note.s-moderate{background:#fbf1d6;color:var(--gold-ink)}
.boat-sea-note.s-rough{background:#f6e3e0;color:#8a1c12}
.boat-reply{color:var(--ink)!important;font-weight:600}
.boat-checked{background:#dff1e6!important;color:#1b6b43!important}
.boat-leg-tag{font-size:13.5px;font-weight:700;color:var(--gold-ink);margin:10px 0 0!important}
.boat-dd-sub{display:block;font-weight:500;font-size:13.5px;color:var(--muted)}
.s-expired .boat-badge{background:#ece6da;color:var(--muted)}
.boat-other-leg{display:flex;flex-direction:column;gap:4px;margin-top:14px;transition:background .18s}
.boat-other-leg:hover{background:var(--cream-2)}
.boat-other-leg b{font-size:17px}
.bm-pax-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:3px}
.bm-pax-tags i{font-style:normal;font-size:12px;font-weight:600;background:var(--cream-2);border-radius:999px;padding:2px 9px}
.bm-today-head{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.bm-today-head b{font-size:24px}
.bm-sea{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;background:var(--card);border-radius:18px;padding:12px 16px;margin-bottom:12px}
.bm-sea>span{font-size:13.5px;font-weight:700}
.bm-sea-opts{display:flex;gap:6px;flex-wrap:wrap}
.bm-sea-opts .chip{padding:6px 12px;font-size:13px}
.bm-sea input{flex:1;min-width:200px;font:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:var(--cream);color:var(--ink)}
.bm-run{background:var(--card);border-radius:20px;padding:16px 18px;margin-bottom:12px}
/* Seats to sell, next 14 days (28 Oct 2026) */
.bm-sell{margin-top:28px;background:var(--card);border-radius:20px;padding:18px}
.bm-sell-head{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.bm-sell-head h3{margin:0 0 4px}
.bm-sell-head p{margin:0;max-width:52ch}
.bm-sell-day{border-top:1px solid rgba(20,58,56,.1);padding:10px 0 4px}
.bm-sell-day>b{font-size:14px}
.bm-sell-day ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.bm-sell-day li{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center}
.bm-sell-day .t{font-weight:800}
.bm-sell-day .r em{display:block;font-style:normal;font-size:13px;color:var(--muted)}
.bm-sell-day .n{text-align:right;font-size:13px;color:var(--muted)}
.bm-sell-day .n b{display:block;font-size:24px;line-height:1;color:var(--teal)}
.bm-sell-day li.full .n b{font-size:16px;color:var(--muted)}
.bm-run.off{opacity:.7}
.bm-run-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.bm-run-head b{font-family:var(--serif);font-size:24px;font-weight:600}
.bm-run-head>div>span{font-weight:600;margin-left:6px}
.bm-run-head .muted{font-size:13.5px;margin-top:2px}
.bm-wait{color:var(--gold-ink)}
.bm-pax{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.bm-pax li{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--cream);border-radius:14px;padding:10px 12px}
.bm-pax li.waiting{box-shadow:inset 3px 0 0 var(--gold)}
.bm-pax li.in{background:#e7efe9}
.bm-pax-main{display:flex;flex-direction:column;gap:2px;font-size:14px;min-width:0}
.bm-pax-main>span{color:var(--muted);font-size:13.5px}
.bm-pax-main a{text-decoration:underline}
.bm-pax-act{display:flex;gap:6px;flex:0 0 auto}
.bm-checkin{flex:0 0 auto;min-width:118px;min-height:44px;border:2px solid var(--teal);border-radius:999px;background:var(--card);color:var(--teal);font:700 14px var(--sans);cursor:pointer}
.bm-checkin.on{background:var(--teal);color:var(--cream)}
.bm-share{display:inline-block;margin-top:10px;font-size:14px}
.bm-none{margin-top:8px;font-size:14px}
.bm-calloff{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:#f6e3e0;color:#5a140d;border-radius:16px;padding:12px 16px;font-size:14px}
.bm-plan{background:var(--card);border-radius:22px;padding:22px}
.bm-plan.s-paid .boat-badge,.bm-plan.s-free .boat-badge{background:#dff1e6;color:#1b6b43}
.bm-plan.s-due_soon .boat-badge,.bm-plan.s-grace .boat-badge{background:#fbf1d6;color:var(--gold-ink)}
.bm-plan.s-overdue .boat-badge,.bm-plan.s-unpaid .boat-badge{background:#f6e3e0;color:#8a1c12}
.bm-plan>p{margin:10px 0}
.bm-pay{background:var(--cream);border-radius:14px;padding:12px 14px;margin:8px 0}
.bm-pay p{margin:4px 0 0;white-space:pre-line}
@media (max-width:1080px){
  .boat-search.is-return{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr)}
  .boat-search.is-return .bs-back{grid-column:3}
  .boat-search.is-return .bs-pax{grid-column:1/-1}
  .boat-search .boat-trip,.boat-search .boat-fare:not(.boat-trip){grid-column:1/-1;grid-row:auto;justify-content:flex-start}
}
@media (max-width:620px){
  .boat-search .bs-back,.boat-search.is-return .bs-back{grid-column:1/-1}
  .boat-req-legs,.boat-names{grid-template-columns:1fr}
  .boat-bags{grid-template-columns:1fr 1fr}
  .bm-pax li{flex-direction:column;align-items:stretch}
  .bm-checkin{width:100%}
  .bm-today-head{flex-wrap:wrap}
}

/* ---- Koli Travels subscription prices */
.bm-fee{display:flex;flex-direction:column;gap:4px;background:var(--cream);border-radius:16px;padding:14px 16px;margin:10px 0}
.bm-fee>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bm-fee span{font-weight:700;font-size:14px;flex-basis:100%}
.bm-fee b{font-family:var(--serif);font-size:34px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.bm-fee em{font-style:normal;color:var(--muted)}
.bm-fee p{font-size:13.5px;margin:0}
.boat-prices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 8px}
.boat-price-pack{background:var(--card);border-radius:18px;padding:16px 18px;display:flex;flex-direction:column;gap:2px}
.boat-price-pack.mine{box-shadow:inset 0 0 0 2px var(--gold)}
.boat-price-pack>b{font-family:var(--serif);font-size:22px;font-weight:600}
.boat-price-pack>span{font-size:13.5px;color:var(--muted)}
.boat-price-pack ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.boat-price-pack li{display:flex;justify-content:space-between;gap:8px;font-size:14px}
.boat-price-pack li em{font-style:normal;font-weight:700;font-variant-numeric:tabular-nums}
.boat-price-pack p{font-size:14px;margin-top:10px}
.boat-pricing{margin:44px 0}
.boat-pricing h2{font-size:clamp(26px,3.2vw,38px);margin:6px 0 4px}
@media (max-width:900px){.boat-prices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.boat-prices{grid-template-columns:1fr}}
.boat-preview-bar{position:fixed;left:16px;bottom:16px;z-index:90;display:flex;gap:8px;align-items:center;flex-wrap:wrap;max-width:calc(100% - 32px);background:var(--teal);color:var(--cream);border-radius:14px;padding:10px 14px;font-size:13px;box-shadow:0 12px 30px -12px rgba(8,26,24,.6)}
.boat-preview-bar b{color:var(--brass-light)}
/* Koli Travels while it is "coming soon" */
.nav-soon{display:inline-block;margin-left:5px;padding:1px 7px;border-radius:999px;background:var(--gold);color:var(--teal);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px}
.boat-soon-preview{position:relative;max-width:620px;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:10px 22px;margin:30px 0 8px;box-shadow:var(--shadow);overflow:hidden}
.boat-soon-row{display:grid;grid-template-columns:70px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);filter:blur(1.5px);opacity:.75}
.boat-soon-row:last-of-type{border-bottom:0}
.boat-soon-row b{font-family:var(--serif);font-size:22px}
.boat-soon-row em{font-style:normal;font-family:var(--serif);font-size:19px}
.boat-soon-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-6deg);background:var(--teal);color:var(--cream);font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:14px;padding:10px 20px;border-radius:999px;box-shadow:var(--shadow)}
@media (max-width:620px){.boat-soon-row{grid-template-columns:56px 1fr auto;gap:10px}.boat-soon-row b{font-size:18px}.boat-soon-row span{font-size:14px}}

/* Koli Travels sea hero. --horizon is the sea line measured from the bottom; initBoatSea() keeps it in step with the shader. */
.boat-sea{--horizon:46%;position:relative;overflow:hidden;isolation:isolate;min-height:clamp(560px,82vh,720px);display:flex;color:var(--cream);
  background:linear-gradient(to top,#0d2a28 0%,#16463f calc(var(--horizon) - 1%),#e8c38a var(--horizon),#f4d5a4 calc(var(--horizon) + 10%),var(--cream) 100%)}
.boat-sea-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;display:block;touch-action:pan-y}
.boat-sea-copy{position:relative;z-index:1;width:100%;display:grid;grid-template-rows:auto 1fr;padding-top:34px;padding-bottom:46px;pointer-events:none}
.boat-sea-copy a,.boat-sea-copy button{pointer-events:auto}
.boat-sea-perks{list-style:none;justify-self:end;display:grid;gap:8px;margin:0;text-align:right;color:var(--teal);font-size:13.5px;font-weight:600}
.boat-sea-perks li::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold-2);margin-right:9px;vertical-align:2px}
/* At night (the sea follows the time in Malé) the sky is dark, so the small lines go cream. */
.boat-sea[data-sea-light="night"] .boat-sea-perks{color:rgba(250,247,242,.86)}
.boat-sea-head{align-self:end;max-width:min(560px,52%)}
.boat-sea-head .eyebrow{display:inline-block;color:#f0d79a;background:rgba(13,42,40,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:7px 13px;border-radius:999px;font-size:11.5px}
.boat-sea-head h1{font-size:clamp(38px,5.6vw,68px);line-height:1.02;margin:10px 0 14px;color:var(--cream);text-shadow:0 2px 24px rgba(8,26,24,.35)}
.boat-sea-head p{font-size:17px;color:rgba(250,247,242,.86);max-width:34em}
.boat-sea-head .bookrow{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}
.boats-soon{padding-top:8px}
@media (max-width:999px){
  .boat-sea{min-height:760px}
  .boat-sea-copy{grid-template-rows:1fr auto;padding-top:0;padding-bottom:30px}
  .boat-sea-perks{order:2;justify-self:start;text-align:left;color:rgba(250,247,242,.86);margin-top:18px;font-size:13px}
  .boat-sea-perks li::before{background:var(--gold)}
  .boat-sea-head{grid-row:1;max-width:600px}
  .boat-sea-head p{font-size:15.5px}
}
@media (max-width:560px){
  .boat-sea{min-height:760px}
  .boat-sea-perks{display:none}
  .boat-sea-head .bookrow .btn{width:100%;justify-content:center}
}

/* Booking status: the delivery card that follows the bike through four states. */
.dcard{margin:18px 0 6px;border:1px solid var(--line);border-radius:22px;background:var(--card);box-shadow:var(--shadow);overflow:hidden}
.dcard-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 22px 0}
.dcard-top small{display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-ink)}
.dcard-top b{display:block;font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.15;margin:4px 0 3px}
.dcard-top span{font-size:13px;color:var(--muted)}
.dcard-pill{flex:0 0 auto;border-radius:999px;padding:6px 12px;font-size:12.5px !important;font-weight:700;background:rgba(198,164,78,.16);color:var(--gold-ink) !important}
.dcard-s1 .dcard-pill{background:var(--teal);color:var(--cream) !important}
.dcard-s2 .dcard-pill,.dcard-s3 .dcard-pill{background:rgba(28,122,74,.12);color:#1c7a4a !important}
.dcard-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);margin:20px 22px 0;padding:0;counter-reset:none}
.dcard-steps li{position:relative;display:grid;justify-items:center;gap:7px;text-align:center;font-size:11.5px;font-weight:700;color:var(--muted)}
.dcard-steps li::before{content:"";position:absolute;top:8px;right:50%;width:100%;height:2px;background:#e6ddc9;z-index:0}
.dcard-steps li:first-child::before{display:none}
.dcard-steps li.done::before,.dcard-steps li.now::before{background:var(--gold)}
.dcard-steps i{position:relative;z-index:1;width:18px;height:18px;border-radius:50%;background:var(--card);border:2px solid #e6ddc9}
.dcard-steps li.done{color:var(--teal)}
.dcard-steps li.done i{background:var(--gold);border-color:var(--gold)}
.dcard-steps li.now{color:var(--teal)}
.dcard-steps li.now i{border-color:var(--gold);background:var(--card);box-shadow:0 0 0 5px rgba(198,164,78,.2)}
.dcard-steps li.now i::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--teal)}
.dcard-body{margin:18px 22px 0;padding:16px;border-radius:16px;background:var(--cream)}
.dcard-body p{margin:10px 0 0;font-size:14px;color:var(--muted)}
.dcard-window{display:grid;gap:2px}
.dcard-window em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted)}
.dcard-window b{font-family:var(--serif);font-weight:500;font-size:22px}
.dcard-window span{font-size:14px;color:#3f5a57}
.dcard-progress{position:relative;height:8px;border-radius:999px;background:#e6ddc9;overflow:hidden}
.dcard-progress span{position:absolute;inset:0 auto 0 0;width:62%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--teal));animation:dcardRide 2.4s ease-in-out infinite alternate}
.dcard-progress.full span{width:100%;animation:none}
@keyframes dcardRide{from{width:48%}to{width:72%}}
.dcard-rider{display:flex;align-items:center;gap:12px;margin-top:14px}
.dcard-avatar{flex:0 0 auto;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:var(--cream);font-family:var(--serif);font-size:19px}
.dcard-rider b{display:block;font-size:15px}
.dcard-rider small{display:block;font-size:13px;color:var(--muted)}
.dcard-signed{display:flex;align-items:center;gap:12px}
.dcard-signed>b{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#1c7a4a;color:#fff;font-size:17px}
.dcard-signed strong{display:block;font-size:15px}
.dcard-signed small{display:block;font-size:13px;color:var(--muted)}
.dcard-events{list-style:none;margin:14px 22px 0;padding:0}
.dcard-events li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.dcard-events li:last-child{border-bottom:0}
.dcard-events time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.dcard-events.dim li{opacity:.6}
.dcard-events.dim li:first-child{opacity:1;font-weight:600}
.dcard-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:16px 22px 20px}
.dcard-actions .btn{white-space:nowrap}
@media (max-width:560px){
  .dcard-top{padding:18px 16px 0}.dcard-steps{margin:18px 10px 0}.dcard-body{margin:16px 12px 0}.dcard-events{margin:12px 16px 0}
  .dcard-actions{padding:14px 16px 18px}.dcard-actions .btn{flex:1;justify-content:center;padding:13px 12px;font-size:14.5px}
  .dcard-steps li{font-size:10.5px}
}
@media (prefers-reduced-motion:reduce){.dcard-progress span{animation:none}}


/* Compact trip planner: retain Koli's existing palette and type, grouping
   schedule and location as one task. Native/web controls stay in DOM order. */
.bk-step-1 .bk-grid{grid-template-columns:minmax(0,1fr) 290px;gap:28px}
.bk-step-1 .bk-main{padding-top:16px}
.bk-step-1 .bk-head{margin-bottom:22px}
.bk-step-1 .bk-title{font-size:clamp(36px,3.6vw,48px)}
.bk-plan-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:start}
.bk-plan-controls,.bk-plan-meeting{min-width:0}
.bk-plan-controls>.bk-block{padding:18px 0}
.bk-plan-controls>.bk-block:first-child{padding-top:0}
.bk-plan-grid .bk-h{font-size:17px;margin-bottom:12px}
.bk-plan-grid .bk-sub{font-size:14px;line-height:1.5;margin-top:0}
.bk-plan-controls .bk-areas{grid-template-columns:1fr;gap:8px}
.bk-plan-controls .bk-area{padding:12px;gap:12px;min-height:64px}
.bk-plan-controls .bk-area b{font-size:15px}
.bk-plan-controls .bk-area em{font-size:13px}
.bk-plan-controls .compact-picks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.bk-plan-controls .pick{padding:10px;min-width:0}
.bk-plan-controls .pick img{height:64px;object-fit:contain}
.bk-plan-controls .pick .pn{font-size:14px}
.bk-plan-controls .pick .pp{font-size:13px}
.bk-plan-controls .bk-when{grid-template-columns:1fr;gap:14px}
.bk-plan-controls .bk-when-col,.bk-plan-controls .bk-when-col+.bk-when-col{padding:0;border:0}
.bk-plan-controls .bk-dt{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.bk-plan-controls .bk-dt>*+*{border-top:0;border-left:1px solid var(--bk-line)}
.bk-plan-controls .bk-in{gap:7px;padding:0 10px}
.bk-plan-controls .bk-in svg{width:17px;flex-basis:17px}
.bk-plan-controls .bk-length{flex-wrap:wrap;padding:10px 12px;gap:6px;font-size:14px}
.bk-plan-controls .bk-length span{flex-basis:100%;font-size:12px}
.bk-plan-controls .bk-hint{font-size:12.5px;line-height:1.5}
.bk-plan-meeting{border:1px solid var(--bk-line);border-radius:16px;background:var(--card);padding:20px}
.bk-plan-meeting>.bk-block{border:0;padding:0}
.bk-plan-meeting .bk-map .pinmap{height:330px}
.bk-plan-meeting .pinbar{flex-wrap:wrap;gap:8px}
.bk-plan-meeting .pinbar button{min-height:44px}
.bk-plan-meeting .pin-status{flex-basis:100%}
.bk-step-1 .bk-aside{padding:16px 0 32px 24px}
.bk-step-1 .bk-sum-title{font-size:24px}
.bk-step-1 .bk-sum-name{font-size:22px}
.bk-step-1 .bk-sum-rows div{font-size:13.5px}
.bk-step-1 .bk-sum-rows dt{gap:6px}
.bk-step-1 .bk-sum-rows dd{min-width:0;overflow-wrap:anywhere}
.bk-step-1 .bk-primary{font-size:15px;padding:14px 18px}
.bk-ridecard img,.bk-rev-trip img{object-fit:contain}
.bk-main{animation:bk-step-enter .2s ease-out}
@keyframes bk-step-enter{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){
 .bk-step-1 .bk-grid{grid-template-columns:minmax(0,1fr) 250px;gap:20px}
 .bk-plan-grid{gap:16px}
 .bk-plan-meeting{padding:16px}
 .bk-step-1 .bk-aside{padding-left:18px}
}
@media(max-width:980px){
 .bk-step-1 .bk-grid{grid-template-columns:1fr}
 .bk-step-1 .bk-ridecard{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:10px;margin-bottom:18px}
 .bk-step-1 .bk-ridecard img{aspect-ratio:1;height:64px}
 .bk-step-1 .bk-ridecard b{font-family:var(--sans);font-size:17px}
 .bk-step-1 .bk-ridecard span{margin:2px 0 5px;font-size:13px}
 .bk-step-1 .bk-ridecard em{font-size:14px;padding:0}
 .bk-plan-controls .bk-areas{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
 .bk-step-1 .bk-head{margin-bottom:16px}
 .bk-step-1 .bk-title{font-size:36px}
 .bk-step-1 .bk-lead{font-size:15px}
 .bk-plan-grid{grid-template-columns:1fr;gap:12px}
 .bk-plan-meeting{padding:16px}
 .bk-plan-meeting .bk-map .pinmap{height:260px}
 .bk-plan-controls .bk-area{padding:10px;gap:8px}
 .bk-plan-controls .bk-area i{width:16px;height:16px;flex-basis:16px}
 .bk-plan-controls .bk-area b{font-size:14px}
 .bk-plan-controls .bk-area em{font-size:12px;line-height:1.4;display:block}
 .bk-plan-controls .bk-dt{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
 .bk-bar>div{min-width:0;flex:1}
 .bk-bar .bk-primary{font-size:14px;padding:14px 16px}
 .bk-bar em{overflow-wrap:anywhere;line-height:1.3}
}
@media(prefers-reduced-motion:reduce){.bk-main{animation:none}.bk-primary{transition:none}}

/* Keep the map and the primary quote visible together on a laptop. */
.bk-step-1 .bk-head{margin-bottom:18px}
.bk-step-1 .bk-title{font-size:clamp(34px,3.2vw,44px)}
.bk-step-1 .bk-lead{font-size:16px}
.bk-plan-meeting .bk-map .pinmap{height:280px}
.bk-plan-meeting .bk-locs{margin-top:12px}
.bk-step-1 .bk-aside .bk-sum-ride,.bk-step-1 .bk-aside .bk-sum-ride img{max-height:100px}
.bk-step-1 .bk-sum-inc{display:none}
.bk-step-1 .bk-sum-line{font-size:14px;padding-top:12px}
.bk-step-1 .bk-sum-note{font-size:12px;line-height:1.5}
@media(max-width:680px){.bk-plan-meeting .bk-map .pinmap{height:240px}}

/* Audit refinements: existing Koli tokens, compact controls and honest states. */
.hdr>.wrap{max-width:1440px;gap:16px}.hdr .logo{font-size:clamp(17px,1.65vw,23px);letter-spacing:.1em}.hdr .nav{gap:16px;flex-shrink:0;margin-left:0}.hdr .nav a{font-size:13px}.hdr .spacer{min-width:0}
[hidden]{display:none!important}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--gold-ink);outline-offset:4px}
#earnApply,#earnCalc,.booking-field-error{scroll-margin-top:110px}
.earn-optional{padding:16px 0;border-block:1px solid var(--line);margin:16px 0}
.earn-optional>summary,.fleet-spec-disclosure>summary{cursor:pointer;font-weight:600;min-height:44px;padding:10px 0}
.earn-optional[open]>.form-grid{margin-top:12px}
.fleet-spec-disclosure{margin:16px 0}
.fleet-date-check{display:grid;grid-template-columns:1.3fr 1.2fr 1fr .65fr 1.1fr auto;gap:12px;align-items:end;margin:0 0 28px;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--card)}
.fleet-date-check .field{min-width:0;margin:0}.fleet-date-check input,.fleet-date-check select{min-width:0;width:100%}
.fleet-date-check #fcResult{grid-column:1/-1;margin:0}.fleet-date-check #fcResult:empty{display:none}.fleet-date-check #fcResult a{margin:10px 0 0 12px}
.maafushi-package-grid{margin-top:16px}.maafushi-package-card{min-height:230px;padding:18px}.maafushi-package-card p{min-height:0}
.bk-service-choice>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;min-height:44px;align-items:center;font-size:14px;font-weight:600}
.bk-service-choice>summary span{color:var(--gold-ink);font-size:12px}.bk-service-choice[open] nav{margin-top:12px}
.bk-step-1 .bk-pkgs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.bk-step-1 .bk-pkg{display:grid;grid-template-columns:22px minmax(0,1fr);gap:6px;align-items:start;padding:11px 9px}.bk-step-1 .bk-pkg b{font-size:13px;line-height:1.4}.bk-step-1 .bk-pkg em{display:none}.bk-step-1 .bk-pkg strong{grid-column:1/-1;font-size:16px}
.bk-ridecard img,.bk-sum-ride img{object-fit:contain!important}
.upload-remove{margin-top:8px;min-height:44px;font-size:13px}
.account-booking{display:grid;gap:5px;padding:16px 0;border-bottom:1px solid var(--line)}.account-booking span,.account-booking em{font-size:14px;color:var(--muted)}
.auth-page .wrap.narrow{max-width:590px}.auth-page .panel{padding:28px}.auth-page h1{font-size:36px;margin-bottom:10px}.auth-page .center+.center{margin-bottom:18px}
.demo-notice{position:sticky;top:0;z-index:20;width:min(100%,650px);background:var(--cream);color:var(--teal);padding:18px;border:2px solid var(--gold);border-radius:14px;margin-bottom:18px;display:grid;gap:8px}.demo-notice span{font-size:14px}.demo-notice a{font-weight:700;text-decoration:underline}
.live-app-top .btn-ghost{color:var(--cream);border-color:rgba(250,247,242,.5);font-size:12px;min-height:44px;padding:10px 12px}
.gal-grid .home-video-link{display:block;position:relative;aspect-ratio:16/10;overflow:hidden;border-radius:12px}.gal-grid .home-video-link img{width:100%;height:100%;object-fit:cover}.gal-grid .home-video-link span{position:absolute;inset:0;display:grid;place-items:center;font-size:44px;color:var(--cream);background:#123d3940}
.service-guide{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:30px 0}.service-guide>div{border-top:1px solid var(--line);padding-top:18px}.service-guide h2{font-family:var(--serif);font-size:24px;margin-bottom:10px}.service-guide p{margin-bottom:10px}
@media(max-width:1100px){.fleet-date-check{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.fleet-date-check{grid-template-columns:1fr 1fr;padding:16px}.fleet-date-check button,.fleet-date-check .field:first-child{grid-column:1/-1}.fleet-date-check #fcResult a{margin-left:0}.service-guide{grid-template-columns:1fr}.maafushi-package-card{min-height:210px;padding:14px}.demo-notice{border-radius:0}}
@media(prefers-reduced-motion:reduce){.live-ambient,.live-ocean-motion{animation:none!important}.maafushi-package-card:hover{transform:none}}

/* Bike pages: "Good to know" (27 Oct 2026). */
.rent-terms{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0;border-top:1px solid var(--line)}
.rent-terms div{padding:22px 24px 22px 0;border-bottom:1px solid var(--line)}
.rent-terms dt{font-weight:700;color:var(--teal-2);font-size:15.5px;margin-bottom:6px}
.rent-terms dd{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}
.rent-terms-more{margin:18px 0 0}
@media(max-width:860px){.rent-terms{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.rent-terms{grid-template-columns:1fr}.rent-terms div{padding:16px 0}}

/* Home slides (27 Oct 2026): services and partners in one swipeable row, labels on top. */
.home-slides{background:linear-gradient(180deg,var(--white),#f4efe4)}
.hs-head{margin-bottom:16px}
.hs-head h2{font-size:clamp(30px,4vw,44px);line-height:1.08;color:var(--teal-2);margin:6px 0 0}
.hs-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 0 16px;padding:2px}
.hs-tabs::-webkit-scrollbar{display:none}
.hs-tabs button{flex:0 0 auto;min-height:40px;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--teal-2);font:600 14px var(--sans);cursor:pointer;transition:background .18s,border-color .18s,color .18s}
.hs-tabs button[aria-selected=true]{background:var(--teal-2);border-color:var(--teal-2);color:var(--cream)}
.hs-tabs button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hs-viewport{position:relative}
.hs-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.hs-track::-webkit-scrollbar{display:none}
.hs-slide{position:relative;flex:0 0 100%;height:460px;border-radius:24px;overflow:hidden;scroll-snap-align:start;background:var(--teal-2);color:var(--cream);isolation:isolate}
.hs-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hs-slide::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(11,40,37,.86) 0%,rgba(11,40,37,.62) 38%,rgba(11,40,37,0) 68%)}
.hs-cutout{background:radial-gradient(120% 90% at 70% 30%,#2f7f86 0%,#165a5c 45%,#0b2825 100%)}
.hs-cutout .hs-img{object-fit:contain;inset:auto 4% 12% 34%;width:62%;height:auto;max-height:70%;filter:drop-shadow(0 18px 24px rgba(0,0,0,.35))}
/* The boat sits on a band of brighter water with a soft shadow, so it does not float in the air. */
.hs-cutout::before{content:"";position:absolute;z-index:-1;left:-10%;right:-10%;top:52%;height:30%;background:radial-gradient(60% 50% at 66% 18%,rgba(0,0,0,.28),transparent 70%),linear-gradient(180deg,rgba(120,205,210,.38),rgba(120,205,210,0) 70%);filter:blur(2px)}
.hs-cutout .hs-img{top:auto;bottom:44%;max-height:44%}
.hs-copy{position:absolute;left:0;bottom:0;max-width:480px;padding:36px 40px}
.hs-sea.has-sea{background:#0b2825}
.hs-sea.has-sea .hs-img,.hs-sea.has-sea::before{display:none}
.hs-sea .boat-sea-canvas{z-index:-2;touch-action:pan-x pan-y}
.hs-kicker{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-light);font-weight:700;margin-bottom:10px}
.hs-logo{display:block;height:34px;width:auto;margin:0 0 10px;filter:brightness(0) invert(1)}
.hs-copy h3{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,40px);line-height:1.08;margin:0 0 10px;color:var(--cream)}
.hs-copy p{margin:0 0 18px;font-size:15.5px;line-height:1.55;color:#d9e4e2;max-width:40ch}
.hs-cta{display:inline-flex;align-items:center;gap:10px;min-height:46px;padding:12px 22px;border-radius:999px;background:var(--cream);color:var(--teal-2);font-weight:700;font-size:15px}
.hs-cta span{transition:transform .2s}
.hs-cta:hover span{transform:translateX(3px)}
.hs-arrow{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;border:1px solid rgba(250,247,242,.4);background:rgba(11,40,37,.55);color:var(--cream);font-size:18px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
/* both arrows in the bottom-right corner, clear of the text */
.hs-arrow{top:auto;bottom:24px;transform:none}
.hs-arrow.prev{right:80px}.hs-arrow.next{right:24px}
.hs-arrow:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hs-dots{display:flex;justify-content:center;gap:8px;margin-top:14px}
.hs-dots i{width:7px;height:7px;border-radius:50%;background:rgba(20,58,56,.22);transition:width .25s,background .25s}
.hs-dots i.on{width:22px;border-radius:4px;background:var(--gold)}
@media(max-width:900px){
  .hs-arrow{display:none}
  .hs-track{scroll-padding-left:0}
  .hs-slide{flex-basis:88%;height:470px}
  /* room after the last slide, so it can settle fully into view like the others */
  .hs-track::after{content:"";flex:0 0 calc(12% - 16px)}
  .hs-slide::after{background:linear-gradient(0deg,rgba(11,40,37,.94) 0%,rgba(11,40,37,.8) 48%,rgba(11,40,37,.35) 66%,rgba(11,40,37,0) 82%)}
  .hs-copy{padding:24px 22px}
  .hs-copy p{font-size:14.5px}
  .hs-cutout .hs-img{inset:auto 4% 58% 4%;width:92%;max-height:34%}
  .hs-cutout::before{top:36%;height:24%}
  .hs-sea.has-sea::after{background:linear-gradient(0deg,rgba(11,40,37,.92) 0%,rgba(11,40,37,.74) 40%,rgba(11,40,37,.5) 52%,rgba(11,40,37,0) 64%)}
}
@media(prefers-reduced-motion:reduce){.hs-track{scroll-behavior:auto}.hs-cta span,.hs-dots i{transition:none}}

/* ---- Koli Travels place picker: a search box over every island and resort, grouped by atoll */
.place-pick{position:relative}
.place-pick .pp-btn{width:100%;height:48px;min-height:48px;text-align:left;font:inherit;font-size:15px;padding:0 34px 0 13px;border:1px solid var(--line);border-radius:12px;
  background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23143A38' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 13px center;
  color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.boat-search .place-pick .pp-btn{background-color:var(--cream);border-color:transparent}
.place-pick .pp-btn[aria-expanded="true"]{outline:2px solid var(--gold)}
.place-pick .pp-panel{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 6px);min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 24px 50px -24px rgba(8,26,24,.5);padding:10px}
.place-pick .pp-panel .pp-q{width:100%;height:44px;font:inherit;font-size:16px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--cream);color:var(--ink)}
.place-pick .pp-panel .pp-q:focus{outline:2px solid var(--gold)}
.place-pick .pp-list{max-height:min(320px,48vh);overflow-y:auto;margin-top:8px;overscroll-behavior:contain}
.place-pick .pp-head{position:sticky;top:0;background:var(--card);font-family:var(--subheading);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink);padding:8px 6px 4px}
.place-pick .pp-opt{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;text-align:left;font:inherit;font-size:15px;color:var(--ink);background:none;border:0;border-radius:8px;padding:9px 8px;min-height:40px;cursor:pointer}
.place-pick .pp-opt:hover,.place-pick .pp-opt:focus{background:var(--cream);outline:none}
.place-pick .pp-opt[aria-selected="true"]{background:var(--cream-2);font-weight:600}
.place-pick .pp-opt em{font-style:normal;font-size:11px;letter-spacing:.04em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px;flex:none}
.place-pick .pp-none{color:var(--muted);font-size:14px;padding:12px 6px}

/* ---- private hire results */
.charter-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;margin-top:16px}
.charter-list .fleet-card{scroll-snap-align:none}

.place-pick .pp-opt .pp-atoll{font-size:12px;color:var(--muted);font-weight:500;margin-right:auto}
/* Day buttons with how many boats run that day; a day with none is quiet but can still be chosen. */
.boat-days .boat-day{display:inline-flex;flex-direction:column;align-items:center;line-height:1.15;gap:1px}
.boat-days .boat-day small{font-size:11.5px;font-weight:600;opacity:.75}
.boat-days .boat-day.none:not(.on){color:var(--muted);background:transparent;border-style:dashed}
.boat-card-route{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-ink)}
.boat-card-route i{font-style:normal}

/* Koli Rides packages on phones: one full-width row each (duration · price · Book), easy to compare top to bottom,
   no card left alone in a row (design review, 27 Oct 2026). */
@media(max-width:680px){
  .maafushi-package-grid{grid-template-columns:1fr;gap:8px}
  .maafushi-package-card{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px 14px;padding:14px 16px;border-radius:14px}
  .maafushi-package-card[hidden]{display:none}
  .maafushi-package-head{margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
  .maafushi-package-head span{font-size:16px}
  .maafushi-package-price{margin:0;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
  .maafushi-package-price b{font-size:24px}
  .maafushi-package-card p,.maafushi-package-card ul{display:none}
  .maafushi-package-cta{margin:0;padding:10px 14px;border-radius:999px;font-size:14px;white-space:nowrap}
  .maafushi-package-cta .ma-cta-long{display:none}
}

/* Operator page on phones: the steps are a numbered list and the benefits short rows, instead of 8 full-width cards
   (about half the height) — design review, 27 Oct 2026. */
@media(max-width:680px){
  .boats-join .earn-steps{grid-template-columns:1fr;gap:0;margin:28px 0}
  .boats-join .earn-step{display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:14px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0}
  .boats-join .earn-step .earn-n{grid-row:span 2;width:30px;height:30px;font-size:14px}
  .boats-join .earn-step b{margin:4px 0 2px}
  .boats-join .earn-step p{font-size:14px}
  .boats-join .earn-look-grid{grid-template-columns:1fr;gap:0;margin-top:6px}
  .boats-join .earn-look{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 0}
  .boats-join .earn-look b{margin:0 0 2px;font-size:16px}
  .boats-join .earn-look p{font-size:14px}
}

/* The KOLI App is not in the stores yet: on phones its panel (about 700 px) is left out of the home page. */
@media(max-width:680px){ .home-get-app{display:none} }

/* Footer on phones: the link lists side by side in two columns, staff and account deletion as small text at the
   bottom (design review, 27 Oct 2026). */
.footer .bottom a{color:inherit;text-decoration:underline;text-underline-offset:2px}
@media(max-width:680px){
  .footer .cols{grid-template-columns:1fr 1fr;gap:26px 18px}
  .footer .cols>.brandcol{grid-column:1/-1}
  .footer .cols>div:last-child{grid-column:1/-1}
  .footer ul a,.footer ul button{min-height:40px;font-size:14px}
}

/* The main action on each home section is a filled pill at least 48 px tall, not a text link: teal on the cream
   hero, cream on the dark "Ready to ride" panel (design review, 27 Oct 2026). */
.kh-cta,.kb-cta{min-height:52px;padding:0 26px;border-radius:999px;font-family:var(--sans);font-weight:700;font-size:16px;gap:10px;box-shadow:0 12px 28px -18px rgba(13,42,40,.6)}
.kh-cta{background:var(--teal);color:var(--cream)}
.kh-cta:hover{background:var(--teal-2)}
.kb-cta{background:var(--cream);color:var(--teal-2)}
.kb-cta:hover{background:#fff}

/* Small capital labels: at most .12em letter-spacing so they stay on one line on a phone and remain readable
   (design review, 27 Oct 2026). */
.kh-eyebrow,.kr-eyebrow,.kb-kicker,.home-card-kicker,.platform-card span,.fleet-snapshot-grid span,.fleet-expect-grid span,
.maafushi-price-row span,.footer h4,.about-mission span,.contact-card-pro span,.ride-kicker,.home-phone-top,.home-device-top b,
.booking-section-number,.live-mini-kicker,.pricetag .k,.home-price-chip span,.home-price-chip em{letter-spacing:.12em}
.kb-kicker{font-size:12px}
/* No light text on bright gold anywhere (2.4:1): these take the deep teal text gold buttons already use. */
.home-mini-flow span.on,.book-premium .booking-steps span.on b,.booking-ride-copy strong,.live-app-timeline span.done b{color:var(--teal-2)}

/* Koli Travels search, compact (design review, 27 Oct 2026): a shorter sea so the form is in the first screen,
   − / + for passengers, Private hire as a link, and the "Text me" alert in the empty state. */
.boat-sea.is-open{min-height:clamp(380px,50vh,470px)}
.boat-sea.is-open .boat-sea-copy{padding-bottom:156px}
.pax-step{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;border:1px solid var(--line);border-radius:12px;background:var(--cream);overflow:hidden}
.pax-step button{height:46px;border:0;background:transparent;font:600 20px var(--sans);color:var(--teal);cursor:pointer}
.pax-step button:hover{background:var(--cream-2)}
.pax-step input{border:0!important;background:transparent!important;text-align:center;min-height:46px!important;height:46px;padding:0!important;-moz-appearance:textfield}
.pax-step input::-webkit-outer-spin-button,.pax-step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.boat-search .bs-private{grid-column:1/-1;justify-self:end;font-size:14px;font-weight:600;color:var(--teal);background:none;border:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px 0}
.boat-alert{margin-top:18px;padding-top:16px;border-top:1px solid var(--line);display:grid;gap:8px;max-width:520px}
.boat-alert-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.boat-alert-row input{min-height:48px;border:1px solid var(--line);border-radius:12px;padding:0 14px;font:500 16px var(--sans);background:var(--card);color:var(--ink)}
.boat-alert-done{margin:0;color:#1b6b43}
@media(max-width:620px){
  .boat-sea.is-open{min-height:280px}
  .boat-sea.is-open .boat-sea-head p{display:none}
  .boat-sea.is-open .boat-sea-head h1{font-size:30px;margin-bottom:0}
  .boat-sea.is-open .boat-sea-copy{padding-bottom:62px}
  .boat-search .bs-private{justify-self:center}
}

/* Accessibility audit, 28 Oct 2026: --muted is a shade darker (5:1 or more on every cream), "Coming soon" text is no
   longer faded by opacity, and the unavailable badge uses the darker gold. */

/* Trips & charters (28 Oct 2026) */
.trips-head{max-width:720px;margin:0 0 20px}
.trips-head h1{margin:6px 0 10px}
.trips-filter{display:grid;gap:14px;margin:0 0 18px;padding:16px;border-radius:20px;background:var(--card)}
.trips-filter .place-pick{max-width:420px}
.trips-kinds{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:640px){.trips-kinds{flex-wrap:nowrap;overflow-x:auto;margin:0 -16px;padding:0 16px 4px;scrollbar-width:none}.trips-kinds .chip{flex:0 0 auto}}
.trips-count{margin:0 0 10px}
.trip-kind{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a9d7bf;margin:0 0 4px}
.trip-card .trip-form .field>span,.trip-card .trip-form .boat-small{color:rgba(250,247,242,.86)}
.trip-card .trip-form .earn-err{color:#ffd2c8}
.trip-form{margin-top:14px;padding-top:14px;border-top:1px solid rgba(250,247,242,.18)}
.trip-sent{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--cream);color:var(--ink)}
.trips-cta{margin-bottom:16px}
.bm-vessel.bm-trip,.bm-vessels .bm-vessel.bm-trip{grid-template-columns:minmax(0,1fr)}

/* Getting around an island (28 Oct 2026) */
.getting-around{margin:22px 0;padding:18px;border-radius:20px;background:var(--card)}
.getting-around h2{margin:4px 0 10px;font-size:clamp(22px,2.4vw,28px)}
.getting-around ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.getting-around li{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid rgba(20,58,56,.1)}
.getting-around li>div:first-child{display:grid;min-width:0}
.getting-around em{font-style:normal;font-size:13px;color:var(--muted)}
.ga-kind{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ga-act{display:flex;gap:8px}
.boat-pickup{margin:4px 0 8px}
.boat-pickup .field{margin-top:6px}

/* ---------- Site header, footer and help pill (Claude Design handoff, 28 Oct 2026) ---------- */
.sh{position:relative;z-index:20;padding:0 var(--gutter);background:var(--salt);border-bottom:1px solid var(--line-c);color:var(--ink-1)}
.sh-dark{position:absolute;top:0;left:0;right:0;background:transparent;border-bottom-color:transparent;color:var(--salt)}
.sh-dark.sh-open{background:var(--lagoon)}
.sh-bar{max-width:1280px;margin:0 auto;min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.sh-word{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:.02em;line-height:1;color:inherit}
.sh-nav{display:flex;gap:28px;font-size:15px}
.sh-nav a{color:inherit;padding:6px 0;border-bottom:1px solid transparent}
.sh-nav a.on{border-bottom-color:currentColor}
.sh-nav a:hover,.sh-trips:hover{opacity:.7}
.sh-right{display:flex;align-items:center;gap:16px;font-size:15px}
.sh-trips{color:inherit}
.sh-signin{background:var(--lagoon);color:var(--salt);padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px}
.sh-dark .sh-signin{background:var(--salt);color:var(--lagoon)}
.sh-signin:hover{opacity:.88}
.sh-menu{display:none;align-items:center;border:1px solid var(--line-c);background:transparent;color:inherit;font:inherit;font-size:14px;font-weight:600;padding:10px 16px;border-radius:999px;cursor:pointer;min-height:44px}
.sh .cur-toggle{display:flex;border:1px solid var(--line-c);border-radius:999px;padding:3px;background:transparent;gap:0}
.sh .cur-toggle button{border:0;cursor:pointer;font:inherit;font-size:13px;padding:5px 12px;border-radius:999px;background:transparent;color:inherit;min-height:0}
.sh .cur-toggle button.on{background:var(--lagoon);color:var(--salt)}
.sh-dark .sh-menu,.sh-dark .cur-toggle{border-color:rgba(250,247,242,.35)}
.sh-dark .cur-toggle button.on{background:var(--salt);color:var(--lagoon)}
.sh-panel{max-width:1280px;margin:0 auto;padding:8px 0 24px;display:flex;flex-direction:column;border-radius:16px}
.sh-panel[hidden]{display:none}
.sh-panel>a{color:inherit;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.2;padding:10px 4px;border-bottom:1px solid var(--line-c)}
.sh-dark .sh-panel>a{border-bottom-color:rgba(250,247,242,.35)}
.sh-panel>a.on{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px}
.sh-panel-btns{display:flex;gap:12px;padding-top:20px}
.sh-panel-btns a{flex:1;text-align:center;padding:13px;border-radius:12px;font-weight:600;min-height:44px}
.sh-panel-trips{border:1px solid var(--line-c);color:inherit}
.sh-panel-signin{background:var(--lagoon);color:var(--salt)}
.sh-dark .sh-panel-trips{border-color:rgba(250,247,242,.35)}
.sh-dark .sh-panel-signin{background:var(--salt);color:var(--lagoon)}
@media(max-width:899px){.sh-nav,.sh-trips,.sh-signin{display:none}.sh-menu{display:inline-flex}}

.sf{background:var(--lagoon);color:rgba(250,247,242,.82);padding:72px var(--gutter) 48px;font-family:var(--sans)}
.sf-in{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:56px}
.sf-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:40px;font-size:15px}
.sf-col{display:flex;flex-direction:column;gap:10px}
.sf-word{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.1;color:var(--salt)}
.sf-h{color:var(--brass-light);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.sf a{color:rgba(250,247,242,.82)}
.sf a:hover{color:var(--salt)}
.sf-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(250,247,242,.62);border-top:1px solid rgba(250,247,242,.15);padding-top:24px}
.sf-links{display:flex;gap:20px;flex-wrap:wrap}
.sf-bottom a{color:rgba(250,247,242,.62)}

.help-pill{position:fixed;right:20px;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;align-items:center;gap:10px;background:var(--salt);color:var(--lagoon);padding:14px 20px;border-radius:999px;box-shadow:0 12px 32px rgba(20,58,56,.22);font-weight:600;font-size:15px;font-family:var(--sans)}
.help-pill:hover{background:var(--white);color:var(--lagoon)}
.help-dot{width:10px;height:10px;border-radius:50%;background:var(--wa-dot);flex:0 0 auto}
.help-short{display:none}
@media(max-width:759px){.help-long{display:none}.help-short{display:inline}body:has(.bk-bar) .help-pill{bottom:calc(96px + env(safe-area-inset-bottom,0px))}}

/* Interim pages for the new menu: Islands, Buggies, Partners */
.pg{padding:72px var(--gutter) 112px}
.pg-in{max-width:1280px;margin:0 auto}
.pg-h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,80px);line-height:1;color:var(--lagoon);margin:12px 0 18px}
.pg-lead{font-size:18px;color:var(--ink-2);max-width:40em;margin:0 0 36px}
.pg-pick{max-width:420px;margin-bottom:20px}
.pg-more{margin-top:36px}
.ph-cap{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.isl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.isl-card{aspect-ratio:3/4;border-radius:16px;background:var(--lagoon) repeating-linear-gradient(135deg,rgba(250,247,242,.035) 0 2px,transparent 2px 14px);color:var(--salt);display:flex;flex-direction:column;justify-content:space-between;padding:20px;border:1px solid transparent}
.isl-card:hover{border-color:var(--reef);color:var(--salt)}
.isl-card b{display:block;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;margin-bottom:4px}
.isl-card div span{font-size:14px;color:rgba(250,247,242,.82)}
.prt-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:20px}
.prt-card{background:var(--white);border:1px solid var(--line-c);border-radius:24px;padding:32px;color:var(--ink-1)}
.prt-dark{background:var(--lagoon);border-color:var(--lagoon);color:var(--salt)}
.prt-dark .eyebrow{color:var(--brass-light)}
.prt-h{font-family:var(--serif);font-weight:400;font-size:clamp(30px,3vw,40px);line-height:1.1;margin:10px 0 12px;color:inherit}
.prt-card p{color:var(--ink-2);margin:0 0 24px}
.prt-dark p{color:rgba(250,247,242,.82)}
.prt-btns{display:flex;gap:12px;flex-wrap:wrap}
.prt-dark .btn-ghost{color:var(--salt);border-color:rgba(250,247,242,.35)}

/* ---------- Home (Claude Design "Koli Home", 28 Oct 2026) ---------- */
.ph-stripe{background:var(--sand) repeating-linear-gradient(135deg,rgba(20,58,56,.05) 0 2px,transparent 2px 14px)}
.hm-in{max-width:1280px;margin:0 auto}
.hm-hero{position:relative;min-height:min(880px,100vh);padding:180px var(--gutter) 72px;display:flex;flex-direction:column;justify-content:flex-end;background:var(--lagoon) repeating-linear-gradient(135deg,rgba(250,247,242,.035) 0 2px,transparent 2px 14px)}
.hm-hero-in{max-width:1280px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:48px}
.hm-hero-copy{display:flex;flex-direction:column;gap:18px;max-width:760px}
.hm-eyebrow-l{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-light)}
.hm-eyebrow-d{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-text)}
.hm-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(48px,7vw,96px);line-height:.98;letter-spacing:-.01em;color:var(--salt);text-wrap:balance}
.hm-lead{margin:0;font-size:18px;color:rgba(250,247,242,.86);max-width:520px;text-wrap:pretty}
.hm-search{background:var(--salt);border-radius:20px;padding:10px;box-shadow:0 30px 80px rgba(8,28,27,.35);max-width:1080px}
.hm-tabs{display:flex;gap:4px;padding:6px 6px 0;flex-wrap:wrap}
.hm-tabs button{border:0;cursor:pointer;font:inherit;font-size:15px;font-weight:500;padding:12px 20px;border-radius:12px;background:transparent;color:var(--ink-1);min-height:44px}
.hm-tabs button.on{background:var(--lagoon);color:var(--salt)}
.hm-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2px;margin-top:10px;background:var(--line-c);border-radius:14px;overflow:hidden}
.hm-cell,.hm-fields .place-pick,.hm-cform .place-pick{position:relative;background:var(--white);padding:16px 20px;min-height:72px;display:flex;flex-direction:column;gap:4px;margin:0}
.hm-cell:hover,.hm-fields .place-pick:hover{background:#FBF8F3}
.hm-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:400}
.hm-value,.hm-cell input,.hm-cell select,.hm-cell textarea,.hm-pp .pp-btn{font:inherit;font-size:17px;font-weight:500;color:var(--ink-1);border:0;background:transparent;padding:0;width:100%;min-height:28px;outline-offset:3px}
.hm-cell textarea{resize:vertical;min-height:48px}
.hm-cell input::placeholder,.hm-cell textarea::placeholder{color:#9AA19F;font-weight:400}
.hm-pp .pp-btn{text-align:left;cursor:pointer;box-shadow:none;border-radius:0}
.hm-muted{color:#9AA19F}
.hm-search-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 10px 6px 14px;flex-wrap:wrap}
.hm-note{font-size:14px;color:var(--ink-2)}
.hm-go{display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:16px;font-weight:600;padding:16px 40px;border-radius:12px;background:var(--lagoon);color:var(--salt);min-height:52px;border:0;cursor:pointer}
.hm-go:hover{background:var(--lagoon-press)}
.hm-trust{background:var(--salt);padding:0 var(--gutter);border-bottom:1px solid var(--line-c)}
.hm-trust-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px;padding:32px 0}
.hm-trust-item{display:flex;flex-direction:column;gap:2px}
.hm-trust-item b{font-weight:600;color:var(--lagoon)}
.hm-score{font-family:var(--serif);font-size:28px;line-height:1.1;color:var(--lagoon)}
.hm-score span{font-family:var(--sans);font-size:14px;color:var(--ink-3)}
.hm-trust-sub{font-size:14px;color:var(--ink-2)}
.hm-fast{padding:40px var(--gutter) 0}
.hm-fast-in{max-width:1280px;margin:0 auto;background:var(--sand);border-radius:16px;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.hm-fast-in>div{display:flex;flex-direction:column;gap:2px}
.hm-fast-in b{font-weight:600;color:var(--lagoon)}
.hm-fast-in span{font-size:15px;color:var(--ink-2)}
.hm-btn{display:inline-flex;align-items:center;background:var(--lagoon);color:var(--salt);padding:14px 26px;border-radius:12px;font-weight:600;font-size:15px;min-height:48px}
.hm-btn:hover{background:var(--lagoon-press);color:var(--salt)}
.hm-sec{padding:120px var(--gutter) 0}
.hm-sec-tight{padding-top:28px}
.hm-last{padding-bottom:120px}
.hm-sec>.hm-in{display:flex;flex-direction:column;gap:40px}
.hm-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.hm-head p{margin:0;max-width:380px;color:var(--ink-2);text-wrap:pretty}
.hm-h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.6vw,60px);line-height:1.04;color:var(--lagoon);text-wrap:balance}
.hm-h2-narrow{max-width:640px}
.hm-h3{margin:0;font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.1;color:var(--lagoon)}
.hm-link{font-size:15px;font-weight:600;color:var(--reef);border-bottom:1px solid currentColor;padding-bottom:2px;align-self:flex-start}
.hm-link:hover{color:var(--lagoon)}
.hm-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:28px}
.hm-way{display:flex;flex-direction:column;gap:6px;color:var(--ink-1)}
.hm-way:hover{color:var(--lagoon)}
.hm-way-ph{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#D9CFBE;margin-bottom:12px}
.hm-way:nth-child(2) .hm-way-ph{background:var(--reef) repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 14px)}
.hm-way:nth-child(3) .hm-way-ph{background:#C9B99C repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 2px,transparent 2px 14px)}
.hm-way-ph img{width:100%;height:100%;object-fit:cover}
.hm-badge{position:absolute;top:16px;left:16px;background:var(--salt);color:var(--lagoon);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.hm-badge-v{color:var(--brass-text)}
.hm-way-t{font-family:var(--serif);font-size:30px;line-height:1.1}
.hm-way-b{color:var(--ink-2);font-size:15px}
.hm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:28px}
.hm-card{background:var(--white);border:1px solid var(--line-c);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;color:var(--ink-1)}
.hm-card:hover{border-color:var(--lagoon);color:var(--ink-1)}
.hm-card-ph{aspect-ratio:16/10}
.hm-card-ph img{width:100%;height:100%;object-fit:cover}
.hm-card-b{padding:22px 22px 24px;display:flex;flex-direction:column;gap:14px;flex:1}
.hm-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}
.hm-card-badge{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-text)}
.hm-card-r{font-size:14px;color:var(--ink-2)}
.hm-card-t{font-family:var(--serif);font-size:28px;line-height:1.1;color:var(--ink-1)}
.hm-card-f{font-size:15px;color:var(--ink-2);margin-top:4px}
.hm-card-foot{margin-top:auto;padding-top:16px;border-top:1px solid var(--sand);display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;color:var(--ink-3)}
.hm-card-p{white-space:nowrap}
.hm-card-p b{font-size:19px;font-weight:600;color:var(--lagoon)}
.hm-ask{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:24px 28px;border:1px dashed #C9B99C;border-radius:16px;color:var(--ink-1)}
.hm-ask span{color:var(--ink-2)}
.hm-islands{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px}
.hm-island{position:relative;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:#1E4C49 repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 14px);display:flex;flex-direction:column;justify-content:flex-end;padding:24px;gap:4px;color:var(--salt)}
.hm-island:hover{color:var(--salt);background-color:#174341}
.hm-island b{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1}
.hm-island span{font-size:14px;color:rgba(250,247,242,.82)}
.hm-trip{background:var(--sand);border-radius:24px;padding:clamp(32px,5vw,72px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:56px;align-items:center}
.hm-trip-copy{display:flex;flex-direction:column;gap:20px}
.hm-trip-copy p{margin:0;color:var(--ink-2);max-width:440px;text-wrap:pretty}
.hm-trip-card{background:var(--white);border-radius:18px;padding:28px;box-shadow:0 20px 50px rgba(20,58,56,.08);display:flex;flex-direction:column;gap:4px}
.hm-trip-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--sand)}
.hm-trip-top span{font-family:var(--serif);font-size:26px;color:var(--ink-1)}
.hm-trip-top em{font-style:normal;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.hm-trip-row{display:grid;grid-template-columns:88px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--sand-2);font-size:15px}
.hm-trip-row span:first-child{font-size:14px;color:var(--ink-3)}
.hm-trip-add{padding-top:14px;font-size:15px;color:var(--reef);font-weight:500}
.pill{font-style:normal;font-size:12px;font-weight:600;padding:5px 10px;border-radius:999px;white-space:nowrap}
.pill-ok{background:var(--ok-bg);color:var(--ok)}.pill-wait{background:var(--wait-bg);color:var(--wait)}.pill-done{background:var(--done-bg);color:var(--done)}.pill-bad{background:var(--bad-bg);color:var(--bad)}.pill-info{background:var(--info-bg);color:var(--info)}
.hm-two{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:56px !important;align-items:start}
.hm-cform{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line-c);border-radius:16px;overflow:hidden;border:1px solid var(--line-c)}
.hm-cform>div{min-width:0}
.hm-cform>div>.hm-cell,.hm-cform>div>.place-pick{height:100%}
.hm-wide{grid-column:1/-1}
.hm-cform-foot{background:var(--white);padding:14px;display:flex;justify-content:flex-end;align-items:center;gap:12px;flex-wrap:wrap}
.hm-cform-foot .earn-err{margin:0;flex:1}
.hm-sent{background:var(--white);padding:24px 20px;color:var(--ink-1)}
.hm-earn{border-top:1px solid var(--line-c);padding-top:56px;display:grid !important;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:40px !important}
.hm-earn>div{display:flex;flex-direction:column;gap:12px}
.hm-earn p{margin:0;color:var(--ink-2)}
#homeReview{padding:40px var(--gutter) 0}
@media(max-width:600px){.hm-tabs button{padding:12px 13px}.hm-hero{padding-top:140px}.hm-cform{grid-template-columns:1fr}.hm-go{width:100%}.hm-trip-row{grid-template-columns:72px 1fr auto;gap:10px}}

/* ---------- Bikes page = booking (Claude Design "Bikes", 28 Oct 2026) ---------- */
.bk-page{padding:72px var(--gutter) 120px;background:var(--salt)}
.bk-page-in{max-width:1280px;margin:0 auto}
.bk-hero{display:flex;flex-direction:column;gap:18px;margin-bottom:40px}
.bk-eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-text)}
.bk-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,80px);line-height:1;color:var(--lagoon);max-width:820px;text-wrap:balance}
.bk-page .bk-lead{margin:0;font-size:18px;color:var(--ink-2);max-width:560px}
.bk-page .bk{--bk-line:var(--line-c);--bk-gold:var(--brass);--bk-gold-soft:var(--sand-2);background:transparent;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:40px;align-items:start}
.bk-page .bk-main{display:flex;flex-direction:column;gap:32px;min-width:0;padding:0}
.bk-islands{display:flex;gap:8px;flex-wrap:wrap}
.bk-islands a{border:1px solid var(--line-c);font-size:15px;font-weight:500;padding:11px 20px;border-radius:999px;background:var(--white);color:var(--ink-1);min-height:44px;display:inline-flex;align-items:center}
.bk-islands a.on{background:var(--lagoon);color:var(--salt);border-color:var(--lagoon)}
.bk-islands a:hover{border-color:var(--lagoon)}
.bk-vehs{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.bk-veh{text-align:left;cursor:pointer;font:inherit;padding:0;border-radius:16px;overflow:hidden;background:var(--white);border:2px solid var(--line-c);display:flex;flex-direction:column;color:var(--ink-1)}
div.bk-veh{cursor:default}
.bk-veh.on{border-color:var(--lagoon)}
.bk-veh-ph{aspect-ratio:16/10;width:100%;background:var(--sand)}
.bk-veh-ph img{width:100%;height:100%;object-fit:cover}
.bk-veh-b{padding:18px;display:flex;flex-direction:column;gap:6px;width:100%}
.bk-veh-b b{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.1;color:var(--ink-1)}
.bk-veh-b span{font-size:14px;color:var(--ink-2)}
.bk-veh-b em{font-style:normal;margin-top:6px;font-size:13px;color:var(--ink-3)}
.bk-veh-b em strong{font-size:18px;font-weight:600;color:var(--lagoon)}
.bk-card{background:var(--white);border:1px solid var(--line-c);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:24px;min-width:0}
.bk-pills{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap;font-size:14px}
.bk-pills li{font-weight:500;padding:8px 14px;border-radius:999px;background:var(--sand-2);color:var(--ink-2)}
.bk-pills li.now{background:var(--lagoon);color:var(--salt)}
.bk-card-body{display:flex;flex-direction:column;gap:20px;min-width:0}
.bk-page .bk-block{margin:0;padding:0;border:0;background:transparent}
.bk-page .bk-plan-grid{display:flex;flex-direction:column;gap:24px}
.bk-card-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--sand)}
.bk-page .bk-back{border:0;background:transparent;font:inherit;font-size:15px;font-weight:400;color:var(--ink-2);cursor:pointer;padding:12px 0}
.bk-page .bk-primary{border:0;cursor:pointer;font:inherit;font-size:16px;font-weight:600;padding:15px 32px;border-radius:12px;background:var(--lagoon);color:var(--salt);min-height:52px}
.bk-page .bk-primary:hover{background:var(--lagoon-press)}
.bk-sign-hint{margin:0;color:var(--ink-2);font-size:14px}
.bk-page .bk-aside.bk-sum{position:sticky;top:24px;background:var(--white);border:1px solid var(--line-c);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:16px;min-width:0}
.bk-page .bk-sum-title{margin:0;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1;color:var(--ink-1)}
.bk-page .bk-sum-rows{display:flex;flex-direction:column;gap:10px;font-size:15px;margin:0;padding:0;border:0}
.bk-page .bk-sum-rows>div{display:flex;justify-content:space-between;gap:12px}
.bk-page .bk-sum-rows dt{color:var(--ink-2);display:block}
.bk-page .bk-sum-rows dd{margin:0;color:var(--ink-1)}
.bk-page .bk-sum-total{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-top:16px;border-top:1px solid var(--sand)}
.bk-page .bk-sum-total span{font-weight:600}
.bk-page .bk-sum-total b{font-size:24px;font-weight:600;color:var(--lagoon)}
.bk-sum-usd{font-size:13px;color:var(--ink-3);margin-top:-8px}
.bk-sum-policy{font-size:14px;color:var(--ink-2);background:var(--salt);border-radius:12px;padding:14px}
@media(max-width:759px){
  .bk-page{padding-top:48px}
  .bk-page .bk-card{padding:20px}
  .bk-page .bk-card-foot .bk-primary{display:none}
  .bk-page .bk-aside.bk-sum{position:static}
  .bk-page .bk-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--white);border-top:1px solid var(--line-c);box-shadow:0 -8px 24px rgba(20,58,56,.08);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px))}
  .bk-page .bk-bar span{display:none}
  .bk-page .bk-bar b{font-size:19px;font-weight:600;color:var(--lagoon)}
  .bk-page .bk-bar em{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .bk-page .bk-bar>div{display:flex;flex-direction:column;min-width:0}
  .bk-page .bk-bar .bk-primary{padding:14px 26px;white-space:nowrap}
  body:has(.bk-page) .sf{padding-bottom:132px}
}

/* ---------- Search (Claude Design "Search", 28 Oct 2026) ---------- */
.sr-in{max-width:1280px;margin:0 auto}
.sr-top{padding:40px var(--gutter) 0}
.sr-top .sr-in{display:flex;flex-direction:column;gap:20px}
.sr-tabs{display:flex;gap:4px;flex-wrap:wrap}
.sr-tabs a{font-size:15px;font-weight:500;padding:11px 20px;border-radius:12px;color:var(--ink-1);min-height:44px;display:inline-flex;align-items:center}
.sr-tabs a.on{background:var(--lagoon);color:var(--salt)}
.sr-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--white);border:1px solid var(--line-c);border-radius:16px;padding:18px 24px}
.sr-bar>div{display:flex;flex-direction:column;gap:2px}
.sr-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:36px;line-height:1.1;color:var(--lagoon)}
.sr-sub{font-size:15px;color:var(--ink-2)}
.sr-edit{border:1px solid var(--lagoon);background:transparent;color:var(--lagoon);font:inherit;font-weight:600;padding:11px 20px;border-radius:12px;cursor:pointer;min-height:44px;white-space:nowrap}
.sr-edit:hover{background:var(--lagoon);color:var(--salt)}
.sr-editform{background:var(--salt);border:1px solid var(--line-c);border-radius:20px;padding:10px}
.sr-res{padding:32px var(--gutter) 120px}
.sr-cols{display:flex;gap:40px;flex-wrap:wrap;align-items:flex-start}
.sr-filters{flex:0 0 260px;display:flex;flex-direction:column;gap:28px;font-size:15px}
.sr-fgroup{display:flex;flex-direction:column;gap:10px}
.sr-flabel{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.sr-kinds{display:flex;gap:6px;flex-wrap:wrap}
.sr-kinds button{border:1px solid var(--line-c);cursor:pointer;font:inherit;font-size:14px;padding:8px 14px;border-radius:999px;background:var(--white);color:var(--ink-1);min-height:40px}
.sr-kinds button.on{background:var(--lagoon);color:var(--salt);border-color:var(--lagoon)}
.sr-chk{display:flex;gap:10px;align-items:center;cursor:pointer;min-height:28px}
.sr-chk input{accent-color:var(--lagoon);width:18px;height:18px}
.sr-list{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:16px}
.sr-count{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:15px;color:var(--ink-2);min-height:20px}
.sr-sorts{display:flex;gap:4px;background:var(--sand-2);border-radius:999px;padding:4px}
.sr-sorts button{border:0;cursor:pointer;font:inherit;font-size:13px;padding:7px 14px;border-radius:999px;background:transparent;color:var(--ink-2);min-height:32px}
.sr-sorts button.on{background:var(--white);color:var(--lagoon)}
#srResults{display:flex;flex-direction:column;gap:16px}
.sr-card{display:flex;flex-wrap:wrap;background:var(--white);border:1px solid var(--line-c);border-radius:16px;overflow:hidden;color:var(--ink-1)}
a.sr-card:hover{border-color:var(--lagoon);color:var(--ink-1)}
.sr-ph{flex:1 1 200px;min-height:170px;background:var(--sand)}
.sr-ph img{width:100%;height:100%;object-fit:cover;display:block}
.sr-body{padding:20px 24px;display:flex;flex-direction:column;gap:8px;flex:2 1 320px;min-width:0}
.sr-row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.sr-badge{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-text)}
.sr-badge.sr-listed{color:var(--ink-3)}
.sr-rate{font-size:14px;color:var(--ink-2)}
.sr-title{font-family:var(--serif);font-size:28px;line-height:1.1}
.sr-facts{font-size:15px;color:var(--ink-2)}
.sr-foot{margin-top:auto;padding-top:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid var(--sand-2);font-size:13px;color:var(--ink-3)}
.sr-price{font-size:13px;color:var(--ink-3)}
.sr-price b{font-size:20px;font-weight:600;color:var(--lagoon)}
.sr-acts{display:flex;gap:8px}
.sr-msg{padding:8px 0}
.sr-ask{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:24px 28px;border:1px dashed #C9B99C;border-radius:16px;background:#FBF8F3;color:var(--ink-1)}
@media(max-width:860px){.sr-filters{flex:1 1 100%}}

/* ---------- Listing (Claude Design "Listing") ---------- */
.ls{padding:32px var(--gutter) 120px}
.ls-in{max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.ls-crumb{font-size:14px;color:var(--ink-3)}
.ls-crumb a{color:var(--reef)}
.ls-gal{position:relative;display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:220px 220px;gap:10px;border-radius:18px;overflow:hidden}
.ls-gal>div{background:var(--sand)}
.ls-gal img{width:100%;height:100%;object-fit:cover;display:block}
.ls-g0{grid-row:span 2}
.ls-ph0{background:var(--reef) repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 14px)!important}
.ls-ph1{background:#C9B99C repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 2px,transparent 2px 14px)!important}
.ls-ph2{background:#1E4C49 repeating-linear-gradient(135deg,rgba(255,255,255,.05) 0 2px,transparent 2px 14px)!important}
.ls-ph4{background:#D9CFBE repeating-linear-gradient(135deg,rgba(20,58,56,.05) 0 2px,transparent 2px 14px)!important}
.ls-more{position:absolute;right:12px;bottom:12px;font-family:ui-monospace,Menlo,monospace;font-size:11px;text-transform:uppercase;color:var(--ink-2);background:var(--salt);padding:4px 8px;border-radius:999px}
.ls-cols{display:flex;gap:56px;flex-wrap:wrap;align-items:flex-start;padding-top:28px}
.ls-main{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:48px}
.ls-head{display:flex;flex-direction:column;gap:14px}
.ls-by{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px;color:var(--ink-2)}
.ls-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,64px);line-height:1.02;color:var(--lagoon)}
.ls-facts{display:flex;gap:28px;flex-wrap:wrap;font-size:15px;color:var(--ink-1);padding-top:8px}
.ls-facts>div{display:flex;flex-direction:column}
.ls-about{margin:0;font-size:18px;color:var(--ink-1);max-width:640px;text-wrap:pretty}
.ls-inc{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.ls-inc>div,.ls-meet{display:flex;flex-direction:column;gap:10px}
.ls-h3{font-family:var(--serif);font-size:26px;line-height:1.15}
.ls-map{height:240px;border-radius:16px;background:#DCE6E1 repeating-linear-gradient(135deg,rgba(20,58,56,.05) 0 2px,transparent 2px 14px)!important;display:flex;align-items:flex-end;padding:14px;font-size:14px;color:var(--ink-2)}
.ls-cancel{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--sand);border-radius:16px}
.ls-cancel>div{color:var(--ink-2)}
.ls-reviews{display:flex;flex-direction:column;gap:24px}
.ls-rhead{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.ls-rhead span{font-size:15px;color:var(--ink-2)}
.ls-review{display:flex;flex-direction:column;gap:6px;padding-bottom:24px;border-bottom:1px solid var(--line-c)}
.ls-review>div:first-child{display:flex;justify-content:space-between;gap:12px;font-size:14px;color:var(--ink-3)}
.ls-review b{color:var(--ink-1);font-weight:600}
.ls-panel{flex:0 1 380px;min-width:300px;position:sticky;top:24px;background:var(--white);border:1px solid var(--line-c);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:18px}
.ls-price b{font-size:28px;font-weight:600;color:var(--lagoon)}
.ls-price span{font-size:14px;color:var(--ink-3)}
.ls-fare{display:flex;gap:4px;background:var(--sand-2);border-radius:999px;padding:4px}
.ls-fare button{flex:1;border:0;cursor:pointer;font:inherit;font-size:13px;padding:8px 10px;border-radius:999px;background:transparent;color:var(--ink-2);min-height:36px}
.ls-fare button.on{background:var(--white);color:var(--lagoon);font-weight:600}
.ls-pick{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--line-c);border-radius:12px;overflow:hidden}
.ls-cell{background:var(--white);padding:12px 14px;display:flex;flex-direction:column;gap:2px;margin:0}
.ls-cell input{font:inherit;font-weight:500;border:0;padding:0;background:transparent;color:var(--ink-1);width:100%}
.ls-step{flex-direction:row;justify-content:space-between;align-items:center;gap:6px}
.ls-step b{display:block;font-weight:500}
.ls-step>div:last-child{display:flex;gap:4px}
.ls-step button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-c);background:var(--salt);cursor:pointer;font-size:16px;color:var(--ink-1)}
.ls-times{display:flex;flex-direction:column;gap:8px}
.ls-times>div{display:flex;gap:8px;flex-wrap:wrap}
.ls-times a{border:1px solid var(--line-c);font-size:15px;padding:10px 18px;border-radius:12px;background:var(--white);color:var(--ink-1);min-height:44px;display:inline-flex;align-items:center}
.ls-times a.on{background:var(--lagoon);color:var(--salt);border-color:var(--lagoon)}
.ls-times input{font:inherit;padding:10px 12px;border:1px solid var(--line-c);border-radius:12px;background:var(--white)}
.ls-lines{display:flex;flex-direction:column;gap:8px;font-size:15px;padding-top:14px;border-top:1px solid var(--sand)}
.ls-lines>div{display:flex;justify-content:space-between;gap:12px}
.ls-lines>div:first-child span:first-child{color:var(--ink-2)}
.ls-total{font-weight:600}.ls-total span:last-child{color:var(--lagoon)}
.ls-select{display:flex;justify-content:center;align-items:center;background:var(--lagoon);color:var(--salt);font:inherit;font-weight:600;border:0;border-radius:12px;min-height:52px;padding:0 30px;cursor:pointer}
.ls-select:hover{background:var(--lagoon-press);color:var(--salt)}
.ls-note{font-size:13px;color:var(--ink-3);text-align:center}
.ls-bar{display:none}
@media(max-width:759px){
  .ls-gal{grid-template-columns:1fr 1fr;grid-template-rows:200px 110px}
  .ls-g0{grid-column:span 2;grid-row:auto}.ls-g3,.ls-g4{display:none}
  .ls-panel{position:static;min-width:0;flex:1 1 100%}
  .ls-bar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--white);border-top:1px solid var(--line-c);box-shadow:0 -8px 24px rgba(20,58,56,.08);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));justify-content:space-between;align-items:center;gap:12px}
  .ls-bar>div{display:flex;flex-direction:column;min-width:0}
  .ls-bar b{font-size:19px;font-weight:600;color:var(--lagoon)}
  .ls-bar span{font-size:13px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body:has(.ls-bar) .help-pill{bottom:calc(96px + env(safe-area-inset-bottom,0px))}
  body:has(.ls-bar) .sf{padding-bottom:132px}
}

/* ---------- Checkout (Claude Design "Checkout") ---------- */
.co{padding:48px var(--gutter) 120px}
.co-in{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:32px}
.co-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.co-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(38px,4.6vw,56px);line-height:1.04;color:var(--lagoon)}
.co-steps{display:flex;gap:8px;flex-wrap:wrap}
.co-steps div{font-size:14px;font-weight:500;padding:8px 14px;border-radius:999px;background:var(--sand-2);color:var(--ink-2)}
.co-steps div.on{background:var(--lagoon);color:var(--salt)}
.co-cols{display:flex;gap:40px;flex-wrap:wrap;align-items:flex-start}
.co-main{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:24px}
.co-card{background:var(--white);border:1px solid var(--line-c);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:18px}
.co-h2{font-family:var(--serif);font-size:28px;line-height:1.1}
.co-h3{font-family:var(--serif);font-size:24px;padding-top:8px}
.co-hint{font-size:14px;color:var(--ink-2);margin-top:-10px}
.co-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.co-f{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--ink-3)}
.co-wide{grid-column:1/-1}
.co-f input,.co-grid>input{font:inherit;font-size:16px;color:var(--ink-1);padding:13px 14px;border:1px solid var(--line-c);border-radius:12px;background:var(--white);min-height:48px}
.co-tick{display:flex;gap:10px;align-items:center;font-size:15px;color:var(--ink-1)}
.co-tick input{accent-color:var(--lagoon);width:18px;height:18px}
.co-kv{display:grid;grid-template-columns:120px 1fr;gap:10px 20px;font-size:15px;margin:0}
.co-kv dt{color:var(--ink-3)}.co-kv dd{margin:0}
.co-opt{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px;border-radius:14px;border:1.5px solid var(--lagoon);background:#FBF8F3}
.co-opt b{font-weight:600}.co-opt div div{font-size:14px;color:var(--ink-2)}
.co-opt>span{font-weight:600;color:var(--lagoon);white-space:nowrap}
.co-nav{display:flex;justify-content:space-between;align-items:center;gap:12px}
.co-back{border:0;background:transparent;font:inherit;color:var(--ink-2);cursor:pointer;padding:12px 0;min-height:44px}
.co-next{border:0;cursor:pointer;font:inherit;font-size:16px;font-weight:600;padding:15px 36px;border-radius:12px;background:var(--lagoon);color:var(--salt);min-height:52px}
.co-next:hover{background:var(--lagoon-press)}
.co-next:disabled{opacity:.6;cursor:wait}
.co-aside{flex:0 1 360px;min-width:300px;position:sticky;top:24px;background:var(--white);border:1px solid var(--line-c);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:14px}
.co-img{aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--reef)}
.co-img img{width:100%;height:100%;object-fit:cover}
.co-title{font-family:var(--serif);font-size:24px;line-height:1.15}
.co-when{font-size:14px;color:var(--ink-2)}
.co-lines{display:flex;flex-direction:column;gap:8px;font-size:15px;padding-top:14px;border-top:1px solid var(--sand)}
.co-lines>div{display:flex;justify-content:space-between;gap:12px}.co-lines span:first-child{color:var(--ink-2)}
.co-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:14px;border-top:1px solid var(--sand)}
.co-total span{font-weight:600}.co-total b{font-size:24px;font-weight:600;color:var(--lagoon)}
.co-ok{font-size:14px;color:var(--ok);background:var(--ok-bg);border-radius:12px;padding:12px 14px}
.co-done{max-width:720px;display:flex;flex-direction:column;gap:24px;align-items:flex-start;padding:48px 0}
.co-done p{margin:0;font-size:18px;color:var(--ink-2)}
.co-done-btns{display:flex;gap:12px;flex-wrap:wrap;padding-top:8px}
.co-ghost{border:1px solid var(--lagoon);color:var(--lagoon);padding:14px 28px;border-radius:12px;font-weight:600;min-height:48px;display:inline-flex;align-items:center}
@media(max-width:759px){
  .co-aside{position:static;min-width:0;flex:1 1 100%}
  .co-nav .co-next{display:none}
  .co .ls-bar .ls-select{white-space:nowrap}
}

/* ---------- Island guides (Claude Design "Island") ---------- */
.il-hero{position:relative;min-height:640px;padding:180px var(--gutter) 64px;display:flex;flex-direction:column;justify-content:flex-end;background:#1E4C49 repeating-linear-gradient(135deg,rgba(250,247,242,.04) 0 2px,transparent 2px 14px)}
.il-hero-in{max-width:1280px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.il-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(56px,8vw,112px);line-height:.95;color:var(--salt)}
.il-there{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:56px !important}
.il-there-copy{display:flex;flex-direction:column;gap:16px}
.il-there-copy p{margin:0;color:var(--ink-2);max-width:420px}
.il-there-copy .hm-btn{align-self:flex-start;margin-top:8px}
.il-routes{display:flex;flex-direction:column}
.il-route{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:20px 0;border-bottom:1px solid var(--line-c);color:var(--ink-1)}
.il-route:hover{color:var(--lagoon)}
.il-route b{display:block;font-size:18px;font-weight:500}
.il-route span{font-size:14px;color:var(--ink-3)}
.il-route em{font-style:normal;font-weight:600;color:var(--lagoon)}
.il-things{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:28px}
.il-thing{display:flex;flex-direction:column;gap:10px;color:var(--ink-1)}
.il-thing-ph{aspect-ratio:4/3;border-radius:16px;margin-bottom:4px}
.hm-badge-t{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--brass-text)}
.il-thing b{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.1}
.il-thing>span:last-child{font-size:15px;color:var(--ink-2)}
.il-know{background:var(--sand);border-radius:24px;padding:clamp(28px,5vw,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:36px}
.il-know-h{font-family:var(--serif);font-size:36px;line-height:1.1;color:var(--lagoon)}
.il-know b{font-weight:600}
.il-know div div{font-size:15px;color:var(--ink-2);margin-top:6px}
.il-know>div:not(.il-know-h){display:flex;flex-direction:column}

/* ---------- Partners (Claude Design "Partners") ---------- */
.pt-h1{max-width:900px}
.prt-list{list-style:none;padding:0;margin:0 0 24px;display:flex;flex-direction:column;gap:8px}
.prt-list li{padding-left:18px;position:relative;color:var(--ink-2)}
.prt-list li::before{content:'';position:absolute;left:0;top:.7em;width:6px;height:6px;border-radius:50%;background:var(--brass)}
.prt-dark .prt-list li{color:rgba(250,247,242,.86)}
.prt-dark .prt-list li::before{background:var(--brass-light)}
.pt-cost{margin-top:112px;display:flex;flex-direction:column;gap:28px}
.pt-cost-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.pt-cost-head p{margin:0;max-width:380px;color:var(--ink-2)}
.pt-table{background:var(--white);border:1px solid var(--line-c);border-radius:18px;overflow-x:auto}
.pt-table table{width:100%;border-collapse:collapse;font-size:15px;min-width:640px}
.pt-table th{text-align:left;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:400;padding:16px 20px;border-bottom:1px solid var(--line-c)}
.pt-table td{padding:16px 20px;border-bottom:1px solid var(--sand-2);color:var(--ink-2)}
.pt-table td.pt-p{color:var(--ink-1);font-weight:600}
.pt-table tr:last-child td{border-bottom:0}
.pt-free{padding:0 20px 16px;margin:0}
.pt-apply{margin-top:112px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:56px;align-items:start;border-top:1px solid var(--line-c);padding-top:56px}
.pt-apply p{color:var(--ink-2);max-width:440px}
.pt-form{display:flex;flex-direction:column;gap:20px;align-items:flex-start}

/* ---------- Sign in (Claude Design "Sign in") ---------- */
.si{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:100vh}
.si-art{background:var(--lagoon) repeating-linear-gradient(135deg,rgba(250,247,242,.035) 0 2px,transparent 2px 14px);color:var(--salt);padding:40px clamp(24px,4vw,56px);display:flex;flex-direction:column;justify-content:space-between}
.si-word{font-family:var(--serif);font-size:30px;color:var(--salt)}
.si-art-h{font-family:var(--serif);font-size:clamp(36px,4vw,48px);line-height:1.05}
.si-art p{color:rgba(250,247,242,.82);max-width:360px}
.si-form{display:flex;align-items:center;justify-content:center;padding:48px clamp(20px,4vw,56px)}
.si-form-in{width:100%;max-width:440px;display:flex;flex-direction:column;gap:24px}
.si-roles{display:flex;gap:4px;background:var(--sand-2);border-radius:14px;padding:4px;flex-wrap:wrap}
.si-roles a{flex:1;text-align:center;font-size:14px;font-weight:500;padding:10px 8px;border-radius:10px;color:var(--ink-2);min-height:40px;white-space:nowrap}
.si-roles a.on{background:var(--white);color:var(--ink-1)}
.si-h1{margin:0;font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.05;color:var(--lagoon)}
.si-p{margin:0;color:var(--ink-2)}
.si-btns{display:flex;gap:12px;flex-wrap:wrap}
.si-note{font-size:14px;color:var(--ink-2);margin:0}
.si-trav .auth-page{padding:0;background:transparent}
.si-trav .wrap{padding:0;max-width:none}
.si-trav .panel{background:transparent;border:0;box-shadow:none;padding:0}
.si-trav h1{font-family:var(--serif);font-weight:400;font-size:40px;line-height:1.05;color:var(--lagoon);text-align:left;margin:0 0 8px}
.si-trav .center{text-align:left}
@media(max-width:860px){.si{grid-template-columns:1fr}.si-art{min-height:220px}}

/* Real photos in the design's image spots (28 Oct 2026) */
.hm-cutout{background:var(--reef) repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 14px);display:flex;align-items:center;justify-content:center}
.hm-way:nth-child(3) .hm-cutout{background:#C9B99C repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 2px,transparent 2px 14px)}
.hm-way-ph.hm-cutout img{width:88%;height:auto;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(8,28,27,.28))}
.hm-island-img{position:relative}
.hm-island-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hm-island-img::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,44,42,0) 35%,rgba(14,44,42,.85) 100%)}
.hm-island-img b,.hm-island-img span{position:relative;z-index:1}
.isl-card.hm-island-img>div{position:relative;z-index:1}
.il-hero-img{overflow:hidden}
.il-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.il-hero-img::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,44,42,.72) 0%,rgba(14,44,42,.45) 40%,rgba(14,44,42,.92) 100%);z-index:1}
.il-hero-img .il-hero-in{position:relative;z-index:2}
.il-thing-ph{overflow:hidden;background:var(--sand)}
.il-thing-ph img{width:100%;height:100%;object-fit:cover}
.si-art{position:relative;overflow:hidden}
.si-art-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;mix-blend-mode:luminosity}
.si-art>*:not(.si-art-bg){position:relative;z-index:1}

/* ---------- Operator portal shell (Claude Design "Operator portal") ---------- */
.bm-side{background:var(--lagoon);color:var(--salt);border-radius:20px;padding:20px 14px}
.bm-side .bm-nav button{color:rgba(250,247,242,.78);font-weight:500;border-radius:10px;min-height:44px}
.bm-side .bm-nav button:hover{color:var(--salt)}
.bm-side .bm-nav button.on{background:rgba(250,247,242,.12);color:var(--salt)}
.bm-side .bm-nav em{background:var(--brass-light);color:var(--lagoon)}
.bm-side .bm-nav svg{stroke:currentColor}
#bmTitle{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4vw,48px);line-height:1.05;color:var(--lagoon)}
.bm-tiles>*{background:var(--white);border:1px solid var(--line-c);border-radius:16px}

/* Brass label on sand: darkened just enough for 4.5:1 (the design's brass text reads 4.1:1 on sand). */
.hm-trip .hm-eyebrow-d,.il-know .hm-eyebrow-d{color:#6E5222}

/* Photo frames that take turns (rot() in site.js): the photos stack and cross-fade. */
.hm-way-ph,.il-thing-ph,.bk-veh-ph,.sr-ph,.about-media,.prt-ph{position:relative}
.rot{position:absolute;inset:0;display:block}
.rot>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s ease}
.rot>img.on{opacity:1}
.si-art>.rot{position:absolute;z-index:0}
.si-art .rot>img.on{opacity:.35}
.about-media .rot>img{padding:0;filter:none}
@media (prefers-reduced-motion:reduce){.rot>img{transition:none}}
.prt-ph{aspect-ratio:16/9;border-radius:16px;overflow:hidden;margin:0 0 22px;background:var(--sand)}
.prt-ph>img{width:100%;height:100%;object-fit:cover;display:block}
.pg-photo{aspect-ratio:21/8;border-radius:20px;overflow:hidden;margin:0 0 32px;background:var(--sand)}
.pg-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:640px){.pg-photo{aspect-ratio:4/3}}

/* StayGo, our stays partner (home and Partners). */
.sg-band{display:grid;grid-template-columns:1.1fr 1fr;border-radius:24px;overflow:hidden;background:var(--sand-2);border:1px solid var(--line);color:var(--ink-1);text-decoration:none}
.pg .sg-band{margin:0 0 72px}
.sg-ph{position:relative;min-height:340px;background:var(--sand)}
.sg-copy{padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;align-items:flex-start;gap:14px;justify-content:center}
.sg-copy p{margin:0;color:var(--ink-2);max-width:34em}
.sg-logo{height:40px;width:auto}
.sg-band:hover .hm-btn,.sg-band:focus-visible .hm-btn{background:var(--lagoon-press)}
@media(max-width:860px){.sg-band{grid-template-columns:1fr}.sg-ph{min-height:0;aspect-ratio:4/3}}

/* Home header photos: they take turns behind a lagoon wash so the headline and search stay readable. */
.hm-hero>.rot{z-index:0}
.hm-hero::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(14,44,42,.55) 0%,rgba(14,44,42,.35) 40%,rgba(14,44,42,.82) 100%)}
.hm-hero-in{position:relative;z-index:1}

/* An open island list must not be cut off by the rounded field box around it (search card, Edit search, concierge). */
.hm-fields:has(.pp-panel:not([hidden])),.hm-cform:has(.pp-panel:not([hidden])){overflow:visible}
.place-pick:has(.pp-panel:not([hidden])){z-index:40}

/* List your trips: what they offer and whether they use their own boat. */
.act-offers,.act-boat{border:0;padding:0;margin:0 0 16px;min-width:0}
.act-offers legend,.act-boat legend{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px;padding:0}

/* Final journey polish: shorter introductions, one task with dates/map/price. */
.hm-hero{min-height:680px;min-height:min(760px,100svh);padding:140px var(--gutter) 44px}
.hm-hero-in{gap:28px}.hm-h1{font-weight:500}
.bk-page{padding-top:44px}.bk-hero{gap:10px;margin-bottom:24px}.bk-h1{font-size:clamp(32px,3.6vw,48px);font-weight:500;max-width:920px;line-height:1.16}
.bk-page .bk-lead{font-size:16px;max-width:800px}.bk-page .bk{grid-template-columns:minmax(0,1fr) 280px;gap:28px}.bk-page .bk-main{gap:18px}
.bk-vehs{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.bk-veh{flex-direction:row;border-radius:12px;align-items:center}.bk-veh-ph{width:128px;flex:0 0 128px;aspect-ratio:4/3}.bk-veh-ph img{object-fit:contain}.bk-veh-b{padding:14px}.bk-veh-b span{font-size:13px}
.bk-page .bk-plan-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:20px}.bk-page .bk-plan-grid .bk-h{font:600 20px/1.35 var(--sans)}
.bk-page .bk-aside{position:sticky;top:100px;align-self:start}.bk-page .bk-sum{padding:20px;border:1px solid var(--line-c);border-radius:14px;background:var(--white)}
.bk-page .bk-sum-title{font-size:25px}.bk-page .bk-pkgs{gap:8px}.bk-page .bk-pkg{padding:12px;min-height:76px}.bk-pkg-txt em{font-size:12px}
.site-preview-notice{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:#eee2c6;color:#143a38;padding:14px 20px;text-align:center;font:600 14px var(--sans);box-shadow:0 -2px 12px #143a3822}
@media(max-width:1050px){.bk-page .bk{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.bk-page .bk-plan-grid{grid-template-columns:1fr}.bk-veh-ph{width:110px;flex-basis:110px}}
@media(max-width:760px){.hm-hero{min-height:0;padding-top:112px;padding-bottom:32px}.hm-hero-in{gap:22px}.hm-h1{font-size:clamp(36px,8vw,54px)}.hm-lead{font-size:16px}.bk-page{padding:28px var(--gutter) 120px}.bk-page .bk{display:block}.bk-page .bk-aside{display:none}.bk-hero{margin-bottom:18px}.bk-h1{font-size:32px;line-height:1.15}.bk-page .bk-lead{font-size:14px}.bk-islands{gap:6px}.bk-islands a{font-size:13px;padding:8px 12px}.bk-page .bk-main{gap:16px}.bk-vehs{grid-template-columns:1fr}.bk-veh-ph{width:96px;flex-basis:96px}.bk-veh-b{padding:10px}.bk-veh-b span{display:none}.bk-page .bk-plan-grid{display:block}.bk-plan-meeting{margin-top:16px;padding:16px}.bk-plan-meeting .bk-map .pinmap{height:260px}.bk-page .bk-card-body{padding:16px}.bk-page .bk-h{font-size:20px}}
@media(prefers-reduced-motion:reduce){.hm-hero,.bk-veh,.bk-pkg{animation:none;transition:none}}

.sr-empty{padding:36px;border:1px solid var(--line,#deded4);border-radius:20px;background:#fffdf8}.sr-empty h2{font-size:28px;margin:0 0 10px}.sr-empty p{max-width:54ch;color:#57706b}.sr-empty-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sr-alternative{margin-top:20px;padding:20px;background:#eef3ed;border-radius:16px}.sr-alternative p{margin:6px 0 12px}.sr-filters[hidden]{display:none!important}

.il-photo-credit{display:block;margin-top:20px;font-size:11px;color:#eef3ed;max-width:60ch}.il-photo-credit a{color:inherit;text-decoration:underline}

.bk-policy-mobile{display:none}@media(max-width:760px){.bk-page .bk-aside.bk-sum{display:none}.bk-policy-mobile{display:block;background:var(--sand-2);padding:14px;border-radius:12px;margin:0 16px 20px;color:var(--ink-2);font-size:13px}.bk-page .bk-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.bk-page .bk-steps li{font-size:11px;padding:10px 6px;white-space:normal;line-height:1.3;text-align:center;align-items:center;justify-content:center;min-height:46px}}
/* Draft previews show a review notice, not a live customer's consent prompt. */
body:has(.site-preview-notice) .koli-usage-banner{display:none}
