/* Cookies — shared dark shell for secondary pages and public fallbacks.
 * Deliberately independent of homepage media layouts and interactions. */
body.ckny-public-shell {
	--ckny-bg: #050505;
	--ckny-ink: #f7f7f5;
	--ckny-panel: #0d0d0e;
	--ckny-card: #101012;
	--ckny-line: #303035;
	--ckny-line-soft: #232327;
	--ckny-muted: #b9bbc3;
	--ckny-blue-cta: #1fa9ff;
	--ckny-blue-deep: #9edaff;
	--ckny-blue-tint: #102734;
	margin: 0;
	padding-top: 0;
	background: var(--ckny-bg);
	color: var(--ckny-ink);
	font-family: var(--ckny-font);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	color-scheme: dark;
}
.ckny-public-shell img { max-width: 100%; height: auto; }
.ckny-public-shell .ckny-logo { height: 30px; width: auto; }
.ckny-public-shell .ckny-logo-footer { height: 38px; }
.ckny-public-shell .ckny-header { position: absolute; inset: 0 0 auto; background: transparent; border: 0; }
body.admin-bar.ckny-public-shell .ckny-header { top: 32px; }
.ckny-public-shell .ckny-announce { background: #00425e; color: #dff2fb; }
.ckny-public-shell .ckny-nav {
	width: min(calc(100% - 32px), 1180px);
	margin-top: 12px;
	padding: 12px 18px;
	background: rgba(6, 6, 7, .94);
	border: 1px solid rgba(255, 255, 255, .1);
	border-radius: 999px;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}
.ckny-public-shell .ckny-nav-cta { background: var(--ckny-blue-cta); color: #04131d !important; }
.ckny-public-shell .ckny-nav-cta:hover { background: #65c3ff; }
.ckny-public-shell .ckny-mobile-menu summary { border-color: #56565c; }
.ckny-public-shell .ckny-mobile-menu[open] summary { background: var(--ckny-blue-cta); color: #04131d; border-color: var(--ckny-blue-cta); }
.ckny-public-shell .ckny-mobile-menu-panel { background: #0d0d0f; border-color: #323237; box-shadow: 0 22px 50px rgba(0, 0, 0, .52); }
.ckny-public-shell .ckny-mobile-menu-panel > a { color: #fff; }
.ckny-public-shell .ckny-mobile-menu-panel > a:hover { background: #1a1a1d; }
.ckny-public-shell .ckny-mobile-menu-panel .ckny-nav-cta { color: #04131d !important; background: var(--ckny-blue-cta); }
.ckny-public-shell .ckny-footer { --ckny-footer-bg: #09090a; --ckny-footer-line: #232327; }
.ckny-public-shell .ckny-footer-market,
.ckny-public-shell .ckny-footer-fine,
.ckny-public-shell .ckny-footer-meta { color: var(--ckny-muted); }
.ckny-public-shell .ckny-button { min-height: 48px; font-size: 13px; font-weight: 800; letter-spacing: .04em; }
.ckny-public-shell .ckny-button-primary { background: var(--ckny-blue-cta); color: #04131d; }
.ckny-public-shell .ckny-button-primary:hover { background: #65c3ff; color: #04131d; }
.ckny-public-shell .ckny-button-ghost { background: transparent; color: #f7f7f5; border-color: #686870; }
.ckny-public-shell .ckny-button-ghost:hover { border-color: #fff; }
.ckny-public-shell :is(a, button, summary, input, select, textarea):focus-visible { outline: 3px solid #65c3ff; outline-offset: 4px; }
.ckny-public-shell .ckny-eyebrow { color: var(--ckny-blue-deep); font-size: 11px; letter-spacing: .14em; }

/* Public headings and prose — no dependence on an image hero. */
.ckny-public-hero {
	padding: clamp(170px, 17vw, 230px) 24px clamp(38px, 6vw, 76px);
	background: #050505;
	border-bottom: 1px solid var(--ckny-line-soft);
}
.ckny-public-hero .ckny-public-inner { width: min(100%, 1180px); margin: 0 auto; }
.ckny-public-hero h1 {
	max-width: 16ch;
	margin: 14px 0 0;
	font: 800 clamp(54px, 7.6vw, 112px)/.92 var(--ckny-display);
	letter-spacing: -.02em;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.ckny-public-hero .ckny-page-lede { max-width: 58ch; margin-top: 24px; color: #c4c5cc; font-size: clamp(15px, 1.4vw, 18px); }
.ckny-public-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.ckny-public-back { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; margin: -22px 0 22px; color: #c4c5cc; font-size: 13px; font-weight: 600; text-decoration: none; }
.ckny-public-back:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.ckny-public-content { padding: clamp(34px, 6vw, 80px) 24px; }
.ckny-public-content > :is(.ckny-public-inner, .ckny-prose) { width: min(100%, 820px); margin-inline: auto; }
.ckny-public-shell .ckny-prose { color: #d3d4da; font-size: 16px; overflow-wrap: anywhere; }
.ckny-public-shell .ckny-prose :is(h2, h3, h4) { color: #f7f7f5; line-height: 1.15; }
.ckny-public-shell .ckny-prose h2 { margin-top: 40px; font-size: clamp(28px, 4vw, 38px); }
.ckny-public-shell .ckny-prose > :first-child { margin-top: 0; }
.ckny-public-shell .ckny-prose :is(p, ul, ol) { margin-block: 0 24px; }
.ckny-public-shell .ckny-prose li + li { margin-top: 10px; }
.ckny-public-shell .ckny-prose a,
.ckny-public-text-link { color: #9edaff; text-decoration: underline; text-underline-offset: 4px; }
.ckny-public-text-link { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 14px; font-weight: 700; }
.ckny-public-shell .ckny-prose :is(table, pre) { display: block; max-width: 100%; overflow-x: auto; }
.ckny-public-shell .ckny-prose blockquote { margin-inline: 0; padding-left: 24px; border-left: 2px solid #65c3ff; }

/* Retail partnerships — quiet editorial divisions, clear form destinations. */
.ckny-public-shell .ckny-retailer-intro { padding-block: clamp(40px, 6vw, 76px); }
.ckny-public-shell .ckny-retailer-paths { gap: 0; border-block: 1px solid var(--ckny-line); }
.ckny-public-shell .ckny-retailer-paths article { min-width: 0; padding: 28px 0; border: 0; border-radius: 0; background: transparent; }
.ckny-public-shell .ckny-retailer-paths article + article { border-top: 1px solid var(--ckny-line); }
.ckny-public-shell .ckny-retailer-paths a { min-height: 44px; display: inline-flex; align-items: center; margin-top: 10px; font-size: 14px; }
.ckny-public-shell .ckny-retailer-process { background: #0a0a0b; }
.ckny-public-shell .ckny-retailer-process ol { border-radius: 0; }
.ckny-public-shell .ckny-retailer-process li { background: #0d0d0f; }
.ckny-public-shell .ckny-retailer-process span { color: #b9bbc3; }
.ckny-public-shell .ckny-retailer-form-head { margin-bottom: 34px; }
.ckny-public-shell .ckny-retailer-listing { background: #0a0a0b; }
.ckny-public-shell .ckny-form label,
.ckny-public-shell .ckny-checks legend { color: #d3d4da; }
.ckny-public-shell .ckny-form :is(input:not([type="checkbox"]), select, textarea),
.ckny-public-search input[type="search"] { background: #141416; border: 1px solid #65656e; color: #f7f7f5; }
.ckny-public-shell .ckny-form input::placeholder,
.ckny-public-shell .ckny-form textarea::placeholder,
.ckny-public-search input::placeholder { color: #aaaeb8; opacity: 1; }
.ckny-public-shell .ckny-form .ckny-consent,
.ckny-public-shell .ckny-form .ckny-checks label { color: #d3d4da; }
.ckny-public-shell .ckny-form-fine,
.ckny-public-shell .ckny-form-consent { color: #b9bbc3; }
.ckny-public-shell .ckny-form-fine a { color: #9edaff; text-decoration: underline; text-underline-offset: 3px; }
.ckny-public-shell .ckny-notice { width: 100%; }
.ckny-public-shell .ckny-notice-ok { color: #c4e8ff; background: #102734; border: 1px solid #406779; }
.ckny-public-shell .ckny-notice-err { color: #ffd8d8; background: #301b20; border: 1px solid #88585c; }

/* Store details — real information first, no stock badges or token-only map. */
.ckny-store-detail-grid { display: grid; gap: clamp(40px, 7vw, 110px); }
.ckny-store-contact > h2,
.ckny-store-before h2 { margin: 0 0 28px; font: 800 clamp(34px, 4.4vw, 54px)/1 var(--ckny-display); text-transform: uppercase; }
.ckny-store-address { padding: 24px 0; border-block: 1px solid var(--ckny-line); }
.ckny-store-address summary { display: grid; gap: 5px; min-height: 44px; cursor: pointer; list-style: none; }
.ckny-store-address summary::-webkit-details-marker { display: none; }
.ckny-store-address-text { font-size: 17px; color: #f7f7f5; overflow-wrap: anywhere; }
.ckny-store-address-prompt { display: inline-flex; align-items: center; gap: 12px; color: #9edaff; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.ckny-store-address-prompt > span { display: inline-block; }
.ckny-store-address[open] .ckny-store-address-prompt > span { transform: rotate(180deg); }
.ckny-store-map-choices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.ckny-store-map-choices a { display: inline-flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 44px; padding: 9px 14px; border: 1px solid #686870; border-radius: 6px; color: #f7f7f5; font-size: 14px; text-decoration: none; }
.ckny-store-map-choices a:hover { border-color: #9edaff; background: #111c23; }
.ckny-store-contact-row { padding: 24px 0; border-bottom: 1px solid var(--ckny-line); }
.ckny-store-contact-row .ckny-eyebrow { margin-bottom: 5px; }
.ckny-store-contact-row p { margin: 0; font-size: 16px; color: #d3d4da; }
.ckny-store-contact-row .ckny-store-hours { white-space: pre-line; }
.ckny-store-contact-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: #9edaff; font-size: 16px; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
.ckny-store-before { align-self: start; padding: 28px; background: #0d0d0f; border-top: 2px solid #65c3ff; }
.ckny-store-before h2 { margin: 12px 0 20px; }
.ckny-store-before > p:not(.ckny-eyebrow) { margin: 0 0 20px; color: #c4c5cc; font-size: 15px; }
.ckny-store-description { border-top: 1px solid var(--ckny-line-soft); }

/* Search and error templates can use the same shell and these primitives. */
.ckny-public-search { width: min(100%, 760px); margin-top: 28px; }
.ckny-public-search label { display: block; margin-bottom: 10px; font-size: 14px; font-weight: 700; }
.ckny-public-search > div { display: flex; align-items: stretch; gap: 10px; }
.ckny-public-search input[type="search"] { flex: 1; min-width: 0; min-height: 48px; padding: 12px 16px; border-radius: 8px; font: inherit; font-size: 16px; }
.ckny-public-results { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.ckny-public-result { padding: 28px 0; border-bottom: 1px solid var(--ckny-line); }
.ckny-public-result:first-child { border-top: 1px solid var(--ckny-line); }
.ckny-public-result :is(h2, h3) { margin: 0 0 12px; font: 700 clamp(30px, 4vw, 42px)/1.1 var(--ckny-display); }
.ckny-public-result :is(h2, h3) a { display: inline-block; min-height: 44px; color: #f7f7f5; text-decoration: none; }
.ckny-public-result :is(h2, h3) a:hover { color: #9edaff; }
.ckny-public-result p { color: #c4c5cc; margin: 0; }
.ckny-public-pagination { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.ckny-public-pagination a { display: inline-flex; align-items: center; min-height: 44px; color: #9edaff; }

/* The age-gate remains an intentional accessible light surface. */
.ckny-public-shell .ckny-agegate {
	--ckny-ink: #111111;
	--ckny-muted: #4f6470;
	--ckny-line: #c9e4f2;
	--ckny-line-soft: #e0f1f9;
	--ckny-blue-cta: #00425e;
	--ckny-blue-deep: #00425e;
	color-scheme: light;
}
.ckny-public-shell .ckny-agegate .ckny-button-primary { color: #fff; background: #00425e; }
.ckny-public-shell .ckny-agegate .ckny-button-primary:hover { background: #00354c; }
.ckny-public-shell .ckny-agegate .ckny-button-ghost { color: #00425e; background: #fff; border-color: #7896a6; }
.ckny-public-shell .ckny-agegate .ckny-logo-gate { height: 42px; width: auto; }

@media (min-width: 880px) {
	.ckny-public-shell .ckny-retailer-paths article { padding: 32px; }
	.ckny-public-shell .ckny-retailer-paths article:first-child { padding-left: 0; }
	.ckny-public-shell .ckny-retailer-paths article + article { border-top: 0; border-left: 1px solid var(--ckny-line); }
	.ckny-store-detail-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, .8fr); }
}
@media (max-width: 879.98px) {
	.ckny-public-shell .ckny-nav { width: calc(100% - 24px); padding: 12px 14px; }
	.ckny-public-shell .ckny-logo-footer { height: 32px; }
	.ckny-public-hero { padding: 156px 20px 38px; }
	.ckny-public-hero h1 { font-size: clamp(48px, 10vw, 76px); }
	.ckny-public-content { padding-inline: 20px; }
	.ckny-public-shell .ckny-prose { font-size: 15px; }
	.ckny-store-before { padding: 24px; }
}
@media (max-width: 782px) {
	body.admin-bar.ckny-public-shell .ckny-header { top: 46px; }
}
@media (max-width: 380px) {
	.ckny-public-actions { flex-direction: column; }
	.ckny-public-actions .ckny-button { width: 100%; }
	.ckny-public-search > div { flex-direction: column; }
	.ckny-store-map-choices { display: grid; }
}
