/* Explain: Base reset, global typography, and site-wide element styling. */
[x-cloak] {
    display: none !important;
}

* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
    color: var(--text-color);
    scroll-behavior: smooth;
}

body {
    margin: 0;
    min-width: 320px;
    overflow-x: hidden;
    background:
        radial-gradient(circle at top left, rgba(212, 175, 55, 0.14), transparent 34rem),
        linear-gradient(180deg, var(--background-color) 0%, #FBF3E8 100%);
    color: var(--text-color);
    font-family: var(--font-body);
    text-rendering: optimizeLegibility;
}

img,
video {
    display: block;
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
select,
textarea {
    font: inherit;
}

button,
a,
summary {
    -webkit-tap-highlight-color: transparent;
}

::selection {
    background: rgba(212, 175, 55, 0.36);
    color: var(--primary-color);
}

:focus-visible {
    outline: 3px solid rgba(212, 175, 55, 0.72);
    outline-offset: 3px;
}

.font-heading,
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-heading);
    font-weight: var(--font-weight-heading);
}

/* Keep titles at the design-system weight when a bolder utility is applied */
.font-heading.font-bold,
.font-heading.font-semibold,
.font-heading.font-extrabold,
.font-heading.font-black,
h1.font-bold,
h1.font-semibold,
h1.font-extrabold,
h1.font-black,
h2.font-bold,
h2.font-semibold,
h2.font-extrabold,
h2.font-black,
h3.font-bold,
h3.font-semibold,
h3.font-extrabold,
h3.font-black,
h4.font-bold,
h4.font-semibold,
h4.font-extrabold,
h4.font-black {
    font-weight: var(--font-weight-heading);
}

.editorial-kicker {
    color: var(--caramel-color);
    font-size: 0.78rem;
    font-weight: var(--font-weight-subtitle);
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.price-text {
    color: var(--primary-color);
    font-weight: 700;
}

details summary::-webkit-details-marker {
    display: none;
}

/* Transparent site header over hero sections */
body.has-hero .site-header {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    transition: background-color 300ms ease, box-shadow 300ms ease;
}

body.has-hero .site-header:not(.is-pinned) {
    background-color: transparent;
    box-shadow: none;
}

body.has-hero .site-header:not(.is-pinned) .site-topbar {
    background-color: transparent;
}

body.has-hero .site-header:not(.is-pinned) .nav-text,
body.has-hero .site-header:not(.is-pinned) .nav-icon {
    color: #FFFFFF;
}

body.has-hero .site-header:not(.is-pinned) .nav-text:hover,
body.has-hero .site-header:not(.is-pinned) .nav-icon:hover {
    color: var(--accent-color);
}

body.has-hero .site-header:not(.is-pinned) .site-logo img {
    filter: brightness(0) invert(1);
    mix-blend-mode: normal;
}

body.has-hero .site-header.is-pinned {
    position: fixed;
    background-color: var(--cream-color);
    box-shadow: 0 6px 24px rgba(43, 23, 14, 0.12);
}