/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme, base, components, utilities;
@layer theme {
  :root, :host {
    --font-sans: "Raleway Variable", "Raleway", sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
      "Courier New", monospace;
    --default-transition-duration: 150ms;
    --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
    --color-oxblood: #4c020e;
    --color-crimson: #81021f;
    --color-rose: #cf4357;
    --color-coral: #fd6943;
    --color-gold: #dd9934;
    --color-olive: #6b6a39;
    --color-cream: #fef1d6;
    --font-display: "Bodoni Moda Variable", "Bodoni Moda", serif;
    --font-script: "Allura", cursive;
  }
}
@layer base {
  *, ::after, ::before, ::backdrop, ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html, :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1, h2, h3, h4, h5, h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b, strong {
    font-weight: bolder;
  }
  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub, sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring:where(:not(iframe)) {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol, ul, menu {
    list-style: none;
  }
  img, svg, video, canvas, audio, iframe, embed, object {
    display: block;
    vertical-align: middle;
  }
  img, video {
    max-width: 100%;
    height: auto;
  }
  button, input, select, optgroup, textarea, ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button))  or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: currentcolor;
      @supports (color: color-mix(in lab, red, red)) {
        color: color-mix(in oklab, currentcolor 50%, transparent);
      }
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden="until-found"])) {
    display: none !important;
  }
}
@layer utilities {
  .visible {
    visibility: visible;
  }
  .relative {
    position: relative;
  }
  .static {
    position: static;
  }
  .sticky {
    position: sticky;
  }
  .container {
    width: 100%;
    @media (width >= 40rem) {
      max-width: 40rem;
    }
    @media (width >= 48rem) {
      max-width: 48rem;
    }
    @media (width >= 64rem) {
      max-width: 64rem;
    }
    @media (width >= 80rem) {
      max-width: 80rem;
    }
    @media (width >= 96rem) {
      max-width: 96rem;
    }
  }
  .block {
    display: block;
  }
  .grid {
    display: grid;
  }
  .hidden {
    display: none;
  }
  .transform {
    transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
  }
  .border {
    border-style: var(--tw-border-style);
    border-width: 1px;
  }
  .italic {
    font-style: italic;
  }
  .ordinal {
    --tw-ordinal: ordinal;
    font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
  }
  .shadow {
    --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
    box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
  }
  .outline {
    outline-style: var(--tw-outline-style);
    outline-width: 1px;
  }
  .filter {
    filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
  }
  .transition {
    transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
    transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
    transition-duration: var(--tw-duration, var(--default-transition-duration));
  }
}
:root {
  --font-hero: var(--font-display);
  --font-title: var(--font-display);
  --font-sub: var(--font-display);
  --font-number: var(--font-display);
  --font-quote: var(--font-display);
  --font-verse: var(--font-display);
  --font-body: var(--font-sans);
  --font-label: var(--font-sans);
}
@layer base {
  [data-tone] {
    background-color: var(--bg);
    color: var(--fg);
  }
  [data-tone="cream"] {
    --bg: var(--color-cream);
    --fg: var(--color-oxblood);
    --muted: var(--color-olive);
    --heading: var(--color-crimson);
    --accent: var(--color-rose);
    --rule: rgb(76 2 14 / 0.18);
    --rule-strong: rgb(76 2 14 / 0.32);
    --focus: var(--color-crimson);
  }
  [data-tone="oxblood"] {
    --bg: var(--color-oxblood);
    --fg: var(--color-cream);
    --muted: rgb(254 241 214 / 0.72);
    --heading: var(--color-coral);
    --accent: var(--color-gold);
    --rule: rgb(254 241 214 / 0.22);
    --rule-strong: rgb(254 241 214 / 0.4);
    --focus: var(--color-gold);
  }
  [data-tone="crimson"] {
    --bg: var(--color-crimson);
    --fg: var(--color-cream);
    --muted: rgb(254 241 214 / 0.75);
    --heading: var(--color-coral);
    --accent: var(--color-gold);
    --rule: rgb(254 241 214 / 0.25);
    --rule-strong: rgb(254 241 214 / 0.42);
    --focus: var(--color-gold);
  }
  [data-tone="olive"] {
    --bg: var(--color-olive);
    --fg: var(--color-cream);
    --muted: rgb(254 241 214 / 0.92);
    --heading: var(--color-cream);
    --accent: var(--color-gold);
    --rule: rgb(254 241 214 / 0.3);
    --rule-strong: rgb(254 241 214 / 0.48);
    --focus: var(--color-cream);
  }
  [data-tone="gold"] {
    --bg: var(--color-gold);
    --fg: var(--color-oxblood);
    --muted: rgb(76 2 14 / 0.82);
    --heading: var(--color-oxblood);
    --accent: var(--color-crimson);
    --rule: rgb(76 2 14 / 0.25);
    --rule-strong: rgb(76 2 14 / 0.42);
    --focus: var(--color-oxblood);
  }
  :root {
    --gutter: clamp(1.25rem, 4vw, 4rem);
    --rail: 2.5rem;
    --nav-h: 4rem;
    --section-py: clamp(4.5rem, 10vh, 8.5rem);
    --measure: 62ch;
    scroll-behavior: smooth;
  }
  @media (min-width: 64rem) {
    :root {
      --rail: 5rem;
      --nav-h: 4.75rem;
    }
  }
  html {
    -webkit-text-size-adjust: 100%;
  }
  body {
    margin: 0;
    background-color: var(--color-oxblood);
    color: var(--color-cream);
    font-family: var(--font-body);
    font-size: 1.0625rem;
    line-height: 1.7;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    overflow-x: hidden;
  }
  body[data-menu-open="true"] {
    overflow: hidden;
  }
  h1, h2, h3 {
    font-family: var(--font-title);
    font-optical-sizing: auto;
    font-weight: 400;
    margin: 0;
    text-wrap: balance;
  }
  p {
    margin: 0;
  }
  a {
    color: inherit;
    text-decoration: none;
  }
  ul, ol {
    margin: 0;
    padding: 0;
    list-style: none;
  }
  img, svg {
    display: block;
    max-width: 100%;
  }
  button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    cursor: pointer;
  }
  :focus-visible {
    outline: 2px solid var(--focus, var(--color-gold));
    outline-offset: 2px;
    border-radius: 1px;
  }
  ::selection {
    background: var(--color-coral);
    color: var(--color-oxblood);
  }
  @media (prefers-reduced-motion: reduce) {
    :root {
      scroll-behavior: auto;
    }
    *, *::before, *::after {
      animation-duration: 0.001ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.001ms !important;
      scroll-behavior: auto !important;
    }
  }
}
@layer components {
  .t-hero {
    font-family: var(--font-hero);
    font-optical-sizing: auto;
    font-size: clamp(3.2rem, 11vw, 9rem);
    line-height: 0.92;
    letter-spacing: -0.02em;
    font-weight: 400;
  }
  .t-title {
    font-family: var(--font-title);
    font-optical-sizing: auto;
    font-size: clamp(2.4rem, 6vw, 5rem);
    line-height: 1.02;
    letter-spacing: -0.015em;
    font-weight: 400;
  }
  [data-tone="oxblood"] .t-title, [data-tone="crimson"] .t-title, [data-tone="olive"] .t-title {
    font-weight: 500;
  }
  .t-sub {
    font-family: var(--font-sub);
    font-optical-sizing: auto;
    font-size: clamp(1.5rem, 2.5vw, 2.25rem);
    line-height: 1.15;
    font-weight: 500;
  }
  .t-script {
    font-family: var(--font-script);
    font-size: clamp(2.2rem, 6vw, 5rem);
    line-height: 1.15;
    font-weight: 400;
    letter-spacing: normal;
    text-transform: none;
  }
  .t-stat {
    font-family: var(--font-number);
    font-optical-sizing: auto;
    font-size: clamp(3rem, 7vw, 6rem);
    line-height: 0.9;
    font-weight: 500;
    font-variant-numeric: lining-nums tabular-nums;
    color: var(--accent);
  }
  .t-quote {
    font-family: var(--font-quote);
    font-optical-sizing: auto;
    font-size: clamp(2rem, 3.4vw, 3rem);
    line-height: 1.18;
    font-weight: 400;
    font-style: italic;
    color: var(--heading);
    text-wrap: balance;
  }
  .t-body {
    font-size: 1.0625rem;
    line-height: 1.7;
    max-width: var(--measure);
  }
  .t-lede {
    font-size: clamp(1.125rem, 1.6vw, 1.375rem);
    line-height: 1.6;
    max-width: 46ch;
    color: var(--muted);
  }
  .t-eyebrow {
    font-family: var(--font-label);
    font-size: 0.75rem;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    line-height: 1.2;
  }
  .t-label {
    font-family: var(--font-label);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
  }
  .t-micro {
    font-family: var(--font-label);
    font-size: 0.6875rem;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    line-height: 1.4;
  }
  .eyebrow {
    color: var(--muted);
  }
  [data-tone="oxblood"] .eyebrow--accent {
    color: var(--accent);
  }
  .container {
    width: 100%;
    max-width: 88rem;
    margin-inline: auto;
    padding-inline: var(--gutter);
  }
  .section {
    position: relative;
    padding-block: var(--section-py);
    scroll-margin-top: var(--nav-h);
    isolation: isolate;
  }
  .section[data-seam="true"] {
    padding-top: calc(var(--section-py) * 0.55);
  }
  .section[data-seam="true"]::before {
    content: "";
    position: absolute;
    top: 0;
    left: var(--gutter);
    right: var(--gutter);
    height: 1px;
    background: var(--rule);
  }
  .section__body {
    padding-left: var(--rail);
  }
  .rail {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
  }
  .rail__inner {
    position: relative;
    height: 100%;
  }
  .rail__line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--gutter);
    width: 0;
    border-left: 1px dashed var(--rule);
  }
  .rail[data-terminal="true"] .rail__line {
    bottom: var(--section-py);
  }
  .rail__stamp {
    position: absolute;
    left: var(--gutter);
    top: var(--section-py);
    transform: translate(-50%, -50%);
  }
  .section[data-seam="true"] .rail__stamp {
    top: calc(var(--section-py) * 0.55);
  }
  .stamp {
    --stamp-size: 2.25rem;
    width: var(--stamp-size);
    height: var(--stamp-size);
    display: grid;
    place-items: center;
    padding: 0.5rem;
    border-radius: 50%;
    background: var(--bg);
    box-shadow: 0 0 0 1px var(--rule-strong);
    opacity: 0;
    transform: scale(1.16) rotate(-9deg);
    transition: opacity 420ms ease-out, transform 720ms cubic-bezier(0.16, 1, 0.3, 1);
  }
  @media (min-width: 64rem) {
    .stamp {
      --stamp-size: 3.25rem;
      padding: 0.6rem;
    }
  }
  .stamp[data-pressed="true"] {
    opacity: 1;
    transform: scale(1) rotate(-2.5deg);
  }
  .stamp::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background-color: var(--accent);
    opacity: 0.9;
    -webkit-mask: var(--stamp-src) center / contain no-repeat;
    mask: var(--stamp-src) center / contain no-repeat;
  }
  @media (prefers-reduced-motion: reduce) {
    .stamp {
      opacity: 1;
      transform: rotate(-2.5deg);
    }
  }
  .rule {
    position: relative;
    height: 1px;
    border: 0;
    margin: 0;
    background: var(--rule);
  }
  .rule::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 7px;
    height: 7px;
    background: var(--accent);
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .rule--plain::after {
    display: none;
  }
  .rule--start::after {
    left: 0;
  }
  .frame {
    position: relative;
  }
  .frame::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid var(--rule-strong);
    pointer-events: none;
    z-index: 2;
  }
  .frame::after {
    content: "";
    position: absolute;
    inset: 8px -8px -8px 8px;
    border: 1px solid var(--rule);
    pointer-events: none;
    z-index: 1;
  }
  .frame > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(0.92) sepia(0.06);
  }
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 1rem 1.75rem;
    border: 1px solid transparent;
    font-family: var(--font-label);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    line-height: 1;
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, transform 200ms ease;
  }
  .btn:hover {
    transform: translateY(-2px);
  }
  .btn--solid {
    background: var(--btn-bg, var(--color-coral));
    color: var(--btn-fg, var(--color-oxblood));
  }
  .btn--solid:hover {
    background: var(--color-gold);
  }
  .btn--ghost {
    border-color: var(--rule-strong);
    color: var(--fg);
  }
  .btn--ghost:hover {
    border-color: var(--fg);
    background: var(--fg);
    color: var(--bg);
  }
  .btn--quiet {
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--rule-strong);
    padding-bottom: 0.35rem;
    color: var(--fg);
  }
  .btn--quiet:hover {
    border-color: var(--fg);
    transform: none;
  }
  .link-underline {
    box-shadow: inset 0 -1px 0 var(--rule-strong);
    transition: box-shadow 200ms ease;
  }
  .link-underline:hover {
    box-shadow: inset 0 -1px 0 currentColor;
  }
  .grain {
    position: fixed;
    inset: 0;
    z-index: 80;
    pointer-events: none;
    opacity: var(--grain-opacity, 0.15);
    mix-blend-mode: overlay;
    background-image: var(--grain-src);
    background-size: 220px 220px;
  }
}
@layer utilities {
  .skip-link {
    position: absolute;
    left: 1rem;
    top: 1rem;
    z-index: 100;
    transform: translateY(-200%);
    background: var(--color-cream);
    color: var(--color-oxblood);
    padding: 0.75rem 1.25rem;
    transition: transform 160ms ease;
  }
  .skip-link:focus-visible {
    transform: translateY(0);
  }
  .visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
}
@layer components {
  .nav {
    position: fixed;
    top: 0;
    inset-inline: 0;
    z-index: 70;
    transition: background-color 260ms ease, color 260ms ease, box-shadow 260ms ease;
  }
  .nav[data-solid="false"] {
    background-color: transparent;
  }
  .nav[data-solid="true"] {
    box-shadow: 0 1px 0 rgb(76 2 14 / 0.14);
  }
  .nav__bar {
    height: var(--nav-h);
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2vw, 2rem);
  }
  .nav__wordmark {
    margin-right: auto;
    font-family: var(--font-title);
    font-optical-sizing: auto;
    font-weight: 500;
    font-size: clamp(1rem, 1.5vw, 1.2rem);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .nav__links {
    display: none;
  }
  .nav__links ul {
    display: flex;
    gap: clamp(1.25rem, 2.4vw, 2.25rem);
  }
  .nav__link {
    position: relative;
    display: inline-block;
    padding-block: 0.45rem;
    color: var(--muted);
    transition: color 200ms ease;
  }
  .nav__link:hover, .nav__link[aria-current="true"] {
    color: var(--fg);
  }
  .nav__link[aria-current="true"]::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: 0;
    height: 1px;
    background: var(--heading);
  }
  .nav__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }
  .nav__cta {
    padding: 0.7rem 1.15rem;
  }
  .nav__cta:hover {
    transform: none;
  }
  .nav__toggle {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem;
    margin-right: -0.5rem;
  }
  @media (min-width: 64rem) {
    .nav__links {
      display: block;
    }
    .nav__toggle {
      display: none;
    }
  }
  .nav__panel {
    position: fixed;
    inset: 0;
    z-index: 65;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(2rem, 6vh, 3.5rem);
    padding: calc(var(--nav-h) + 2rem) var(--gutter) 2rem;
  }
  .nav__panel[hidden] {
    display: none;
  }
  @media (min-width: 64rem) {
    .nav__panel {
      display: none;
    }
  }
  .nav__panel-list {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
  }
  .nav__panel-link {
    display: inline-block;
    color: var(--heading);
  }
  .nav__panel-cta {
    align-self: flex-start;
  }
  .hero {
    position: relative;
    min-height: 100svh;
    display: flex;
    overflow: hidden;
    padding-top: calc(var(--nav-h) + clamp(2rem, 6vh, 4rem));
    padding-bottom: clamp(2rem, 5vh, 3.5rem);
    scroll-margin-top: 0;
  }
  .hero__container {
    display: flex;
    flex-direction: column;
    gap: clamp(1.75rem, 5vh, 3.25rem);
  }
  .hero__top {
    display: flex;
    align-items: baseline;
    gap: 1.25rem;
    flex-wrap: wrap;
  }
  .hero__ordinal {
    color: var(--muted);
  }
  .hero__main {
    flex: 1;
    display: grid;
    gap: clamp(2rem, 4vw, 3rem);
    align-items: end;
  }
  @media (min-width: 64rem) {
    .hero__main {
      grid-template-columns: minmax(0, 1fr) 17rem;
    }
  }
  .hero__type {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: clamp(1rem, 2.5vh, 1.75rem);
  }
  .hero__signature {
    display: block;
    color: var(--accent);
    font-size: clamp(2.2rem, 4vw, 3.4rem);
    line-height: 1;
    margin-bottom: -0.35em;
  }
  .hero__title {
    display: flex;
    flex-direction: column;
    color: var(--heading);
  }
  .hero__line {
    display: block;
  }
  .hero__line--alt {
    font-style: italic;
    padding-left: 0.07em;
  }
  .hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
  }
  .hero__figure {
    display: none;
  }
  @media (min-width: 64rem) {
    .hero__figure {
      display: block;
      align-self: end;
      justify-self: end;
      width: 17rem;
    }
  }
  .hero__countdown {
    border-top: 1px solid var(--rule);
    padding-top: clamp(1rem, 2.5vh, 1.6rem);
  }
  .countdown {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: clamp(0.9rem, 3vw, 1.9rem);
  }
  .countdown__unit {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
  }
  .countdown__value {
    font-family: var(--font-number);
    font-optical-sizing: auto;
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 500;
    line-height: 1;
    color: var(--accent);
    font-variant-numeric: lining-nums tabular-nums;
  }
  .countdown__label {
    color: var(--muted);
  }
  .countdown__dot {
    width: 5px;
    height: 5px;
    background: var(--rule-strong);
    transform: rotate(45deg);
  }
  .countdown--message {
    color: var(--accent);
    letter-spacing: 0.14em;
  }
  .section__head {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin-bottom: clamp(2.5rem, 6vh, 4.5rem);
  }
  .section__lede {
    margin-top: 0.25rem;
  }
  .about__grid {
    display: grid;
    gap: clamp(2rem, 4vw, 4rem);
  }
  @media (min-width: 64rem) {
    .about__grid {
      grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
    }
  }
  .about__aside {
    display: flex;
    flex-direction: column;
    gap: clamp(1.5rem, 3vw, 2.5rem);
  }
  .about__figure {
    width: min(100%, 20rem);
  }
  .about__body {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
  }
  .verses {
    margin-top: clamp(3rem, 8vh, 6rem);
    border-top: 1px solid var(--rule);
  }
  .verses__item {
    border-bottom: 1px solid var(--rule);
  }
  .verses__text {
    display: block;
    font-family: var(--font-verse);
    font-optical-sizing: auto;
    font-size: clamp(1.3rem, 2.9vw, 2.4rem);
    line-height: 1.25;
    font-weight: 400;
    color: var(--heading);
    padding-block: clamp(0.7rem, 1.8vh, 1.15rem);
    text-wrap: balance;
  }
  .days {
    display: grid;
    border-top: 1px solid var(--rule);
  }
  @media (min-width: 64rem) {
    .days {
      grid-template-columns: repeat(var(--day-count, 3), minmax(0, 1fr));
    }
  }
  .days__cell {
    position: relative;
    border-bottom: 1px solid var(--rule);
    display: flex;
  }
  @media (min-width: 64rem) {
    .days__cell {
      border-bottom: 0;
      border-left: 1px solid var(--rule);
    }
    .days__cell:first-child {
      border-left: 0;
    }
    .days__cell:not(:first-child)::before {
      content: "";
      position: absolute;
      left: 0;
      top: 50%;
      width: 7px;
      height: 7px;
      background: var(--accent);
      transform: translate(-50%, -50%) rotate(45deg);
      z-index: 1;
    }
  }
  .day {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: clamp(0.9rem, 2vw, 1.35rem);
    padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.1rem, 2vw, 2rem);
    transition: background-color 200ms ease;
  }
  .days__cell:hover .day {
    background: rgb(254 241 214 / 0.045);
  }
  .day__date {
    font-family: var(--font-title);
    font-optical-sizing: auto;
    font-size: clamp(2rem, 2.4vw, 2.4rem);
    font-weight: 500;
    line-height: 1.05;
    color: var(--heading);
  }
  .day__theme {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--fg);
  }
  .day__diamond {
    flex: none;
    width: 6px;
    height: 6px;
    background: var(--accent);
    transform: rotate(45deg);
  }
  .day__stats {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: clamp(1.25rem, 2.5vw, 2rem);
  }
  .day__stats--dense {
    gap: 1rem;
  }
  .stat {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
  }
  .stat__label {
    color: var(--muted);
  }
  .day__text {
    color: var(--fg);
  }
  .day__evening {
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--rule);
    color: var(--fg);
  }
  .day__schedule {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rule);
  }
  .day__schedule-row {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: 0.75rem;
    align-items: baseline;
  }
  .day__schedule-time {
    color: var(--muted);
  }
  .day__schedule-body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
  }
  .day__schedule-place {
    color: var(--muted);
  }
  .beyond {
    display: grid;
    gap: clamp(2rem, 4vw, 3rem);
  }
  @media (min-width: 48rem) {
    .beyond {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }
  }
  .beyond__item {
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
  }
  .beyond__figure {
    width: min(100%, 17.5rem);
  }
  .beyond__title {
    color: var(--heading);
  }
  .gallery {
    display: grid;
    gap: clamp(1rem, 2.5vw, 2rem);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
  }
  .gallery__cell--1 {
    grid-column: span 2;
  }
  @media (min-width: 64rem) {
    .gallery {
      grid-template-columns: repeat(12, minmax(0, 1fr));
    }
    .gallery__cell--1 {
      grid-column: 1 / span 4;
    }
    .gallery__cell--2 {
      grid-column: 5 / span 3;
      margin-top: 4rem;
    }
    .gallery__cell--3 {
      grid-column: 8 / span 3;
    }
    .gallery__cell--4 {
      grid-column: 2 / span 3;
    }
    .gallery__cell--5 {
      grid-column: 6 / span 4;
      margin-top: 3rem;
    }
    .gallery__cell--6 {
      grid-column: 10 / span 3;
    }
  }
  .gallery__quote-wrap {
    margin-block: clamp(3rem, 7vh, 5rem);
    margin-inline: auto;
    max-width: 32ch;
    text-align: center;
  }
  .steps {
    display: grid;
  }
  @media (min-width: 48rem) {
    .steps {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (min-width: 64rem) {
    .steps {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .steps__item {
    border-top: 1px solid var(--rule);
  }
  .steps__inner {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    padding: clamp(1.4rem, 3vw, 1.9rem) clamp(1rem, 2vw, 1.5rem) clamp(2rem, 4vw, 2.75rem) 0;
  }
  .steps__number {
    font-family: var(--font-number);
    font-optical-sizing: auto;
    font-size: clamp(3rem, 5vw, 4.5rem);
    line-height: 0.85;
    font-weight: 400;
    color: var(--accent);
  }
  .steps__title {
    color: var(--heading);
  }
  .steps__text[data-pending="true"] {
    color: var(--muted);
    font-style: italic;
  }
  .steps__note {
    margin-top: clamp(2rem, 5vh, 3.5rem);
    padding-top: 1.5rem;
    border-top: 1px solid var(--rule);
    max-width: 62ch;
  }
  .map {
    position: relative;
    margin-inline: auto;
    max-width: 58rem;
  }
  .map__svg {
    width: 100%;
    height: auto;
  }
  .map__wall {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1.5;
    stroke-linejoin: miter;
  }
  .map__square {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1;
    opacity: 0.55;
  }
  .map__streets path {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1;
    stroke-linecap: round;
    opacity: 0.5;
  }
  .map__stairway {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1.25;
    stroke-dasharray: 5 6;
    stroke-linecap: round;
    opacity: 0.7;
  }
  .map__towers rect {
    fill: var(--bg);
    stroke: var(--fg);
    stroke-width: 1.5;
  }
  .map__landmark path {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1.5;
    stroke-linejoin: round;
  }
  .map__landmark circle {
    fill: none;
    stroke: var(--fg);
    stroke-width: 1.25;
  }
  .map__landmark--minor {
    opacity: 0.55;
  }
  .map__points {
    position: absolute;
    inset: 0;
  }
  .map__point {
    position: absolute;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    transform: translate(-50%, -50%);
  }
  .map__dot {
    flex: none;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--accent);
    box-shadow: 0 0 0 3px var(--bg);
  }
  .map__name {
    white-space: nowrap;
    background: var(--bg);
    padding-inline: 0.25rem;
  }
  .route__empty {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.5rem;
    margin-top: clamp(2rem, 4vh, 3rem);
    max-width: 44ch;
  }
  .legend {
    display: grid;
    gap: 2rem;
    margin-top: clamp(2.5rem, 5vh, 4rem);
  }
  @media (min-width: 48rem) {
    .legend {
      grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    }
  }
  .legend__label {
    color: var(--muted);
    padding-bottom: 0.5rem;
    margin-bottom: 0.75rem;
    border-bottom: 1px solid var(--rule);
  }
  .legend__entry {
    padding-block: 0.3rem;
  }
  .legend__note {
    display: block;
    color: var(--muted);
  }
  .tiers {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
  }
  .tiers > li {
    display: flex;
  }
  @media (min-width: 40rem) {
    .tiers {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }
  @media (min-width: 72rem) {
    .tiers {
      grid-template-columns: repeat(4, minmax(0, 1fr));
    }
  }
  .tier {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding: clamp(1.5rem, 2.5vw, 2rem);
    border: 1px solid var(--color-gold);
    transition: background-color 200ms ease;
  }
  .tier:hover {
    background: rgb(221 153 52 / 0.08);
  }
  .tier__name {
    font-family: var(--font-sub);
    font-optical-sizing: auto;
    font-size: clamp(1.5rem, 2vw, 1.85rem);
    font-weight: 500;
    line-height: 1.1;
    color: var(--heading);
  }
  .tier__subtitle {
    margin-top: 0.5rem;
    color: var(--muted);
  }
  .tier__details {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    margin-top: auto;
  }
  .tier__detail {
    display: flex;
    align-items: baseline;
    gap: 0.65rem;
    font-size: 0.95rem;
    line-height: 1.5;
  }
  .tier__bullet {
    flex: none;
    width: 5px;
    height: 5px;
    background: var(--accent);
    transform: rotate(45deg);
  }
  .tier__cta {
    width: 100%;
  }
  .tiers__note {
    margin-top: clamp(1.5rem, 3vh, 2.5rem);
    color: var(--muted);
  }
  .faq {
    max-width: 56rem;
  }
  .accordion__item {
    border-top: 1px solid var(--rule);
  }
  .accordion__item:last-child {
    border-bottom: 1px solid var(--rule);
  }
  .accordion__heading {
    margin: 0;
    font: inherit;
  }
  .accordion__trigger {
    display: flex;
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1.5rem;
    padding-block: clamp(1.05rem, 2.2vh, 1.5rem);
    text-align: left;
  }
  .accordion__question {
    color: var(--heading);
    transition: color 200ms ease;
  }
  .accordion__trigger:hover .accordion__question {
    color: var(--fg);
  }
  .accordion__icon {
    flex: none;
    margin-top: 0.4rem;
    color: var(--heading);
  }
  .accordion__panel-inner {
    padding-bottom: clamp(1.05rem, 2.2vh, 1.5rem);
  }
  .partners {
    --section-py: clamp(2.5rem, 6vh, 4rem);
  }
  .partners__grid {
    display: flex;
    flex-wrap: wrap;
    gap: clamp(1.75rem, 4vw, 4.5rem);
  }
  .partners__group {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }
  .partners__label {
    color: var(--muted);
  }
  .partners__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: clamp(1rem, 2.5vw, 2rem);
  }
  .partners__name {
    font-family: var(--font-sub);
    font-optical-sizing: auto;
    font-size: clamp(1.05rem, 1.5vw, 1.35rem);
    font-weight: 500;
  }
  .partners__logo {
    height: auto;
    width: auto;
    max-height: 4.25rem;
    max-width: 11rem;
    object-fit: contain;
    transition: transform 200ms ease;
  }
  .partners__link:hover .partners__logo {
    transform: translateY(-2px);
  }
  .frame {
    margin: 0;
  }
  .placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    background: var(--fg);
    @supports (color: color-mix(in lab, red, red)) {
      background: color-mix(in oklab, var(--fg) 5%, transparent);
    }
  }
  .placeholder__mark {
    width: 12px;
    height: 12px;
    background: var(--rule-strong);
    transform: rotate(45deg);
  }
  .placeholder__label {
    color: var(--muted);
    text-align: center;
    padding-inline: 1rem;
  }
  .footer {
    padding-block: clamp(3.5rem, 8vh, 6rem) clamp(1.75rem, 4vh, 3rem);
  }
  .footer__lockup {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: clamp(0.5rem, 2vw, 1.5rem);
  }
  .footer__wordmark {
    font-family: var(--font-title);
    font-optical-sizing: auto;
    font-size: clamp(2.5rem, 8vw, 6rem);
    font-weight: 400;
    line-height: 0.95;
    letter-spacing: -0.005em;
    text-transform: uppercase;
    color: var(--heading);
  }
  .footer__script {
    color: var(--accent);
    font-size: clamp(2.2rem, 4.5vw, 3.25rem);
  }
  .footer__grid {
    display: grid;
    gap: clamp(2rem, 4vw, 3rem);
    margin-top: clamp(2.5rem, 6vh, 4rem);
  }
  @media (min-width: 48rem) {
    .footer__grid {
      grid-template-columns: minmax(0, 1.4fr) auto auto;
    }
  }
  .footer__note {
    color: var(--muted);
  }
  .footer__nav ul {
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
  }
  .footer__contact {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
  }
  .footer__contact-link {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem;
  }
  .footer__contact-label {
    color: var(--muted);
  }
  .footer__base {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1rem;
    margin-top: clamp(2.5rem, 6vh, 4rem);
    padding-top: 1.25rem;
    border-top: 1px solid var(--rule);
  }
  .footer__copyright {
    color: var(--muted);
  }
  .footer__top {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
  }
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-border-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-ordinal {
  syntax: "*";
  inherits: false;
}
@property --tw-slashed-zero {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-figure {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-spacing {
  syntax: "*";
  inherits: false;
}
@property --tw-numeric-fraction {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-inset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-inset-ring-color {
  syntax: "*";
  inherits: false;
}
@property --tw-inset-ring-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-ring-inset {
  syntax: "*";
  inherits: false;
}
@property --tw-ring-offset-width {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}
@property --tw-ring-offset-color {
  syntax: "*";
  inherits: false;
  initial-value: #fff;
}
@property --tw-ring-offset-shadow {
  syntax: "*";
  inherits: false;
  initial-value: 0 0 #0000;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-border-style: solid;
      --tw-ordinal: initial;
      --tw-slashed-zero: initial;
      --tw-numeric-figure: initial;
      --tw-numeric-spacing: initial;
      --tw-numeric-fraction: initial;
      --tw-shadow: 0 0 #0000;
      --tw-shadow-color: initial;
      --tw-shadow-alpha: 100%;
      --tw-inset-shadow: 0 0 #0000;
      --tw-inset-shadow-color: initial;
      --tw-inset-shadow-alpha: 100%;
      --tw-ring-color: initial;
      --tw-ring-shadow: 0 0 #0000;
      --tw-inset-ring-color: initial;
      --tw-inset-ring-shadow: 0 0 #0000;
      --tw-ring-inset: initial;
      --tw-ring-offset-width: 0px;
      --tw-ring-offset-color: #fff;
      --tw-ring-offset-shadow: 0 0 #0000;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

/* ==================================================================
   Puntea dintre editorul WordPress si stilurile temei.
   Se adauga la finalul fisierului compilat, deci are ultimul cuvant.

   Foaia de stil a fost scrisa pentru varianta statica si nu stie nimic
   despre WordPress: peste tot foloseste --color-oxblood, --font-display
   si asa mai departe. theme.json publica aceleasi valori, dar sub alte
   nume — --wp--preset--color--oxblood.

   Aici le legam. Efectul: cele 1700 de linii de CSS raman neatinse, iar
   cand un organizator schimba o culoare sau un font din editor, valoarea
   ajunge in toata pagina fara sa modificam nimic.

   Valorile de rezerva de dupa virgula sunt cele din varianta statica.
   Se folosesc doar daca theme.json nu a fost incarcat — adica niciodata,
   in conditii normale. Sunt acolo ca pagina sa nu ramana fara culori
   daca ceva merge prost.
   ================================================================== */

:root {
  --color-oxblood: var(--wp--preset--color--oxblood, #4c020e);
  --color-crimson: var(--wp--preset--color--crimson, #81021f);
  --color-rose: var(--wp--preset--color--rose, #cf4357);
  --color-coral: var(--wp--preset--color--coral, #fd6943);
  --color-gold: var(--wp--preset--color--gold, #dd9934);
  --color-olive: var(--wp--preset--color--olive, #6b6a39);
  --color-cream: var(--wp--preset--color--cream, #fef1d6);

}

/*
 * Cele trei fonturi de bază NU sunt aici: le scrie PHP-ul, din Setări → Festival.
 * Scrise în foaia de stil, ar fi însemnat un al patrulea loc în care trăiește un nume
 * de font, iar schimbarea lor din panou n-ar mai fi avut niciun efect.
 */

/*
 * Editorul isi pune propriile margini si latimi pe blocuri. Sectiunile noastre
 * isi rezolva singure latimea si spatiul, deci le anulam — altfel apare o rama
 * de spatiu alb in jurul fiecarei sectiuni, vizibila doar in editor.
 */
.editor-styles-wrapper .gastronomica-section {
  margin-block: 0;
  max-width: none;
}

/*
 * In editor, continutul trebuie sa fie vizibil cat il scrii. Animatia de aparitie
 * porneste ascunsa si asteapta derularea — in editor asta ar insemna sa scrii
 * intr-un text pe care nu-l vezi.
 */
.editor-styles-wrapper [data-reveal] {
  opacity: 1;
  transform: none;
}

/* ==================================================================
   Apariția secțiunilor

   Pe site-ul static o făcea Framer Motion, din JavaScript. Aici o face
   CSS-ul, iar scriptul doar pune o clasă când elementul intră în ecran:
   24px de jos în sus, o singură dată, 0,7s — exact valorile de acolo,
   inclusiv curba de accelerare.

   Elementul pornește vizibil și devine ascuns doar dacă scriptul a pornit
   (`js-reveal` pe <html>). Fără el — JavaScript blocat, script care nu se
   încarcă — pagina rămâne citibilă în întregime, nu goală.
   ================================================================== */

.js-reveal [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
}

.js-reveal [data-reveal].is-revealed {
  opacity: 1;
  transform: none;
  transition:
    opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0s),
    transform 0.7s cubic-bezier(0.16, 1, 0.3, 1) var(--reveal-delay, 0s);
}

@media (prefers-reduced-motion: reduce) {
  .js-reveal [data-reveal],
  .js-reveal [data-reveal].is-revealed {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* ==================================================================
   Listele editabile (paragrafe, rânduri scurte)

   Doar în editor: butonul de ștergere stă lângă rând și apare la trecerea
   cu mouse-ul, ca lista să arate în restul timpului exact ca pe site.
   ================================================================== */

.editor-styles-wrapper .gastronomica-list__row {
  position: relative;
}

.editor-styles-wrapper .gastronomica-list__remove {
  position: absolute;
  top: 0;
  right: 0;
  opacity: 0;
  transition: opacity 150ms ease;
}

.editor-styles-wrapper .gastronomica-list__row:hover .gastronomica-list__remove,
.editor-styles-wrapper .gastronomica-list__remove:focus {
  opacity: 1;
}

/* ==================================================================
   Numerotarea pașilor

   Pe site-ul static, numărul venea din poziția în tabloul de pași. Aici
   fiecare pas e un bloc separat, care nu-și cunoaște poziția — o știe
   doar browserul, la afișare. Deci îl numără CSS-ul.

   Câștigul: mutarea unui pas renumerotează singură restul. Un câmp
   „număr" ar trebui corectat manual la fiecare reordonare.
   ================================================================== */

.steps {
  counter-reset: gastronomica-step;
}

.steps__item {
  counter-increment: gastronomica-step;
}

.steps__number::before {
  content: counter(gastronomica-step);
}

/* ==================================================================
   Semnul de deschidere al întrebărilor

   Pe site-ul static era o pictogramă dintr-o bibliotecă de iconițe,
   schimbată din JavaScript între plus și minus. Aici e un SVG desenat
   în marcaj, iar bara verticală dispare când răspunsul e deschis —
   fără bibliotecă și fără a doua stare de randat.
   ================================================================== */

.accordion__icon-bar {
  transform-origin: center;
  transition:
    opacity 200ms ease,
    transform 200ms ease;
}

.accordion__trigger[aria-expanded="true"] .accordion__icon-bar {
  opacity: 0;
  transform: rotate(90deg);
}

@media (prefers-reduced-motion: reduce) {
  .accordion__icon-bar {
    transition: none;
  }
}

/* ==================================================================
   Butonul de meniu

   Pe site-ul static erau două pictograme dintr-o bibliotecă, schimbate
   între ele din JavaScript. Aici sunt trei linii care devin cruce:
   cea din mijloc dispare, celelalte două se rotesc una peste alta.
   ================================================================== */

.nav__toggle svg line {
  transform-origin: center;
  transition:
    opacity 200ms ease,
    transform 200ms ease;
}

.nav__toggle[aria-expanded="true"] .nav__toggle-mid {
  opacity: 0;
}

.nav__toggle[aria-expanded="true"] .nav__toggle-top {
  transform: translateY(4px) rotate(45deg);
}

.nav__toggle[aria-expanded="true"] .nav__toggle-bottom {
  transform: translateY(-4px) rotate(-45deg);
}

@media (prefers-reduced-motion: reduce) {
  .nav__toggle svg line {
    transition: none;
  }
}

/*
 * Legătura de sărit peste meniu: ascunsă până când cineva o atinge cu tastatura.
 * Prima oprire a navigării cu Tab, pentru cine nu folosește mouse-ul.
 */
.skip-link:focus {
  position: fixed;
  top: 0.75rem;
  left: 0.75rem;
  z-index: 100;
  width: auto;
  height: auto;
  clip: auto;
  clip-path: none;
  padding: 0.75rem 1.25rem;
  background: var(--color-cream);
  color: var(--color-oxblood);
  font-family: var(--font-label);
  font-size: 0.875rem;
}

/* ==================================================================
   Textura de hârtie

   Pe site-ul static, imaginea de zgomot era scrisă în atributul `style`
   al elementului, ca URI de date. Aici e un fișier: se pune în cache o
   dată, nu se repetă în fiecare pagină, și nu are nevoie de excepție în
   politica de securitate.
   ================================================================== */

.grain {
  --grain-src: url("../noise.svg");
}

/* ==================================================================
   Pagina 404

   Un singur bloc de text, la stânga, pe un ecran gol. Fără bară de sus,
   fără subsol, fără galerie de logouri — e o întoarcere din drum, nu o
   destinație.
   ================================================================== */

/*
 * WordPress pune pe `body` un `display: flex` si un padding proprii, care nu vin de
 * la noi. Pe restul site-ului nu deranjeaza, fiindca sectiunile isi poarta singure
 * fundalul; aici insa faceau pagina mai inalta decat ecranul, cu derulare degeaba.
 *
 * `body.error404` e clasa pusa chiar de WordPress pe paginile de eroare, deci
 * neutralizarea ramane strict aici.
 */
body.error404 {
  display: block;
  padding: 0;
}

.error404 {
  box-sizing: border-box;
  width: 100%;
  display: flex;
  align-items: center;
  min-height: 100svh;
  padding: clamp(1.5rem, 6vw, 5rem);
}

.error404__body {
  display: grid;
  justify-items: start;
  gap: 1.5rem;
  max-width: 32rem;
}

.error404__text {
  color: var(--muted);
}
