/* VEYLISSEE theme — generated by scripts/css.sh from assets/css/src */
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/figtree-400-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Figtree';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(../fonts/figtree-400-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url(../fonts/fraunces-600-900-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
  src: url(../fonts/fraunces-600-900-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/space-mono-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/space-mono-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-mono-700-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Space Mono';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(../fonts/space-mono-700-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* ---------------------------------------------------------------- tokens */
:root {
	--bg: #F6EAD3;
	--surface: #FFF7E8;
	--sand: #EBD6AE;
	--sand2: #E3C998;
	--ink: #2B1A10;
	--ink2: #553722;
	--muted: #6E4F35;
	--line: #E1C9A0;
	--orange: #E8641E;
	--orange-deep: #A63C08;
	--mustard: #E9B13A;
	--sky2: #F2C658;
	--teal: #127C7A;
	--teal-deep: #0E3F3E;
	--cream: #F6EAD3;
	--ok: #2F6B3A;
	--err: #B42318;

	--display: "Fraunces", "Cooper Black", Georgia, serif;
	--text: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
	--mono: "Space Mono", ui-monospace, Menlo, monospace;

	--gut: clamp(16px, 4vw, 56px);
	--maxw: 1320px;
	--r-card: 22px;
	--ease: cubic-bezier(.3, .8, .25, 1);
	--dock-h: 84px;
	--shadow: 0 18px 40px -22px rgba(43, 26, 16, .55);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 24px; overflow-x: clip; }
body {
	margin: 0;
	background: var(--bg);
	color: var(--ink);
	font: 400 17px/1.6 var(--text);
	-webkit-font-smoothing: antialiased;
	overflow-x: clip;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--orange-deep); text-underline-offset: .18em; text-decoration-thickness: 1.5px; }
a:hover { color: var(--ink); }
button { font: inherit; color: inherit; cursor: pointer; }
:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--mustard); color: var(--ink); }
[hidden] { display: none !important; }

.sr, .screen-reader-text { position: absolute !important; left: 0; top: 0; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--ink); color: var(--cream); padding: 10px 16px; border-radius: 999px; }
.skip:focus { top: 12px; }

.wrap { width: min(100% - 2 * var(--gut), var(--maxw)); margin-inline: auto; }

/* ---------------------------------------------------------------- type */
.h1, .h2, .h3, .hero__h, .buy__h {
	font-family: var(--display);
	font-weight: 900;
	letter-spacing: -.015em;
	line-height: .98;
	margin: 0 0 .35em;
	text-wrap: balance;
}
.h1 { font-size: clamp(42px, 6.4vw, 96px); }
.h2 { font-size: clamp(34px, 4.6vw, 68px); }
.h3 { font-size: clamp(26px, 2.6vw, 38px); font-weight: 800; }
.lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.55; color: var(--ink2); max-width: 46ch; margin: 0 0 1.4em; }
.kicker, .label, .tag {
	font-family: var(--mono);
	font-size: 13px;
	letter-spacing: .1em;
	text-transform: uppercase;
	line-height: 1.4;
}
.kicker { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--ink2); font-weight: 700; }
.kicker::before {
	content: "";
	width: 34px; height: 12px; flex: none;
	background: linear-gradient(var(--orange) 0 33.3%, var(--mustard) 0 66.6%, var(--teal) 0);
	border-radius: 2px;
	-webkit-mask: radial-gradient(circle at 6px 6px, #000 5.5px, transparent 6px) 0 0 / 12px 12px repeat-x;
	mask: radial-gradient(circle at 6px 6px, #000 5.5px, transparent 6px) 0 0 / 12px 12px repeat-x;
}
.kicker--light { color: var(--cream); }
.label { display: block; margin: 0 0 10px; color: var(--muted); font-weight: 700; }
.tag { display: inline-block; background: var(--ink); color: var(--cream); padding: 3px 8px 2px; border-radius: 4px; font-size: 12px; font-weight: 700; }
.tag--ink { margin: 0 0 12px; }

/* ---------------------------------------------------------------- icons, dots, swatches */
.ico { width: 22px; height: 22px; flex: none; }
.ico--s { width: 18px; height: 18px; }
.dot { display: inline-block; width: 14px; height: 14px; border-radius: 50%; flex: none; border: 1.5px solid var(--ink); background: var(--mustard); }
.dot--helios { background: conic-gradient(var(--orange) 0 25%, var(--mustard) 0 50%, var(--ink) 0 75%, var(--mustard) 0); }
.dot--ripple { background: repeating-radial-gradient(circle at 35% 50%, var(--teal) 0 2px, var(--cream) 2px 4px); }
.dot--swell { background: repeating-linear-gradient(0deg, var(--teal-deep) 0 3px, var(--orange) 3px 5px, var(--mustard) 5px 7px); }
.dot--warp { background: repeating-conic-gradient(var(--ink) 0 25%, var(--orange) 0 50%) 0 0 / 6px 6px; }
.dot--bloom { background: radial-gradient(circle, var(--ink) 2px, var(--mustard) 2.5px 4px, var(--teal) 4.5px); }
.dot--spiral { background: repeating-conic-gradient(var(--teal-deep) 0 30deg, var(--mustard) 0 60deg, var(--orange) 0 90deg); }

.swatch {
	width: 40px; height: 40px; border-radius: 50%; padding: 0;
	border: 2px solid var(--ink);
	background: var(--sw) center / cover, var(--surface);
	box-shadow: 0 0 0 0 var(--ink);
	transition: transform .25s var(--ease), box-shadow .25s var(--ease);
}
.swatch:hover { transform: rotate(-12deg) scale(1.06); }
.swatch[aria-checked="true"] { box-shadow: 0 0 0 3px var(--cream), 0 0 0 6px var(--ink); }
.swatch--l { width: auto; height: auto; min-width: 0; border-radius: 999px; display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px 4px 4px; background: var(--surface); }
.swatch--l::before { content: ""; width: 36px; height: 36px; border-radius: 50%; background: var(--sw) center / cover; border: 1.5px solid var(--ink); }
.swatch__n { font-weight: 700; font-size: 15px; }

/* ---------------------------------------------------------------- buttons (wind-stripe underline) */
.btn {
	--btn-bg: var(--orange);
	--btn-fg: var(--ink);
	position: relative;
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 54px;
	padding: 14px 28px 18px;
	border: 2px solid var(--ink);
	border-radius: 999px;
	background: var(--btn-bg);
	color: var(--btn-fg);
	font: 700 16px/1.1 var(--text);
	letter-spacing: .01em;
	text-decoration: none;
	overflow: hidden;
	isolation: isolate;
	transition: transform .2s var(--ease), background-color .2s;
}
.btn::after {
	content: "";
	position: absolute; left: -10%; right: -10%; bottom: 0; height: 9px; z-index: -1;
	background: linear-gradient(var(--mustard) 0 33.3%, var(--teal) 0 66.6%, var(--ink) 0);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='9'%3E%3Cpath d='M0 3Q10 0 20 3T40 3V9H0Z'/%3E%3C/svg%3E") 0 0 / 40px 9px repeat-x;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='9'%3E%3Cpath d='M0 3Q10 0 20 3T40 3V9H0Z'/%3E%3C/svg%3E") 0 0 / 40px 9px repeat-x;
}
.btn:hover { color: var(--btn-fg); transform: translateY(-2px); }
.btn:hover::after { animation: vy-wave 1.2s linear infinite; }
.btn:active { transform: translateY(0); }
.btn--ghost { --btn-bg: var(--surface); }
.btn--dark { --btn-bg: var(--ink); --btn-fg: var(--cream); }
.btn--big { min-height: 62px; font-size: 18px; padding-inline: 34px; width: 100%; }
.btn--s { min-height: 42px; padding: 8px 18px 12px; font-size: 14px; }
.btn__n { font-family: var(--mono); font-weight: 400; }
@keyframes vy-wave { to { -webkit-mask-position: 40px 0; mask-position: 40px 0; } }

/* the wind stripe */
.stripe, [class$="__stripe"] { display: block; width: 100%; height: auto; }

/* ---------------------------------------------------------------- reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* ---------------------------------------------------------------- header */
.top {
	position: relative; z-index: 20;
	display: flex; align-items: center; gap: 18px;
	width: min(100% - 2 * var(--gut), var(--maxw)); margin: 0 auto;
	padding: 18px 0;
}
.is-hero .top { position: absolute; left: 0; right: 0; top: 0; }
.top__brand { text-decoration: none; color: var(--ink); margin-right: auto; }
.logo { display: inline-flex; align-items: center; gap: 10px; }
.logo__mark { width: 44px; height: 44px; }
.logo__word { font: 900 25px/1 var(--display); letter-spacing: .04em; }
.top__wind {
	display: inline-flex; align-items: center; gap: 8px; margin: 0;
	font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2);
}
.top__arrow, .film__arrow {
	width: 30px; height: 10px; display: inline-block;
	background: linear-gradient(var(--orange) 0 33.3%, var(--mustard) 0 66.6%, var(--teal) 0);
	clip-path: polygon(0 20%, 70% 20%, 70% 0, 100% 50%, 70% 100%, 70% 80%, 0 80%);
	transform: scaleX(var(--dir, 1));
	transition: transform .5s var(--ease);
}
.top__loc {
	display: inline-flex; align-items: center; gap: 6px;
	min-height: 44px; padding: 8px 16px;
	background: var(--surface); border: 2px solid var(--ink); border-radius: 999px;
	font: 700 13px/1 var(--mono); letter-spacing: .06em;
}
.top__loc:hover { background: var(--mustard); }
.top__sep { opacity: .5; }
@media (max-width: 900px) { .top__wind { display: none; } .logo__mark { width: 38px; height: 38px; } .logo__word { font-size: 22px; } }
@media (max-width: 380px) { .logo__word { font-size: 19px; } .top__loc { padding: 8px 12px; } }

/* ---------------------------------------------------------------- dock */
.dock {
	position: fixed; z-index: 60;
	left: 50%; bottom: calc(14px + env(safe-area-inset-bottom));
	transform: translateX(-50%);
	display: flex; align-items: stretch; gap: 2px;
	padding: 12px 10px 8px;
	background: var(--ink); color: var(--cream);
	border-radius: 30px;
	box-shadow: 0 20px 40px -18px rgba(43, 26, 16, .7);
	overflow: hidden;
}
.dock__stripe { position: absolute; left: 0; top: 0; width: 100%; height: 7px; }
.dock__home { display: grid; place-items: center; padding: 0 10px 0 4px; }
.dock__mark { width: 42px; height: 42px; transition: transform .6s var(--ease); }
.dock__home:hover .dock__mark { transform: rotate(-90deg); }
.dock__i {
	position: relative;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
	min-width: 84px; min-height: 56px; padding: 6px 12px;
	background: none; border: 0; border-radius: 18px;
	color: var(--cream); text-decoration: none;
	font: 600 13px/1.1 var(--text); white-space: nowrap;
}
.dock__i:hover { background: rgba(246, 234, 211, .1); color: var(--cream); }
.dock__i[aria-current="page"] { background: var(--mustard); color: var(--ink); }
.dock__i[aria-current="page"]::after {
	content: ""; position: absolute; left: 20%; right: 20%; bottom: 3px; height: 4px; border-radius: 2px;
	background: linear-gradient(90deg, var(--orange) 0 33.3%, var(--teal) 0 66.6%, var(--ink) 0);
}
.dock__n {
	position: absolute; top: 4px; right: 16px;
	min-width: 20px; height: 20px; padding: 0 5px;
	border-radius: 999px; background: var(--orange); color: var(--ink);
	font: 700 12px/20px var(--mono); text-align: center;
}

/* ---------------------------------------------------------------- sheets */
.sheet {
	position: fixed; inset: 0; z-index: 90;
	display: grid; align-items: end; justify-items: center;
	background: rgba(43, 26, 16, .55);
	padding: 16px;
}
.sheet__panel {
	position: relative;
	width: min(100%, 680px); max-height: calc(100svh - 32px); overflow: auto;
	background: var(--surface); color: var(--ink);
	border: 2px solid var(--ink); border-radius: 28px;
	padding: 34px clamp(18px, 4vw, 34px) 26px;
	animation: vy-up .35s var(--ease);
}
.sheet__stripe { position: absolute; top: 0; left: 0; height: 12px; }
@keyframes vy-up { from { transform: translateY(40px); opacity: 0; } }
.sheet__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.sheet__h { font: 900 30px/1 var(--display); margin: 0; }
.sheet__x { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 50%; border: 2px solid var(--ink); background: var(--bg); }
.sheet__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.sheet__note { margin: 20px 0 0; font-size: 14px; color: var(--muted); }
.pick { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.pick a {
	display: flex; align-items: center; gap: 12px;
	min-height: 44px; padding: 8px 12px; border-radius: 12px;
	color: var(--ink); text-decoration: none; font-weight: 600;
}
.pick a:hover { background: var(--bg); }
.pick a[aria-current="true"] { background: var(--mustard); }
.pick__code { font: 700 12px/1 var(--mono); width: 34px; color: var(--ink2); }
.help { display: grid; gap: 10px; }
.help__big {
	display: flex; align-items: center; gap: 12px;
	padding: 14px 16px; border: 2px solid var(--ink); border-radius: 16px;
	font: 800 clamp(18px, 2.4vw, 22px)/1.2 var(--display); color: var(--ink); text-decoration: none;
	word-break: break-word;
}
.help__big:hover { background: var(--mustard); color: var(--ink); }
.help__hours { margin: 4px 0 8px; font-size: 14px; color: var(--muted); }
.help__links { list-style: none; margin: 0; padding: 0; border-top: 1.5px dashed var(--line); }
.help__links a { display: flex; justify-content: space-between; align-items: center; min-height: 48px; border-bottom: 1.5px dashed var(--line); color: var(--ink); text-decoration: none; font-weight: 600; }
.help__links a:hover { color: var(--orange-deep); }

/* ---------------------------------------------------------------- cookie note */
.cookie {
	position: fixed; z-index: 70; right: 16px; bottom: calc(var(--dock-h) + 30px + env(safe-area-inset-bottom));
	display: flex; align-items: center; gap: 14px;
	max-width: 520px; padding: 14px 16px;
	background: var(--surface); border: 2px solid var(--ink); border-radius: 18px;
	box-shadow: var(--shadow);
	font-size: 14px; line-height: 1.45;
}
.cookie p { margin: 0; }

/* ---------------------------------------------------------------- footer: the care label */
.foot { background: var(--teal-deep); color: var(--ink); padding: 0 var(--gut) calc(var(--dock-h) + 48px + env(safe-area-inset-bottom)); margin-top: 0; }
.foot__stripe { max-width: none; height: 110px; margin: 0 calc(-1 * var(--gut)); background: var(--bg); width: calc(100% + 2 * var(--gut)); }
.clabel {
	position: relative;
	max-width: 1180px; margin: 30px auto 0;
	background: var(--surface);
	border-radius: 4px 4px 14px 14px;
	box-shadow: 0 30px 50px -30px rgba(0, 0, 0, .6);
}
.clabel::before { /* woven edge on the left */
	content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 14px; border-radius: 4px 0 0 14px;
	background: linear-gradient(90deg, var(--orange) 0 33.3%, var(--mustard) 0 66.6%, var(--teal) 0);
}
.label__fold { height: 26px; background: var(--sand); border-radius: 4px 4px 0 0; border-bottom: 2px dashed var(--sand2); }
.label__body { position: relative; padding: clamp(24px, 4vw, 48px) clamp(26px, 5vw, 64px) 30px calc(14px + clamp(22px, 4vw, 56px)); }
.label__body::after { /* stitching */
	content: ""; position: absolute; inset: 10px 10px 10px 24px; border: 1.5px dashed var(--line); border-radius: 8px; pointer-events: none;
}
.label__brand { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.logo--label .logo__mark { width: 52px; height: 52px; }
.logo--label .logo__word { font-size: 34px; }
.label__line { margin: 0; font: 700 12px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .14em; color: var(--ink2); }
.care { list-style: none; margin: 0; padding: 20px 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; border-bottom: 2px solid var(--ink); }
.care li { display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; font: 700 11px/1.3 var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--ink2); }
.care__i { width: 46px; height: 46px; padding: 9px; border: 2px solid var(--ink); border-radius: 10px; color: var(--ink); }
.care li:nth-child(2n) .care__i { border-radius: 50%; }
.label__cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 26px; padding: 24px 0; }
.label__h { margin: 0 0 12px; font: 700 12px/1 var(--mono); text-transform: uppercase; letter-spacing: .14em; }
.label__cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.label__cols a { color: var(--ink); text-decoration: none; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; min-height: 32px; }
.label__cols a:hover { color: var(--orange-deep); text-decoration: underline; }
.label__contact a { font-weight: 700; word-break: break-all; }
.label__small { font-size: 13px; color: var(--muted); }
.label__langs { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; padding: 16px 0; border-top: 2px solid var(--ink); border-bottom: 1.5px dashed var(--line); }
.label__langs a { font: 700 13px/1 var(--mono); color: var(--ink2); text-decoration: none; padding: 10px 10px; border-radius: 6px; }
.label__langs a[aria-current="true"] { background: var(--ink); color: var(--cream); }
.label__legal { margin: 16px 0 0; font: 400 12px/1.6 var(--mono); color: var(--muted); }
.cardmarks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 14px; }
.cardmark { font: 700 11px/1 var(--mono); padding: 6px 8px; border: 1.5px solid var(--ink); border-radius: 5px; background: var(--bg); }

/* ---------------------------------------------------------------- chips (colourways) */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 46px; padding: 6px 16px 6px 6px;
	background: var(--surface); border: 2px solid var(--line); border-radius: 999px;
	font-weight: 700; font-size: 15px; color: var(--ink);
}
.chip__sw { width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--ink); }
.chip--marigold .chip__sw { background: linear-gradient(135deg, var(--orange) 0 40%, var(--mustard) 0 70%, var(--cream) 0); }
.chip--lagoon .chip__sw { background: linear-gradient(135deg, var(--teal) 0 40%, var(--mustard) 0 70%, var(--cream) 0); }
.chip--nightswim .chip__sw { background: linear-gradient(135deg, var(--teal-deep) 0 45%, var(--orange) 0 70%, var(--cream) 0); }
.chip:hover { border-color: var(--ink); }
.chip[aria-checked="true"] { border-color: var(--ink); background: var(--mustard); }

/* ---------------------------------------------------------------- forms */
.vy-form { display: grid; gap: 14px; }
.vy-field { margin: 0; display: grid; gap: 6px; }
.vy-field label, .woocommerce form .form-row label { font-weight: 700; font-size: 15px; }
.vy-optional, .woocommerce .optional { font-weight: 400; color: var(--muted); }
.vy-field input, .vy-field textarea,
.woocommerce form .input-text, .woocommerce form select, .woocommerce-input-wrapper select,
.select2-container .select2-selection--single {
	width: 100%; min-height: 50px; padding: 12px 14px;
	font: 400 16px/1.4 var(--text); color: var(--ink);
	background: var(--surface); border: 2px solid var(--line); border-radius: 14px;
}
.vy-field textarea { min-height: 150px; }
.vy-field input:focus, .vy-field textarea:focus, .woocommerce form .input-text:focus { border-color: var(--ink); outline: none; box-shadow: 0 0 0 3px var(--mustard); }
.vy-form__legal { font-size: 14px; color: var(--muted); margin: 0; }
.vy-form__row { display: flex; flex-wrap: wrap; gap: 10px; }
.vy-hp { position: absolute; left: -9999px; }
.vy-notice { padding: 14px 16px; border-radius: 14px; border: 2px solid currentColor; background: var(--surface); }
.vy-notice--err { color: var(--err); }
.vy-notice--ok { color: var(--ok); }
.vy-steps { list-style: none; display: flex; gap: 10px; padding: 0; margin: 0 0 6px; counter-reset: s; }
.vy-steps li { counter-increment: s; font: 700 13px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; padding: 10px 14px; border-radius: 999px; border: 2px solid var(--line); color: var(--muted); }
.vy-steps li::before { content: counter(s) " · "; }
.vy-steps .is-current { border-color: var(--ink); background: var(--mustard); color: var(--ink); }
.vy-steps .is-done { color: var(--ok); border-color: var(--ok); }
.vy-summary dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 18px; }
.vy-summary dt { font-weight: 700; }
.vy-summary dd { margin: 0; }

/* dock on phones: full width, five equal tabs */
@media (max-width: 760px) {
	:root { --dock-h: 70px; }
	.dock { left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); transform: none; padding: 10px 4px 6px; border-radius: 22px; gap: 0; }
	.dock__home { display: none; }
	.dock__i { flex: 1 1 0; min-width: 0; min-height: 52px; padding: 4px 2px; font-size: 11px; border-radius: 14px; }
	.dock__i span { overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
	.dock__i .ico { width: 22px; height: 22px; }
	.dock__n { right: 8px; top: 2px; }
	.cookie { left: 8px; right: 8px; max-width: none; bottom: calc(var(--dock-h) + 20px + env(safe-area-inset-bottom)); }
	.sheet { padding: 0; }
	.sheet__panel { border-radius: 24px 24px 0 0; border-bottom: 0; max-height: 88svh; }
	.sheet__cols { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
	.label__cols { grid-template-columns: 1fr 1fr; }
	.care { grid-template-columns: repeat(3, 1fr); row-gap: 18px; }
}
@media (max-width: 520px) {
	.label__cols { grid-template-columns: 1fr 1fr; gap: 18px 14px; }
	.label__cols > div { grid-column: 1 / -1; }
	.label__cols a { font-size: 14px; }
	.care { grid-template-columns: repeat(2, 1fr); }
	.label__body { padding: 26px 20px 22px 34px; }
	.logo--label .logo__word { font-size: 26px; }
}

/* ---------------------------------------------------------------- hero: wind direction */
.hero {
	position: relative;
	min-height: max(780px, 100svh);
	background: var(--mustard);
	overflow: hidden;
	isolation: isolate;
}
.hero__rings {
	position: absolute; z-index: -1;
	width: min(150vw, 2200px); height: auto;
	right: calc(5vw + min(36vw, 560px) / 2); top: calc(96px + min(36vw, 560px) / 2);
	transform: translate(50%, -50%);
	opacity: .55;
	animation: vy-pulse 9s ease-in-out infinite alternate;
}
@keyframes vy-pulse { to { transform: translate(50%, -50%) scale(1.06); } }
.hero__sun {
	position: absolute; z-index: 1; margin: 0;
	right: 5vw; top: 96px;
	width: min(36vw, 560px); aspect-ratio: 1;
	border-radius: 50%; overflow: hidden;
	background: var(--orange);
	box-shadow: 0 0 0 12px var(--orange), 0 0 0 24px var(--ink), 0 0 0 36px var(--teal);
}
.hero__sunimg { width: 100%; height: 100%; object-fit: cover; }
.hero__copy {
	position: relative; z-index: 3;
	width: min(100% - 2 * var(--gut), var(--maxw)); margin: 0 auto;
	padding-top: clamp(118px, 15vh, 150px);
}
.hero__copy > * { max-width: min(720px, 52vw); }
.hero__h { font-size: clamp(48px, min(6.3vw, 10.6vh), 116px); line-height: .92; margin-bottom: .3em; }
.hero__h span { display: block; }
html:not([lang="en"]) .hero__h { font-size: clamp(42px, min(5.2vw, 9.2vh), 96px); }
.hero__h2 { color: var(--teal-deep); padding-left: .9em; }
.hero__p { font-size: clamp(17px, 1.35vw, 20px); line-height: 1.5; margin: 0 0 24px; max-width: 44ch; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 22px; }
.hero__pick {
	max-width: 540px !important;
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	padding: 10px 14px 10px 16px;
	background: var(--surface); border: 2px solid var(--ink); border-radius: 26px;
	width: fit-content;
}
.hero__pickl { font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; margin-right: 4px; }
.hero__note { flex-basis: 100%; margin: 4px 0 0; font-size: 14px; line-height: 1.4; color: var(--ink2); max-width: 46ch; }
.hero__hint { position: absolute; z-index: 4; right: 2vw; bottom: 14px; margin: 0; font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink); background: var(--surface); padding: 6px 10px; border-radius: 999px; }

.wb { position: absolute; z-index: 2; left: 0; bottom: 0; width: 100%; height: auto; pointer-events: none; }
.wb--tall { display: none; }
.wb__sea { fill: var(--teal); }
.wb__sand { fill: var(--sand); }
.wb__shadow { fill: rgba(43, 26, 16, .18); }
.wb__pole { stroke: var(--ink); stroke-width: 7; stroke-linecap: round; }
.wb__panel, .wb__flag { stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; }
.wb__shade { mix-blend-mode: multiply; }
.wb__ribbon path { opacity: .95; }

@media (hover: none), (max-width: 760px) { .hero__hint { display: none; } }

@media (max-width: 760px) {
	.hero { min-height: 0; display: flex; flex-direction: column; padding-top: 84px; }
	.hero__rings { right: 50%; top: calc(84px + 29vw); width: 220vw; }
	.hero__sun { position: relative; right: auto; top: auto; align-self: center; width: 58vw; margin: 6px 0 40px; order: 0; }
	.hero__copy { display: contents; }
	.hero__copy > * { max-width: none; margin-inline: var(--gut); }
	.hero .kicker { order: 1; }
	.hero__h { order: 2; font-size: clamp(44px, 13.4vw, 70px); }
	.hero__h2 { padding-left: .5em; }
	.hero__p { order: 3; }
	.wb--wide { display: none; }
	.wb--tall { display: block; position: relative; order: 4; margin-top: -10px; }
	.hero__cta { order: 5; background: var(--sand); margin: 0; padding: 0 var(--gut) 14px; }
	.hero__cta .btn { flex: 1 1 100%; }
	.hero__pick { order: 6; margin: 0; width: auto; border-radius: 0; border-width: 2px 0 0; background: var(--sand); padding: 14px var(--gut) 20px; }
}

/* ---------------------------------------------------------------- six prints on the beach */
.prints {
	position: relative;
	padding: clamp(70px, 9vw, 130px) 0 clamp(70px, 8vw, 120px);
	background:
		linear-gradient(var(--bg), rgba(246, 234, 211, 0) 160px),
		repeating-linear-gradient(0deg, transparent 0 79px, rgba(110, 79, 53, .14) 79px 80px),
		repeating-linear-gradient(90deg, transparent 0 79px, rgba(110, 79, 53, .14) 79px 80px),
		var(--bg);
}
.prints__head { max-width: 920px; margin-bottom: clamp(30px, 5vw, 60px); }
.prints__beach {
	list-style: none; margin: 0 auto; padding: 0;
	width: min(100% - 2 * var(--gut), 1400px);
	display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(14px, 2vw, 28px);
	align-items: start;
}
.pr { grid-column: span 4; position: relative; }
.pr:nth-child(1) { grid-column: 1 / span 5; }
.pr:nth-child(2) { grid-column: 7 / span 3; margin-top: 70px; }
.pr:nth-child(3) { grid-column: 10 / span 3; margin-top: -20px; }
.pr:nth-child(4) { grid-column: 2 / span 3; margin-top: -60px; }
.pr:nth-child(5) { grid-column: 5 / span 5; margin-top: 30px; }
.pr:nth-child(6) { grid-column: 10 / span 3; margin-top: -40px; }
.pr__link { display: block; color: var(--ink); text-decoration: none; }
.pr__cloth { display: block; overflow: hidden; border: 2.5px solid var(--ink); background: var(--surface); transition: transform .5s var(--ease); }
.pr__img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.pr__link:hover .pr__img { transform: scale(1.12) rotate(6deg); }
.pr__link:hover .pr__cloth { transform: translateY(-6px) rotate(-1.5deg); }
.pr--dome .pr__cloth { aspect-ratio: 16 / 10; border-radius: 50% 50% 10px 10px / 92% 92% 10px 10px; }
.pr--flag .pr__cloth { aspect-ratio: 3 / 4; border-radius: 4px 70% 70% 70% / 4px 50% 50% 50%; }
.pr--square .pr__cloth { aspect-ratio: 1; border-radius: 18px; transform: rotate(-3deg); }
.pr--tipi .pr__cloth { aspect-ratio: 4 / 5; clip-path: polygon(50% 0, 100% 100%, 0 100%); border: 0; }
.pr--screen .pr__cloth { aspect-ratio: 21 / 9; border-radius: 6px; box-shadow: inset 0 0 0 0 var(--ink); background-image: linear-gradient(90deg, var(--ink) 0 8px, transparent 8px calc(33.3% - 4px), var(--ink) 0 calc(33.3% + 4px), transparent 0 calc(66.6% - 4px), var(--ink) 0 calc(66.6% + 4px), transparent 0 calc(100% - 8px), var(--ink) 0); }
.pr--screen .pr__img { mix-blend-mode: normal; }
.pr--round .pr__cloth { aspect-ratio: 1; border-radius: 50%; }
.pr__tag { display: flex; align-items: baseline; gap: 10px; margin-top: 14px; }
.pr__no { font: 700 13px/1 var(--mono); background: var(--ink); color: var(--cream); padding: 4px 7px; border-radius: 4px; }
.pr__name { font: 900 clamp(26px, 2.6vw, 38px)/1 var(--display); }
.pr__note { display: block; margin-top: 6px; font-size: 15px; line-height: 1.45; color: var(--ink2); max-width: 36ch; }

@media (max-width: 760px) {
	.prints__beach { grid-template-columns: 1fr 1fr; gap: 26px 16px; }
	.pr, .pr:nth-child(n) { grid-column: span 1; margin-top: 0; }
	.pr:nth-child(3), .pr:nth-child(6) { margin-top: 44px; }
	.pr:nth-child(1), .pr:nth-child(5) { grid-column: 1 / -1; }
	.pr:nth-child(5) { order: 2; }
}

/* ---------------------------------------------------------------- one camp (dark) */
.onecamp { background: var(--teal-deep); color: var(--cream); padding-bottom: clamp(60px, 8vw, 110px); }
.onecamp__stripe { height: 90px; background: var(--bg); }
.onecamp__head { max-width: 860px; margin: clamp(40px, 5vw, 70px) 0 34px; }
.onecamp .lead { color: rgba(246, 234, 211, .86); }
.onecamp .h2 { color: var(--cream); }
.onecamp .h2::first-line { color: var(--mustard); }

/* ---------------------------------------------------------------- zones */
.zones { padding: clamp(70px, 8vw, 120px) 0; }
.zones__map {
	list-style: none; margin: 0; padding: 0;
	display: grid; gap: 14px;
	grid-template-columns: repeat(6, 1fr);
	grid-template-areas: "t t t w w w" "t t t b k f";
}
.zone--tents { grid-area: t; --z: var(--mustard); }
.zone--windbreaks { grid-area: w; --z: var(--teal-deep); --zf: var(--cream); }
.zone--blankets { grid-area: b; --z: var(--orange); }
.zone--kits { grid-area: k; --z: var(--surface); }
.zone--flags { grid-area: f; --z: var(--ink); --zf: var(--cream); }
.zone__link {
	position: relative; display: grid; grid-template-rows: auto 1fr auto; height: 100%; min-height: 230px;
	padding: 18px; border: 2.5px solid var(--ink); border-radius: 6px;
	background: var(--z); color: var(--zf, var(--ink)); text-decoration: none; overflow: hidden;
	background-image: repeating-linear-gradient(0deg, transparent 0 39px, rgba(43, 26, 16, .1) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(43, 26, 16, .1) 39px 40px);
}
.zone__link:hover { color: var(--zf, var(--ink)); }
.zone__letter { font: 900 64px/.8 var(--display); }
.zone__img { display: grid; place-items: center; padding: 8px; }
.zone__img img { max-height: 260px; width: auto; object-fit: contain; filter: drop-shadow(0 14px 10px rgba(43, 26, 16, .35)); transition: transform .5s var(--ease); }
.zone__link:hover .zone__img img { transform: translateY(-8px) rotate(-3deg); }
.zone--tents .zone__img img { max-height: 380px; }
.zone--windbreaks .zone__img img, .zone--blankets .zone__img img, .zone--kits .zone__img img, .zone--flags .zone__img img { max-height: 150px; }
.zone__txt { display: flex; flex-direction: column; gap: 2px; }
.zone__name { font: 900 clamp(22px, 2vw, 30px)/1.05 var(--display); }
.zone__n { font: 700 12px/1.3 var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.zone__go { position: absolute; right: 16px; bottom: 18px; width: 30px; height: 30px; transition: transform .3s var(--ease); }
.zone__link:hover .zone__go { transform: translateX(6px); }
@media (max-width: 900px) {
	.zones__map { grid-template-columns: 1fr 1fr; grid-template-areas: "t t" "w w" "b k" "f f"; }
	.zone__link { min-height: 200px; }
	.zone--tents .zone__img img { max-height: 260px; }
}

/* ---------------------------------------------------------------- film */
.film { position: relative; background: var(--ink); color: var(--cream); }
.film__v { width: 100%; max-height: 82vh; aspect-ratio: 16 / 9; object-fit: cover; }
.film__cap { position: absolute; left: var(--gut); bottom: clamp(20px, 4vw, 48px); max-width: 640px; padding: 18px 22px; background: rgba(43, 26, 16, .78); border-radius: 18px; }
.film__read { display: flex; align-items: center; gap: 10px; margin: 0 0 8px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--mustard); }
.film__h { margin: 0; font: 900 clamp(24px, 3.2vw, 44px)/1.02 var(--display); }
.film__toggle { position: absolute; right: var(--gut); bottom: clamp(20px, 4vw, 48px); min-height: 44px; padding: 8px 16px; border-radius: 999px; border: 2px solid var(--cream); background: rgba(43, 26, 16, .6); color: var(--cream); font: 700 13px/1 var(--mono); }
@media (max-width: 760px) {
	.film__v { aspect-ratio: 4 / 5; max-height: none; }
	.film__cap { right: var(--gut); bottom: 76px; }
	.film__toggle { bottom: 18px; }
}

/* ---------------------------------------------------------------- straight talk */
.honest { background: var(--mustard); padding: clamp(70px, 8vw, 120px) 0; }
.honest__grid { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 22px; align-items: start; }
.honest__tag {
	position: relative; padding: 30px 24px 24px; background: var(--surface);
	border-radius: 4px 4px 14px 14px; box-shadow: var(--shadow);
}
.honest__tag::before { content: ""; position: absolute; inset: 9px; border: 1.5px dashed var(--line); border-radius: 8px; pointer-events: none; }
.honest__tag--no { transform: rotate(1.5deg); margin-top: 40px; }
.honest__tag--yes { transform: rotate(-1.5deg); }
.honest__h { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 700 13px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.honest__tag ul { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 16px; }
.honest--small { padding: clamp(50px, 6vw, 80px) 0; }
@media (max-width: 900px) { .honest__grid { grid-template-columns: 1fr; } .honest__tag--no { margin-top: 0; } }

/* ---------------------------------------------------------------- steps */
.steps { padding: clamp(70px, 8vw, 120px) 0; }
.steps__list { list-style: none; margin: 30px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 3vw, 44px); }
.step { position: relative; padding-top: 8px; border-top: 3px solid var(--ink); }
.step__n { display: block; font: 900 clamp(90px, 10vw, 150px)/.85 var(--display); color: transparent; -webkit-text-stroke: 2.5px var(--ink); margin: 14px 0 8px; }
.step:nth-child(2) .step__n { color: var(--orange); }
.step__h { font: 900 26px/1.1 var(--display); margin: 0 0 8px; }
.step__p { margin: 0; color: var(--ink2); }
@media (max-width: 760px) { .steps__list { grid-template-columns: 1fr; } .step__n { font-size: 84px; } }

/* ---------------------------------------------------------------- origin */
.origin { padding: 0 0 clamp(80px, 9vw, 140px); }
.origin__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.origin__fig { position: relative; margin: 0; }
.origin__fig img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border: 2.5px solid var(--ink); border-radius: 50% 50% 18px 18px / 34% 34% 18px 18px; }
.origin__sun { position: absolute; right: -24px; top: 18%; width: clamp(90px, 11vw, 150px); animation: vy-spin 30s linear infinite; }
@keyframes vy-spin { to { transform: rotate(360deg); } }
@media (max-width: 760px) { .origin__grid { grid-template-columns: 1fr; } .origin__sun { right: -6px; } }

@media (max-width: 760px) { .hero__pick .swatch { width: 36px; height: 36px; } .hero__pick { gap: 6px; } }
.honest .label, .onecamp .label, .sizecheck .label { color: inherit; }

/* ---------------------------------------------------------------- camp builder */
.camp > * { min-width: 0; }
.camp {
	display: grid; gap: 22px clamp(20px, 3vw, 40px);
	grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr);
	grid-template-areas: "ctl ctl" "plot list";
	align-items: start;
}
.camp__controls { grid-area: ctl; display: flex; flex-wrap: wrap; gap: 18px 34px; }
.camp__ctl { border: 0; margin: 0; padding: 0; min-width: 0; }
.camp__ctl .label { display: flex; align-items: center; gap: 8px; color: inherit; }
.camp__step { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--orange); color: var(--ink); font-size: 12px; }
.camp__prints { display: flex; flex-wrap: wrap; gap: 8px; }
.camp__prints .swatch--l { color: var(--ink); }
.camp__colnote { font-size: 14px; margin: 8px 0 0; color: inherit; opacity: .85; max-width: 52ch; }
.seg { display: inline-flex; padding: 4px; gap: 4px; border: 2px solid currentColor; border-radius: 999px; }
.seg__b { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 6px 18px; border: 0; border-radius: 999px; background: none; font-weight: 700; color: inherit; }
.seg__b[aria-checked="true"] { background: var(--mustard); color: var(--ink); }

.camp__plot {
	grid-area: plot;
	position: relative; aspect-ratio: 900 / 600;
	background:
		repeating-linear-gradient(0deg, transparent 0 calc(100% / 6 - 1px), rgba(43, 26, 16, .14) calc(100% / 6 - 1px) calc(100% / 6)),
		repeating-linear-gradient(90deg, transparent 0 calc(100% / 9 - 1px), rgba(43, 26, 16, .14) calc(100% / 9 - 1px) calc(100% / 9)),
		radial-gradient(circle at 30% 20%, #f2e0bc, var(--sand) 60%, var(--sand2));
	border: 2.5px dashed var(--ink);
	border-radius: 8px;
	color: var(--ink);
	overflow: hidden;
}
.camp__wind {
	position: absolute; left: 10px; top: 10px; z-index: 3;
	display: inline-flex; align-items: center; gap: 6px;
	font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase;
	background: var(--surface); border: 1.5px solid var(--ink); border-radius: 999px; padding: 4px 10px 4px 6px;
}
.camp__wind .ico { width: 16px; height: 16px; transform: rotate(90deg); }
.camp__scale { position: absolute; left: 12px; bottom: 10px; z-index: 3; display: flex; align-items: center; gap: 6px; font: 700 11px/1 var(--mono); }
.camp__scale span { display: block; width: calc((100cqw) / 9); min-width: 40px; height: 8px; border: 2px solid var(--ink); border-top: 0; }
.camp__plot { container-type: inline-size; }
.camp__things { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.thing {
	position: absolute; left: var(--l); top: var(--t); width: var(--w);
	transition: left .7s var(--ease), top .7s var(--ease), width .7s var(--ease), opacity .3s;
}
.thing img { width: 100%; height: auto; filter: drop-shadow(0 10px 8px rgba(43, 26, 16, .3)); }
.thing--windbreak img { max-height: 22cqw; object-fit: contain; }
.thing.is-in { animation: vy-drop .6s var(--ease); }
@keyframes vy-drop { from { opacity: 0; transform: translateY(-24px) rotate(-6deg); } }
.thing__pin {
	position: absolute; left: -6px; top: -6px;
	display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%;
	background: var(--orange); color: var(--ink); border: 2px solid var(--ink);
	font: 700 12px/1 var(--mono);
}

.camp__list { grid-area: list; }
.camp__title { font: 900 clamp(26px, 2.4vw, 34px)/1.05 var(--display); margin: 0 0 14px; }
.camp__items { list-style: none; margin: 0; padding: 0; counter-reset: ci; border-top: 2px solid currentColor; }
.ci { counter-increment: ci; display: grid; grid-template-columns: 26px 56px 1fr auto; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1.5px dashed rgba(127, 100, 70, .5); }
.ci::before { content: counter(ci); display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--orange); color: var(--ink); font: 700 12px/1 var(--mono); border: 2px solid var(--ink); }
.ci__img { width: 56px; height: 56px; object-fit: cover; border-radius: 10px; background: var(--surface); }
.ci__txt { display: flex; flex-direction: column; min-width: 0; }
.ci__role { font: 700 11px/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; opacity: .8; }
.ci__name { color: inherit; font-weight: 700; text-decoration: none; line-height: 1.25; }
.ci__name:hover { text-decoration: underline; color: inherit; }
.ci__size { font-size: 13px; opacity: .8; }
.ci__price { font-weight: 700; white-space: nowrap; text-align: right; }
.camp__total { display: flex; justify-content: space-between; align-items: baseline; margin: 16px 0 4px; font-weight: 700; }
.camp__total strong { font: 900 clamp(28px, 2.6vw, 38px)/1 var(--display); }
.camp__fine { font-size: 13px; opacity: .85; margin: 0 0 16px; }
.vy-cur { font-family: var(--mono); font-size: .72em; font-weight: 700; letter-spacing: .04em; }

/* on the dark home section */
.onecamp .camp { color: var(--cream); }
.onecamp .ci__img { background: var(--cream); }

@media (max-width: 900px) {
	.camp { grid-template-columns: 1fr; grid-template-areas: "ctl" "plot" "list"; }
	.camp__controls { gap: 16px; }
}
@media (max-width: 480px) {
	.ci { grid-template-columns: 26px 48px 1fr; }
	.ci__img { width: 48px; height: 48px; }
	.ci__price { grid-column: 3; text-align: left; }
	.seg__b { padding: 6px 12px; }
}

.camppage { padding: 20px 0 clamp(60px, 7vw, 100px); }
.camppage__head { max-width: 860px; margin-bottom: 30px; }
.camppage__notes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.camppage__notes p { margin: 0; }
@media (max-width: 900px) { .camppage__notes { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------- camp plan (shop) */
.planhead { padding: 18px 0 30px; }
.planhead__grid { display: grid; grid-template-columns: 1fr auto; gap: 30px; align-items: end; }
.planhead .h1 { max-width: 20ch; font-size: clamp(38px, 4.6vw, 70px); }
.planhead .lead { margin-bottom: 0; }
.planhead__stamp {
	display: grid; grid-template-columns: repeat(3, auto); gap: 0; margin: 0;
	border: 2.5px solid var(--ink); border-radius: 8px; background: var(--surface);
	font-family: var(--mono);
}
.planhead__stamp div { padding: 12px 18px; border-left: 1.5px dashed var(--line); }
.planhead__stamp div:first-child { border-left: 0; }
.planhead__stamp dt { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.planhead__stamp dd { margin: 4px 0 0; font: 900 30px/1 var(--display); }

.legend { position: sticky; top: 0; z-index: 30; background: rgba(246, 234, 211, .94); backdrop-filter: blur(8px); border-block: 2px solid var(--ink); }
.legend__in { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; padding: 10px 0; }
.legend__zones, .legend__prints { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
.legend__zones a, .legend__p {
	display: inline-flex; align-items: center; gap: 8px; flex: none;
	min-height: 42px; padding: 6px 14px;
	border: 2px solid transparent; border-radius: 999px; background: none;
	color: var(--ink); text-decoration: none; font-weight: 700; font-size: 14px;
}
.legend__zones a:hover, .legend__p:hover { border-color: var(--ink); color: var(--ink); }
.legend__zones a[aria-current="page"], .legend__p[aria-pressed="true"] { background: var(--ink); color: var(--cream); }
.legend__l { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 4px; background: var(--mustard); color: var(--ink); font: 700 12px/1 var(--mono); }

.plan {
	position: relative;
	padding: 30px 0 60px;
	background:
		repeating-linear-gradient(0deg, transparent 0 59px, rgba(110, 79, 53, .16) 59px 60px),
		repeating-linear-gradient(90deg, transparent 0 59px, rgba(110, 79, 53, .16) 59px 60px),
		var(--sand);
}
.plan__north {
	position: absolute; right: var(--gut); bottom: 18px;
	display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
	border: 2px solid var(--ink); background: var(--surface); font: 900 20px/1 var(--display);
}
.plan__north::before { content: ""; position: absolute; top: -12px; border: 7px solid transparent; border-bottom: 12px solid var(--orange); border-top: 0; }
.zonebar-wrap { padding: 18px 0 8px; }
.zonebar {
	display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
	margin: 0 0 16px; padding-bottom: 10px; border-bottom: 2.5px solid var(--ink);
	font: 900 clamp(26px, 3vw, 40px)/1 var(--display);
}
.zonebar__l { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 8px; background: var(--ink); color: var(--mustard); font-size: 28px; }
.zonebar .ico { width: 30px; height: 30px; }
.zonebar__n { margin-left: auto; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); }

.plots {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-flow: dense;
	grid-auto-rows: minmax(clamp(180px, 17vw, 250px), auto); gap: 14px;
}
.plot { grid-column: span 3; min-width: 0; }
.plot--tents { grid-column: span 4; }
.plot--big { grid-column: span 4; grid-row: span 2; }
.plot--windbreaks { grid-column: span 6; }
.plot--blankets { grid-column: span 3; }
.plot--kits, .plot--flags { grid-column: span 2; }
.plots--same { grid-template-columns: repeat(4, 1fr); grid-auto-rows: auto; }
.plots--same .plot.plot { grid-column: span 1; grid-row: auto; aspect-ratio: 4 / 5; }
.plots--same .plot__img { max-height: 170px; }

.plot__link {
	position: relative; display: grid; grid-template-rows: 1fr auto; height: 100%;
	padding: 34px 14px 14px;
	background:
		radial-gradient(circle at 10px 10px, var(--ink) 3px, transparent 3.5px),
		radial-gradient(circle at calc(100% - 10px) 10px, var(--ink) 3px, transparent 3.5px),
		radial-gradient(circle at 10px calc(100% - 10px), var(--ink) 3px, transparent 3.5px),
		radial-gradient(circle at calc(100% - 10px) calc(100% - 10px), var(--ink) 3px, transparent 3.5px),
		#F1DFBA;
	border: 2px dashed rgba(43, 26, 16, .55);
	border-radius: 6px;
	color: var(--ink); text-decoration: none;
	transition: background-color .3s, border-color .3s;
}
.plot__link:hover { border-style: solid; border-color: var(--ink); color: var(--ink); background-color: var(--surface); }
.plot__no { position: absolute; left: 10px; top: 8px; font: 700 12px/1 var(--mono); background: var(--ink); color: var(--cream); padding: 4px 6px; border-radius: 4px; }
.plot__thing { display: grid; place-items: center; min-height: 0; padding: 6px 4px 10px; }
.plot__img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; transform: rotate(var(--r)); filter: drop-shadow(0 10px 8px rgba(43, 26, 16, .28)); transition: transform .5s var(--ease), filter .5s var(--ease); }
.plot--tents .plot__img { max-height: 200px; }
.plot--big .plot__img { max-height: 380px; }
.plot--windbreaks .plot__img { max-height: 150px; }
.plot--kits .plot__img, .plot--flags .plot__img { max-height: 130px; }
.plot__img--flat { border-radius: 12px; }
.plot__link:hover .plot__img { transform: rotate(0deg) translateY(-6px) scale(1.04); filter: drop-shadow(0 18px 12px rgba(43, 26, 16, .3)); }
.plot__dim { position: absolute; right: 24px; top: 10px; display: flex; align-items: center; gap: 6px; font: 700 11px/1 var(--mono); color: var(--ink2); }
.plot__dimline { width: 26px; height: 8px; border: 1.5px solid var(--ink2); border-top: 0; border-bottom: 0; background: linear-gradient(var(--ink2), var(--ink2)) center / 100% 1.5px no-repeat; }
.plot__label { display: grid; gap: 2px; }
.plot__print { display: inline-flex; align-items: center; gap: 6px; font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); }
.plot__print .dot { width: 12px; height: 12px; }
.plot__name { font-weight: 700; line-height: 1.25; font-size: 15px; }
.plot__price { font-weight: 700; font-size: 15px; }
.plot__price del { opacity: .6; font-weight: 400; }
.plan[data-print] .plot.is-out { display: none; }
.plan__empty { padding: 30px 0; font-weight: 700; }

.planfoot { padding: 30px 0; border-top: 2px solid var(--ink); }
.planfoot__in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.planfoot__t { margin: 0; color: var(--ink2); }

@media (max-width: 1100px) {
	.plots { grid-template-columns: repeat(8, 1fr); }
	.plot { grid-column: span 4; }
	.plot--big { grid-column: span 4; grid-row: span 2; }
	.plot--windbreaks { grid-column: span 8; }
	.plot--blankets { grid-column: span 4; }
	.plot--kits, .plot--flags { grid-column: span 2; }
}
@media (max-width: 760px) {
	.planhead__grid { grid-template-columns: 1fr; }
	.planhead__stamp div { padding: 10px 12px; }
	.plots { grid-template-columns: repeat(2, 1fr); grid-auto-rows: auto; gap: 10px; }
	.plot, .plot--tents, .plot--big, .plot--blankets, .plot--kits, .plot--flags { grid-column: span 1; grid-row: auto; }
	.plot--big, .plot--windbreaks { grid-column: 1 / -1; }
	.plot__link { min-height: 230px; padding: 32px 10px 10px; }
	.plot--big .plot__img { max-height: 260px; }
	.plot__dim { display: none; }
	.plots--same { grid-template-columns: 1fr 1fr; }
	.plan__north { display: none; }
}

/* ---------------------------------------------------------------- product page */
.crumbs { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0 18px; font: 700 12px/1.4 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.crumbs a { color: var(--ink2); }
.crumbs [aria-current] { color: var(--ink); }
.pdp__top > * { min-width: 0; }
.pdp__top { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(320px, 1fr); gap: clamp(24px, 4vw, 64px); align-items: start; padding-bottom: clamp(50px, 6vw, 90px); }

.gal__main { position: relative; aspect-ratio: 1; background: var(--surface); border: 2.5px solid var(--ink); border-radius: 50% 50% 22px 22px / 18% 18% 22px 22px; overflow: hidden; }
.gal__slide { margin: 0; position: absolute; inset: 0; }
.gal__img { width: 100%; height: 100%; object-fit: cover; }
.gal__print { position: absolute; left: 14px; bottom: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; background: var(--surface); border: 2px solid var(--ink); border-radius: 999px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.gal__thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 4px; }
.gal__t { position: relative; flex: none; width: 82px; height: 82px; padding: 0; border: 2px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--surface); }
.gal__t img { width: 100%; height: 100%; object-fit: cover; }
.gal__t[aria-selected="true"] { border-color: var(--ink); box-shadow: 0 0 0 3px var(--mustard); }

.buy { position: sticky; top: 20px; }
.buy__kind { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink2); }
.buy__h { font-size: clamp(36px, 3.8vw, 60px); margin-bottom: .25em; }
.buy__price { font: 700 26px/1.2 var(--text); margin-bottom: 14px; }
.buy__price .vy-cur { font-size: 15px; }
.buy__story { color: var(--ink2); margin: 0 0 20px; max-width: 52ch; }
.facts3 { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); border: 2px solid var(--ink); border-radius: 16px; overflow: hidden; background: var(--surface); }
.facts3 li { display: grid; gap: 4px; padding: 12px; border-left: 1.5px dashed var(--line); align-content: start; }
.facts3 li:first-child { border-left: 0; }
.facts3 .ico { width: 24px; height: 24px; color: var(--orange-deep); }
.facts3__k { font: 700 11px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.facts3__v { font-weight: 700; font-size: 14px; line-height: 1.3; }
@media (max-width: 480px) { .facts3 { grid-template-columns: 1fr; } .facts3 li { border-left: 0; border-top: 1.5px dashed var(--line); grid-template-columns: 24px 70px 1fr; align-items: center; } .facts3 li:first-child { border-top: 0; } }

.buy__form .variations { width: 100%; border: 0; margin: 0 0 6px; }
.buy__form .variations th, .buy__form .variations td { display: block; padding: 0; text-align: left; }
.buy__form .variations th.label { display: block; }
.buy__form .variations label { font: 700 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.buy__form .variations select { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.buy__form .chips { margin: 10px 0 18px; }
.buy__form .single_variation_wrap .woocommerce-variation-price { display: none; }
.buy__form .woocommerce-variation-availability { font-size: 14px; }
.buy__form form.cart:not(.variations_form), .buy__form .woocommerce-variation-add-to-cart { display: flex; gap: 10px; align-items: stretch; }
.buy__form .quantity { flex: none; }
.buy__form .woocommerce-variation-add-to-cart { margin-top: 4px; }
.quantity .qty { width: 78px; min-height: 58px; text-align: center; font: 700 18px/1 var(--text); border: 2px solid var(--ink); border-radius: 999px; background: var(--surface); }
.single_add_to_cart_button { flex: 1; }
.assure { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 8px; }
.assure li { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.assure a { color: var(--ink); }

/* size check */
.sizecheck { background: var(--teal-deep); color: var(--cream); padding: clamp(56px, 7vw, 100px) 0; }
.sizecheck__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 6px 30px; margin-bottom: 26px; }
.sizecheck__head .h2 { color: var(--cream); margin: 0; }
.sizecheck__head .kicker { flex-basis: 100%; margin: 0; }
.sizecheck__size { margin: 0; font: 700 14px/1.4 var(--mono); color: var(--mustard); }
.sizecheck__grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 20px; }
.sizecheck figure { margin: 0; }
.sizecheck__photo img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 18px; border: 2px solid var(--cream); }
.sizecheck__draw { background: var(--surface); color: var(--ink); border-radius: 18px; padding: 18px; display: grid; align-content: center; }
.sizecheck figcaption { margin-top: 10px; font-size: 13px; opacity: .85; }
.sz { width: 100%; height: auto; }
.sz__ground { stroke: var(--ink); stroke-width: 2; }
.sz__shape { fill: var(--orange); stroke: var(--ink); stroke-width: 2.5; stroke-linejoin: round; }
.sz__pole { stroke: var(--ink); stroke-width: 5; stroke-linecap: round; }
.sz__cord { fill: none; stroke: var(--ink); stroke-width: 2; }
.sz__person { fill: var(--teal); }
.sz__dim line { stroke: var(--ink); stroke-width: 1.5; }
.sz__t { font: 700 13px var(--mono); fill: var(--ink); }
@media (max-width: 900px) { .sizecheck__grid { grid-template-columns: 1fr; } }

.details { padding: clamp(56px, 7vw, 100px) 0; }
.details__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 44px); }
.details__grid p { margin: 0 0 18px; }
.ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ticks li { position: relative; padding-left: 28px; }
.ticks li::before { content: ""; position: absolute; left: 0; top: .55em; width: 16px; height: 8px; background: linear-gradient(var(--orange) 0 33.3%, var(--mustard) 0 66.6%, var(--teal) 0); border-radius: 2px; }
.nos { margin: 0; padding-left: 18px; display: grid; gap: 6px; font-size: 15px; color: var(--ink2); }
.details__print { display: flex; gap: 12px; align-items: flex-start; }
.details__sw { width: 64px; height: 64px; border-radius: 50%; border: 2px solid var(--ink); object-fit: cover; flex: none; }
@media (max-width: 900px) { .details__grid { grid-template-columns: 1fr; } }

.same { padding: clamp(56px, 7vw, 100px) 0; background: var(--sand); background-image: repeating-linear-gradient(0deg, transparent 0 59px, rgba(110, 79, 53, .16) 59px 60px), repeating-linear-gradient(90deg, transparent 0 59px, rgba(110, 79, 53, .16) 59px 60px); }
.same__head { margin-bottom: 24px; }
.steps--pdp { padding-top: clamp(50px, 6vw, 80px); padding-bottom: 20px; }
.steps--pdp .step__n { font-size: clamp(64px, 7vw, 100px); }
.safety { padding: 30px 0 70px; }
.safety details { border: 2px solid var(--ink); border-radius: 16px; padding: 4px 20px; background: var(--surface); }
.safety summary { min-height: 52px; display: flex; align-items: center; font-weight: 700; cursor: pointer; }
.safety details p { font-size: 15px; color: var(--ink2); }
.safety__wd { margin: 16px 0 0; font-weight: 700; }

@media (max-width: 900px) {
	.pdp__top { grid-template-columns: 1fr; }
	.buy { position: static; }
	.gal__main { border-radius: 40% 40% 18px 18px / 14% 14% 18px 18px; }
}
.gal { min-width: 0; max-width: 100%; }
.gal__thumbs { max-width: 100%; overscroll-behavior-x: contain; }

/* ---------------------------------------------------------------- text pages */
.page__head { padding: 20px 0 26px; }
.page__head .h1 { max-width: 18ch; }
.page__stripe { height: 50px; }
.page__body { padding: clamp(36px, 5vw, 70px) 0 clamp(60px, 7vw, 100px); }
.page__body--text { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(30px, 5vw, 80px); align-items: start; }
.prose { max-width: 76ch; font-size: 17px; }
.prose--woo { max-width: none; }
.prose h2 { font: 900 clamp(26px, 2.6vw, 36px)/1.1 var(--display); margin: 1.8em 0 .5em; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { font: 800 21px/1.25 var(--display); margin: 1.5em 0 .4em; }
.prose p, .prose ul, .prose ol { margin: 0 0 1em; }
.prose li { margin-bottom: .35em; }
.prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.4em; font-size: 15px; display: block; overflow-x: auto; }
.prose th, .prose td { padding: 10px 12px; border-bottom: 1.5px dashed var(--line); text-align: left; vertical-align: top; }
.prose th { font: 700 12px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; background: var(--surface); border-bottom: 2px solid var(--ink); }
.prose blockquote, .prose .box { margin: 0 0 1.2em; padding: 18px 20px; background: var(--surface); border: 2px solid var(--ink); border-radius: 16px; }
.prose details { border-bottom: 1.5px dashed var(--line); padding: 4px 0; }
.prose summary { font-weight: 700; cursor: pointer; min-height: 48px; display: flex; align-items: center; }
.prose a { word-break: break-word; }
.side { position: sticky; top: 20px; display: grid; gap: 16px; }
.side__card { display: grid; gap: 8px; padding: 22px; background: var(--surface); border: 2px solid var(--ink); border-radius: 4px 4px 16px 16px; position: relative; }
.side__card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: linear-gradient(var(--orange) 0 33.3%, var(--mustard) 0 66.6%, var(--teal) 0); }
.side__card a { display: flex; align-items: center; gap: 8px; color: var(--ink); font-weight: 700; word-break: break-all; min-height: 36px; }
.side__small { font-size: 13px; color: var(--muted); margin: 0; }
.side__links { list-style: none; margin: 0; padding: 0; }
.side__links a { display: block; padding: 10px 0; border-bottom: 1.5px dashed var(--line); color: var(--ink); text-decoration: none; font-weight: 600; }
.side__links a[aria-current="page"] { color: var(--orange-deep); }
@media (max-width: 900px) { .page__body--text { grid-template-columns: 1fr; } .side { position: static; } }

/* about */
.about__hero { padding: 10px 0 40px; }
.about__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(26px, 5vw, 70px); align-items: center; }
.about__fig { margin: 0; }
.about__fig img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border: 2.5px solid var(--ink); border-radius: 50% 50% 18px 18px / 26% 26% 18px 18px; }
.about__stripe { height: 90px; }
.about__body { padding: clamp(40px, 5vw, 80px) 0; }
.prose--story { font-size: 19px; margin-inline: auto; }
.prose--story p:first-of-type::first-letter { font: 900 4.2em/.8 var(--display); float: left; margin: .06em .1em 0 0; color: var(--orange-deep); }
.about__prints { background: var(--teal-deep); color: var(--cream); padding: clamp(56px, 7vw, 100px) 0; }
.swatchlist { list-style: none; margin: 20px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; }
.swatchlist a { display: grid; gap: 6px; color: var(--cream); text-decoration: none; }
.swatchlist img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 3px solid var(--cream); transition: transform .8s var(--ease); }
.swatchlist a:hover img { transform: rotate(40deg); }
.swatchlist__n { font: 900 24px/1 var(--display); margin-top: 8px; }
.swatchlist__t { font-size: 14px; opacity: .85; }
@media (max-width: 900px) { .about__grid { grid-template-columns: 1fr; } .swatchlist { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 520px) { .swatchlist { grid-template-columns: repeat(2, 1fr); } }

/* contact */
.contact { padding: 20px 0 clamp(60px, 7vw, 100px); }
.contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 5vw, 80px); align-items: start; }
.contact__big { display: flex; align-items: center; gap: 14px; margin: 0 0 10px; color: var(--ink); text-decoration: none; font: 900 clamp(24px, 3vw, 40px)/1.1 var(--display); word-break: break-word; }
.contact__big .ico { width: 34px; height: 34px; padding: 6px; border: 2px solid var(--ink); border-radius: 50%; background: var(--mustard); }
.contact__big:hover { color: var(--orange-deep); }
.contact__hours { color: var(--muted); margin: 6px 0 26px; }
.clabel--card { margin: 0; max-width: 460px; }
.clabel--card .label__body { padding: 28px 28px 22px 44px; }
.label__mono { font: 400 14px/1.7 var(--mono); margin: 0 0 10px; }
.contact__form { background: var(--surface); border: 2px solid var(--ink); border-radius: 24px; padding: clamp(20px, 3vw, 34px); }
.contact__wd { margin: 18px 0 0; font-weight: 700; }
@media (max-width: 900px) { .contact__grid { grid-template-columns: 1fr; } }

/* 404 */
.lost { padding: 30px 0 100px; }
.lost__in { display: grid; grid-template-columns: 1fr 1.2fr; gap: 50px; align-items: center; }
.lost__plot { position: relative; aspect-ratio: 1; border: 3px dashed var(--ink); border-radius: 8px; background: var(--sand); background-image: repeating-linear-gradient(0deg, transparent 0 39px, rgba(43, 26, 16, .12) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(43, 26, 16, .12) 39px 40px); }
.lost__no { position: absolute; left: 16px; top: 14px; font: 700 14px/1 var(--mono); background: var(--ink); color: var(--cream); padding: 5px 8px; border-radius: 4px; }
.lost__peg { position: absolute; width: 16px; height: 16px; border-radius: 50%; background: var(--orange); border: 2px solid var(--ink); }
.lost__peg--a { left: 18%; top: 22%; } .lost__peg--b { right: 18%; top: 22%; } .lost__peg--c { left: 18%; bottom: 18%; } .lost__peg--d { right: 18%; bottom: 18%; }
@media (max-width: 760px) { .lost__in { grid-template-columns: 1fr; } .lost__plot { max-width: 260px; } }

/* ---------------------------------------------------------------- WooCommerce: notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
	margin: 0 0 22px; padding: 14px 18px;
	background: var(--surface); border: 2px solid var(--ink); border-left-width: 10px; border-radius: 14px;
	font-weight: 600;
}
.woocommerce-message { border-left-color: var(--teal); }
.woocommerce-info { border-left-color: var(--mustard); }
.woocommerce-error { border-left-color: var(--err); color: var(--err); display: block; }
.woocommerce-error li { margin: 2px 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 10px 22px;
	border: 2px solid var(--ink); border-radius: 999px; background: var(--surface); color: var(--ink);
	font: 700 15px/1.1 var(--text); text-decoration: none;
}
.woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--mustard); color: var(--ink); }
.woocommerce button.button.alt, .woocommerce a.button.alt, .woocommerce a.checkout-button, #place_order, .single_add_to_cart_button {
	position: relative; overflow: hidden; isolation: isolate;
	min-height: 58px; padding: 14px 28px 18px;
	background: var(--orange); color: var(--ink); font-size: 17px;
	border: 2px solid var(--ink); border-radius: 999px; font-weight: 700;
}
.woocommerce a.checkout-button::after, #place_order::after, .single_add_to_cart_button::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 8px; z-index: -1;
	background: linear-gradient(var(--mustard) 0 33.3%, var(--teal) 0 66.6%, var(--ink) 0);
}
.single_add_to_cart_button.disabled { opacity: .55; cursor: not-allowed; }

/* ---------------------------------------------------------------- cart */
.woocommerce-cart .prose--woo { display: block; }
.woocommerce-cart-form { margin-bottom: 30px; }
table.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--surface); border: 2px solid var(--ink); border-radius: 18px; overflow: hidden; font-size: 16px; }
table.shop_table th { font: 700 12px/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; text-align: left; padding: 14px 16px; background: var(--sand); border-bottom: 2px solid var(--ink); }
table.shop_table td { padding: 14px 16px; border-bottom: 1.5px dashed var(--line); vertical-align: middle; }
table.shop_table tr:last-child td { border-bottom: 0; }
.shop_table .product-thumbnail img { width: 80px; height: 80px; object-fit: cover; border-radius: 12px; }
.shop_table .product-name a { color: var(--ink); font-weight: 700; text-decoration: none; }
.shop_table .product-name .variation { display: grid; grid-template-columns: auto 1fr; gap: 0 6px; margin: 4px 0 0; font-size: 14px; color: var(--muted); }
.shop_table .product-name .variation dd, .shop_table .product-name .variation p { margin: 0; }
.shop_table a.remove { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--ink); color: var(--ink); text-decoration: none; font-size: 20px; line-height: 1; }
.shop_table a.remove:hover { background: var(--err); color: var(--surface); border-color: var(--err); }
.shop_table .quantity .qty { min-height: 46px; width: 70px; }
.shop_table td.actions { background: var(--bg); }
.shop_table td.actions .coupon { display: none; }
.shop_table td.actions button[name="update_cart"] { float: right; }
.cart-collaterals { display: grid; justify-content: end; }
.cart_totals { width: min(100%, 460px); background: var(--surface); border: 2px solid var(--ink); border-radius: 18px; padding: 22px; }
.cart_totals h2 { font: 900 30px/1 var(--display); margin: 0 0 14px; }
.cart_totals table.shop_table { border: 0; border-radius: 0; background: none; }
.cart_totals table.shop_table th, .cart_totals table.shop_table td { background: none; padding: 10px 0; border-bottom: 1.5px dashed var(--line); font-family: var(--text); font-size: 15px; text-transform: none; letter-spacing: 0; }
.cart_totals .order-total td, .cart_totals .order-total th { font-size: 19px; font-weight: 800; }
.wc-proceed-to-checkout { margin-top: 14px; }
.wc-proceed-to-checkout .checkout-button { width: 100%; }
.woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; }
.woocommerce-shipping-destination, .woocommerce-shipping-calculator { font-size: 14px; color: var(--muted); }
.shipping-calculator-form { display: grid; gap: 10px; padding-top: 10px; }
.empty { text-align: center; padding: 30px 0 10px; }
.empty__stripe { max-width: 420px; margin: 0 auto 18px; height: 60px; }
.empty__t { font: 900 clamp(26px, 3vw, 40px)/1.1 var(--display); }
.return-to-shop { text-align: center; }
.return-to-shop .button { background: var(--orange) !important; }

@media (max-width: 760px) {
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: grid; grid-template-columns: 80px 1fr; gap: 0 12px; padding: 12px; border-bottom: 2px dashed var(--line); position: relative; }
	table.shop_table_responsive td { display: block; border: 0; padding: 4px 0; text-align: left !important; }
	table.shop_table_responsive td::before { content: attr(data-title) ": "; font: 700 11px/1 var(--mono); text-transform: uppercase; letter-spacing: .08em; color: var(--muted); }
	table.shop_table_responsive td.product-thumbnail { grid-row: span 4; }
	table.shop_table_responsive td.product-remove, table.shop_table_responsive td.product-thumbnail, table.shop_table_responsive td.product-name { }
	table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.product-thumbnail::before, table.shop_table_responsive td.product-name::before, table.shop_table_responsive td.actions::before { content: none; }
	table.shop_table_responsive td.product-remove { position: absolute; right: 10px; top: 10px; }
	table.shop_table_responsive td.actions { grid-column: 1 / -1; }
	.shop_table td.actions button[name="update_cart"] { float: none; width: 100%; }
	.cart-collaterals { justify-content: stretch; }
	.cart_totals table.shop_table tr { display: flex; justify-content: space-between; padding: 0; border: 0; }
	.cart_totals table.shop_table td::before { content: none; }
}

/* ---------------------------------------------------------------- checkout */
form.checkout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, 1fr); gap: 0 clamp(24px, 4vw, 56px); align-items: start; }
form.checkout > .woocommerce-NoticeGroup, form.checkout > .wc_coupon_message_wrap { grid-column: 1 / -1; }
#customer_details { grid-column: 1; }
#customer_details .col-1, #customer_details .col-2 { width: 100%; float: none; }
form.checkout #order_review_heading, form.checkout .tag--ink, form.checkout #order_review { grid-column: 2; }
form.checkout .tag--ink { grid-row: 1; justify-self: start; }
#order_review_heading { grid-row: 2; font: 900 32px/1 var(--display); margin: 0 0 14px; }
#order_review { grid-row: 3; position: sticky; top: 20px; background: var(--surface); border: 2px solid var(--ink); border-radius: 22px; padding: 20px; }
#customer_details { grid-row: 1 / span 3; }
.woocommerce-billing-fields h3, .woocommerce-shipping-fields h3, .woocommerce-additional-fields h3 { font: 900 28px/1.1 var(--display); margin: 0 0 14px; }
.woocommerce form .form-row { margin: 0 0 14px; padding: 0; display: grid; gap: 6px; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: calc(50% - 7px); float: left; }
.woocommerce form .form-row-last { margin-left: 14px; }
.woocommerce form .form-row-wide, .woocommerce form .form-row.notes { clear: both; }
.woocommerce-billing-fields__field-wrapper::after, .woocommerce-shipping-fields__field-wrapper::after { content: ""; display: table; clear: both; }
.woocommerce form .form-row .required { color: var(--err); text-decoration: none; }
.woocommerce form .form-row.woocommerce-invalid .input-text { border-color: var(--err); }
#ship-to-different-address label { display: flex; align-items: center; gap: 10px; font: 800 20px/1.2 var(--display); }
.woocommerce-checkout-review-order-table { border: 0 !important; background: none !important; border-radius: 0 !important; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { background: none !important; padding: 10px 0 !important; font-family: var(--text) !important; font-size: 15px !important; text-transform: none !important; letter-spacing: 0 !important; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: 19px !important; font-weight: 800; }
#payment { margin-top: 12px; }
#payment .wc_payment_methods { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
#payment .wc_payment_method { padding: 12px 14px; border: 2px solid var(--line); border-radius: 14px; background: var(--bg); }
#payment .wc_payment_method > label { font-weight: 700; }
#payment .payment_box { font-size: 14px; color: var(--ink2); margin-top: 8px; }
#payment .woocommerce-info { margin: 0 0 12px; font-size: 14px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 14px; color: var(--ink2); }
.woocommerce-terms-and-conditions-wrapper .form-row { display: block !important; }
.woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start; gap: 10px; font-weight: 600 !important; }
.woocommerce-form__input-checkbox { width: 22px; height: 22px; margin-top: 2px; accent-color: var(--orange-deep); flex: none; }
#place_order { width: 100%; margin-top: 10px; }
.vy-paysafe { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; margin: 12px 0; background: var(--bg); border: 1.5px dashed var(--ink2); border-radius: 12px; font-size: 13px; color: var(--ink2); }
.vy-paysafe .ico { width: 20px; height: 20px; margin-top: 2px; }
.woocommerce-checkout .checkout_coupon, .woocommerce-form-coupon-toggle { display: none; }
.woocommerce-form-login-toggle .woocommerce-info { font-size: 15px; }
.woocommerce-form-login { padding: 18px; border: 2px solid var(--ink); border-radius: 18px; background: var(--surface); margin-bottom: 20px; }
@media (max-width: 900px) {
	form.checkout { grid-template-columns: 1fr; }
	#customer_details, form.checkout #order_review_heading, form.checkout .tag--ink, form.checkout #order_review { grid-column: 1; grid-row: auto; }
	#order_review { position: static; }
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { width: 100%; float: none; margin-left: 0; }
}

/* select2 */
.select2-container--default .select2-selection--single { height: auto; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; color: var(--ink); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 10px; }
.select2-dropdown { border: 2px solid var(--ink) !important; border-radius: 12px !important; overflow: hidden; }
.select2-results__option--highlighted { background: var(--mustard) !important; color: var(--ink) !important; }

/* ---------------------------------------------------------------- account, thank you */
.woocommerce-account .prose--woo .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 34px; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 2px solid var(--ink); border-radius: 18px; overflow: hidden; background: var(--surface); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; color: var(--ink); text-decoration: none; font-weight: 700; border-bottom: 1.5px dashed var(--line); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--mustard); }
.woocommerce-account:not(.logged-in) .prose--woo .woocommerce { display: block; max-width: 980px; }
.u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.u-columns .col-1, .u-columns .col-2 { background: var(--surface); border: 2px solid var(--ink); border-radius: 22px; padding: 24px; }
.u-columns h2 { font: 900 30px/1 var(--display); margin-top: 0; }
.woocommerce-order-overview { list-style: none; padding: 18px; margin: 0 0 24px; display: flex; flex-wrap: wrap; gap: 16px 30px; background: var(--surface); border: 2px solid var(--ink); border-radius: 18px; }
.woocommerce-order-overview li { font: 700 12px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.woocommerce-order-overview strong { display: block; font: 700 17px/1.3 var(--text); text-transform: none; letter-spacing: 0; }
.woocommerce-thankyou-order-received { font: 900 clamp(26px, 3vw, 40px)/1.1 var(--display); }
.woocommerce-customer-details address { font-style: normal; padding: 18px; border: 2px solid var(--ink); border-radius: 18px; background: var(--surface); }
@media (max-width: 760px) { .woocommerce-account .prose--woo .woocommerce, .u-columns { grid-template-columns: 1fr; } }

.wc-block-components-notice-banner svg { display: none; }
.u-columns .woocommerce-form-login, .u-columns .woocommerce-form-register { border: 0; padding: 0; margin: 0; background: none; border-radius: 0; }
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 34px; height: 34px; border: 0; background: none; padding: 0; cursor: pointer; }
.show-password-input::before { content: ""; display: block; width: 20px; height: 12px; margin: auto; border: 2px solid var(--ink2); border-radius: 50% / 60%; }
.show-password-input.display-password::before { background: radial-gradient(circle, var(--ink2) 3px, transparent 3.5px); }

