:root{color-scheme:light}*{box-sizing:border-box}body{margin:0}
/* Public runtime and preview */
.public-shell { min-height: 100vh; color: var(--foreground); background: var(--background); font-family: var(--body-font); font-size: var(--base-font-size); font-weight: var(--body-font-weight); line-height: var(--body-line-height); }
.site-intro { position: fixed; inset: 0; z-index: 1000; display: grid; place-content: center; gap: 1.15rem; padding: 2rem; color: var(--foreground, #18231f); background: var(--background, #f6f3eb); text-align: center; }
.site-intro > span { width: 4.5rem; height: 3px; justify-self: center; background: var(--accent, #c46d3c); transform-origin: left; animation: site-intro-line 1s ease both; }
.site-intro strong { max-width: 18ch; font-family: var(--heading-font, sans-serif); font-size: clamp(2rem, 7vw, 5rem); line-height: 1; letter-spacing: -.04em; }
.site-intro-page { display: block; overflow-y: auto; padding: 0; text-align: left; }
.site-intro-page-content { min-height: 100%; background: var(--background); }
.site-intro-page-content .block:first-child { min-height: 100vh; display: grid; align-items: center; }
.site-intro-enter-active, .site-intro-leave-active { transition: opacity .28s ease; }
.site-intro-enter-from, .site-intro-leave-to { opacity: 0; }
.site-transition-subtle > div:last-child { animation: site-enter-subtle .45s ease both; }
.site-transition-editorial > div:last-child { transform-origin: center top; animation: site-enter-editorial .65s cubic-bezier(.2,.8,.2,1) both; }
@keyframes site-intro-line { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes site-enter-subtle { from { opacity: 0; } to { opacity: 1; } }
@keyframes site-enter-editorial { from { opacity: 0; transform: translateY(1rem) scale(.99); } to { opacity: 1; transform: none; } }
.public-shell h1, .public-shell h2, .public-shell h3, .public-shell h4, .public-shell h5, .public-shell h6 { font-family: var(--heading-font); font-weight: var(--heading-font-weight); line-height: var(--heading-line-height); letter-spacing: var(--heading-letter-spacing); }
.public-nav { display: flex; align-items: center; justify-content: space-between; gap: var(--block-gap); padding: 1rem clamp(1rem, 5vw, 5rem); border-bottom: var(--border-width) solid var(--border-color); background: var(--surface); }
.public-nav nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.public-main { min-height: 70vh; }
.extension-block { --block-effective-text-scale: var(--block-text-scale, 1); display: var(--block-display, block); overflow: hidden; border: var(--block-border-width, 0) solid var(--block-border-color, var(--border-color)); border-radius: var(--block-radius, 0); color: var(--block-foreground, inherit); background: var(--block-background, transparent); background-color: var(--block-background-color, transparent); background-position: var(--block-background-position, center); background-repeat: no-repeat; background-size: var(--block-background-size, cover); box-shadow: var(--block-shadow, none); text-align: var(--block-text-align, left); }
.extension-block-callToAction { width: min(var(--block-content-width, var(--content-width)), calc(100% - 2rem)); margin: clamp(1rem, 3vw, 2.5rem) auto; }
.extension-block-callToAction .block-inner { width: 100%; }
.extension-block .block { font-size: calc(1em * var(--block-effective-text-scale)); }
@media (max-width: 980px) { .extension-block { --block-effective-text-scale: var(--block-tablet-text-scale, var(--block-text-scale, 1)); display: var(--block-tablet-display, var(--block-display, block)); text-align: var(--block-tablet-text-align, var(--block-text-align, left)); } .extension-block-callToAction { width: min(var(--block-tablet-content-width, var(--block-content-width)), calc(100% - 2rem)); } .extension-block .block { --block-content-width: var(--block-tablet-content-width); --block-padding: var(--block-tablet-padding); } }
@media (max-width: 700px) { .extension-block { --block-effective-text-scale: var(--block-mobile-text-scale, var(--block-tablet-text-scale, 1)); display: var(--block-mobile-display, var(--block-tablet-display, block)); text-align: var(--block-mobile-text-align, var(--block-tablet-text-align, left)); } .extension-block-callToAction { width: min(var(--block-mobile-content-width, var(--block-tablet-content-width)), calc(100% - 1.25rem)); } .extension-block .block { --block-content-width: var(--block-mobile-content-width); --block-padding: var(--block-mobile-padding); } }
.collection-public-main { width: min(860px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(3rem, 8vw, 7rem) 0; }
.collection-public-entry > header { border-bottom: 1px solid color-mix(in srgb, var(--foreground) 16%, transparent); margin-bottom: 2.5rem; padding-bottom: 2rem; }
.collection-public-entry > header h1 { max-width: 16ch; margin: .65rem 0 0; font-size: clamp(2.7rem, 8vw, 5.5rem); line-height: .98; letter-spacing: -.05em; }
.collection-public-field { margin-top: 2.25rem; }
.collection-public-field h2 { margin: 0 0 .7rem; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; opacity: .7; }
.collection-public-field p, .collection-public-field .rich-text-output { margin: 0; font-size: clamp(1.05rem, 2vw, 1.25rem); line-height: 1.7; }
.collection-public-field img { display: block; width: 100%; max-height: 620px; border-radius: var(--radius); object-fit: cover; }
.public-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: var(--border-width) solid var(--border-color); padding: 2rem clamp(1rem, 5vw, 5rem); background: var(--surface); }
.public-footer strong, .public-footer span { display: block; }
.public-footer span { margin-top: .25rem; color: var(--muted); font-size: .9em; }
.public-error { display: grid; min-height: 100vh; place-items: center; padding: 2rem; color: var(--habitat-ink); background: radial-gradient(circle at 80% 15%, #e6f7ee, transparent 35%), #f3f6f7; }
.public-error > div { width: min(600px, 100%); border: 1px solid var(--habitat-line); border-radius: 22px; padding: clamp(2rem, 7vw, 5rem); background: white; box-shadow: 0 20px 60px #17203b16; }
.public-error h1 { margin: .5rem 0 1rem; font-size: clamp(2.5rem, 8vw, 5rem); line-height: .95; letter-spacing: -.055em; }
.public-error p { max-width: 48ch; margin: 0 0 1.5rem; color: var(--habitat-muted); line-height: 1.65; }
.block-form form, .block-commerce form { display: grid; gap: .85rem; margin-top: 1.4rem; }
.block-form label, .block-commerce form label { display: grid; gap: .35rem; font-weight: 700; }
.block-form input, .block-form textarea, .block-form select, .block-commerce input, .block-commerce select, .block-site-search input, .collection-search input { width: 100%; min-height: 44px; border: 1px solid var(--border-color); border-radius: max(6px, calc(var(--radius) * .65)); padding: .7rem .8rem; color: var(--foreground); background: var(--surface); }
.block-form textarea { min-height: 130px; resize: vertical; }
.block-form .form-consent { display: flex; align-items: start; font-weight: 500; }
.block-form .form-consent input { width: 20px; min-height: 20px; flex: 0 0 20px; }
.privacy-banner { position: fixed; z-index: 1000; right: 1rem; bottom: 1rem; left: 1rem; display: flex; max-width: 72rem; align-items: center; justify-content: space-between; gap: 1.5rem; margin: 0 auto; border: 1px solid #cbd5e1; border-radius: 16px; padding: 1.2rem; color: #172033; background: #fff; box-shadow: 0 22px 70px rgba(15, 23, 42, .22); font-family: system-ui, sans-serif; }
.privacy-banner > div:first-child { display: grid; gap: .25rem; }
.privacy-banner strong { font-size: 1.05rem; }
.privacy-banner p, .privacy-banner small { margin: 0; color: #536079; line-height: 1.5; }
.privacy-banner a, .privacy-dialog a { color: #1d4ed8; }
.privacy-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.privacy-banner > .privacy-actions { display: grid; flex: 0 0 auto; grid-template-columns: repeat(3, max-content); }
.privacy-button { min-height: 44px; border: 1px solid #aab5c7; border-radius: 10px; padding: .65rem 1rem; color: #172033; background: #fff; font: 700 .9rem/1 system-ui, sans-serif; cursor: pointer; }
.privacy-button.primary-choice { border-color: #17213f; color: #fff; background: #17213f; }
.privacy-button:focus-visible, .privacy-reopen:focus-visible, .privacy-close:focus-visible { outline: 3px solid #2563eb; outline-offset: 3px; }
.privacy-reopen { position: fixed; z-index: 900; bottom: 1rem; left: 1rem; min-height: 42px; border: 1px solid #cbd5e1; border-radius: 999px; padding: .55rem .9rem; color: #172033; background: #fff; box-shadow: 0 8px 30px rgba(15, 23, 42, .14); font: 700 .78rem/1 system-ui, sans-serif; cursor: pointer; }
.privacy-dialog { width: min(42rem, calc(100% - 2rem)); max-height: calc(100vh - 2rem); border: 0; border-radius: 18px; padding: 0; color: #172033; background: #fff; box-shadow: 0 28px 90px rgba(15, 23, 42, .3); font-family: system-ui, sans-serif; }
.privacy-dialog::backdrop { background: rgba(15, 23, 42, .55); backdrop-filter: blur(3px); }
.privacy-dialog form { display: grid; gap: 0; margin: 0; padding: 1.4rem; }
.privacy-dialog header { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.privacy-dialog h2 { margin: .2rem 0 .35rem; font: 750 1.5rem/1.15 system-ui, sans-serif; }
.privacy-dialog header p { margin: 0; color: #536079; line-height: 1.5; }
.privacy-eyebrow { color: #2563eb; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.privacy-close { width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid #d5dce8; border-radius: 10px; color: #172033; background: #fff; font-size: 1.5rem; cursor: pointer; }
.privacy-category { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-top: 1px solid #e2e8f0; padding: 1rem 0; cursor: pointer; }
.privacy-category > span { display: grid; gap: .2rem; }
.privacy-category small { color: #536079; line-height: 1.45; }
.privacy-category input { width: 22px; height: 22px; flex: 0 0 22px; accent-color: #2563eb; }
.privacy-category.required { cursor: default; }
.privacy-dialog details { border-top: 1px solid #e2e8f0; padding: 1rem 0; }
.privacy-dialog details summary { cursor: pointer; font-weight: 700; }
.privacy-dialog details ul { margin: .7rem 0 0; color: #536079; }
.privacy-policy-links { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 1rem; font-size: .85rem; }
@media (max-width: 900px) { .privacy-banner { align-items: stretch; flex-direction: column; } .privacy-banner .privacy-actions, .privacy-dialog .privacy-actions { display: grid; grid-template-columns: 1fr; } .privacy-button { width: 100%; } }
