@font-face {
  font-family: "Glava 44 Gothic";
  src: url("/brand-overrides/century-gothic-subset.ttf") format("truetype");
  font-display: swap;
  font-style: normal;
  font-weight: 400 700;
}

:root {
  --glava-burgundy: #7b0e30;
  --glava-burgundy-dark: #560820;
  --glava-green: #00512d;
  --glava-cream: #fffce5;
  --glava-paper: #f7f0d9;
  --glava-ink: #251a18;
  --ramo-orange: var(--glava-burgundy);
  --ramo-orange-soft: #a52b51;
  --ramo-brown: var(--glava-burgundy);
  --ramo-green: var(--glava-green);
  --ramo-black: var(--glava-ink);
  --ramo-cream: var(--glava-cream);
  --ramo-cream-100: var(--glava-cream);
  --ramo-paper: var(--glava-cream);
  --ramo-paper-2: var(--glava-paper);
  --ramo-gray-50: #fffdf1;
  --ramo-gray-100: #f7f0d9;
  --ramo-gray-200: #eadfbd;
  --ramo-gray-300: #cbbd96;
  --ramo-gray-400: #8a7c66;
  --ramo-gray-500: #62564b;
  --ramo-gray-600: #413732;
  --ramo-line: rgba(123, 14, 48, 0.22);
  --ramo-bg: var(--glava-cream);
  --ramo-bg-white: #fffef4;
  --ramo-bg-section: var(--glava-paper);
  --ramo-bg-elevated: #fffef4;
  --ramo-text: var(--glava-ink);
  --ramo-text-secondary: #554841;
  --ramo-text-tertiary: #70635b;
  --ramo-text-on-dark: var(--glava-cream);
  --ramo-text-on-accent: var(--glava-cream);
  --ramo-block-dark: var(--glava-green);
  --ramo-block-dark-alt: var(--glava-burgundy-dark);
  --ramo-accent: var(--glava-burgundy);
  --ramo-accent-soft: #a52b51;
  --ramo-accent-secondary: var(--glava-green);
  --ramo-accent-ink: var(--glava-burgundy-dark);
  --ramo-accent-on-dark: var(--glava-cream);
  --ramo-cta-primary-bg: var(--glava-burgundy);
  --ramo-cta-primary-fg: var(--glava-cream);
  --ramo-cta-accent-bg: var(--glava-green);
  --ramo-cta-accent-fg: var(--glava-cream);
  --font-sans: "Glava 44 Gothic", "Century Gothic", "Avenir Next", sans-serif;
  --font-serif: "Libertinus Serif", "Iowan Old Style", Georgia, serif;
  --radius-card: 8px;
  --radius-card-soft: 8px;
  --radius-input: 6px;
  --shadow-card: 0 10px 34px rgba(69, 29, 36, 0.08);
  --shadow-card-hover: 0 20px 50px rgba(69, 29, 36, 0.14);
}

html,
body {
  background: var(--glava-cream);
}

body {
  font-family: var(--font-sans);
}

.ramo-glass,
.ramo-glass-strong {
  background: rgba(255, 252, 229, 0.94);
  border-color: rgba(123, 14, 48, 0.18);
  box-shadow: 0 1px 0 rgba(123, 14, 48, 0.08);
}

.ramo-header {
  min-height: 72px;
}

.ramo-header-logo-desktop,
.ramo-header-logo-mobile {
  width: 132px;
  height: 48px;
  background: url("/brand-overrides/logo-burgundy.png") left center / contain no-repeat;
}

.ramo-header-logo-mobile {
  width: 104px;
  height: 38px;
}

.ramo-header-logo-desktop img,
.ramo-header-logo-mobile img {
  opacity: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

.ramo-header-nav-link {
  color: var(--glava-green) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ramo-header-phone {
  background: var(--glava-burgundy) !important;
  color: var(--glava-cream) !important;
}

.ramo-header .ramo-icon-btn {
  border-color: rgba(123, 14, 48, 0.28) !important;
  color: var(--glava-burgundy) !important;
  background: transparent !important;
}

.ramo-hero {
  min-height: 76svh !important;
  background: var(--glava-cream) !important;
}

.ramo-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(255, 252, 229, 0.97) 0%, rgba(255, 252, 229, 0.86) 40%, rgba(255, 252, 229, 0.12) 74%);
}

.ramo-hero-grad-x {
  background: linear-gradient(90deg, rgba(255, 252, 229, 0.96) 0%, rgba(255, 252, 229, 0.38) 58%, transparent 86%) !important;
}

.ramo-hero-title,
.ramo-h2,
.ramo-popular-title,
main h1,
main h2 {
  font-family: var(--font-serif) !important;
}

.ramo-hero-title {
  color: var(--glava-burgundy) !important;
  font-size: clamp(42px, 5.4vw, 76px) !important;
  font-weight: 500 !important;
  line-height: 0.92 !important;
  letter-spacing: -0.035em !important;
  text-transform: none !important;
}

.ramo-hero-brand {
  font-weight: 600 !important;
}

.ramo-hero-bureau {
  color: var(--glava-green);
  font-size: 0.54em;
  font-family: var(--font-sans);
  font-weight: 700 !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.ramo-hero-title-line--second {
  margin-top: 0.08em;
  font-size: 0.82em;
}

.ramo-hero-title-accent {
  padding: 0.01em 0.14em 0.07em !important;
  border-radius: 0 !important;
  background: var(--glava-burgundy) !important;
  color: var(--glava-cream) !important;
  transform: none !important;
}

.ramo-hero-btn--primary,
.ramo-btn--primary {
  background: var(--glava-burgundy) !important;
  color: var(--glava-cream) !important;
  border-radius: 4px !important;
  letter-spacing: 0.02em;
}

.ramo-hero-seclink {
  color: var(--glava-green) !important;
  border-color: rgba(0, 81, 45, 0.45) !important;
}

.ramo-hero-tagline-contrast {
  background: var(--glava-cream) !important;
  color: var(--glava-burgundy) !important;
  border-radius: 0 !important;
}

.ramo-ticker,
.ramo-mantra-strip {
  background: var(--glava-burgundy) !important;
  color: var(--glava-cream) !important;
}

.ramo-cooking,
.ramo-popular-section {
  background-color: var(--glava-cream) !important;
}

.ramo-cooking-card,
.ramo-card,
main article {
  border-color: rgba(123, 14, 48, 0.18) !important;
}

.ramo-cooking-label,
.ramo-label,
.ramo-duck-feature-label {
  color: var(--glava-burgundy) !important;
  letter-spacing: 0.11em !important;
}

.ramo-popular-title,
.ramo-cooking h2,
main h1,
main h2 {
  color: var(--glava-burgundy);
}

.ramo-duck-feature {
  background: var(--glava-green) !important;
  color: var(--glava-cream) !important;
}

.ramo-duck-feature h2,
.ramo-duck-feature p,
.ramo-duck-feature a,
.ramo-duck-feature-label {
  color: var(--glava-cream) !important;
}

.ramo-footer {
  background: var(--glava-green) !important;
  color: var(--glava-cream) !important;
}

.ramo-footer-brand > div:first-child > span[role="img"] {
  width: 154px !important;
  height: 58px !important;
  background: url("/brand-overrides/logo-cream.png") left center / contain no-repeat !important;
  -webkit-mask: none !important;
  mask: none !important;
}

.ramo-footer-duck-wrap {
  display: none !important;
}

input,
select,
textarea {
  border-color: rgba(123, 14, 48, 0.28) !important;
  background: #fffef4 !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--glava-burgundy) !important;
  box-shadow: 0 0 0 3px rgba(123, 14, 48, 0.12) !important;
}

.ramo-tabbar {
  background: rgba(255, 252, 229, 0.96) !important;
  border-color: rgba(123, 14, 48, 0.22) !important;
}

.ramo-mobile-bottom-bar a[data-active="true"] {
  color: var(--glava-burgundy) !important;
}

.ramo-mobile-bottom-bar a[data-active="true"] .ramo-tab-pill {
  background: rgba(123, 14, 48, 0.1) !important;
  border-color: rgba(123, 14, 48, 0.35) !important;
}

::selection {
  color: var(--glava-cream);
  background: var(--glava-burgundy);
}

@media (max-width: 768px) {
  .ramo-header {
    min-height: 64px;
  }

  .ramo-hero {
    min-height: 70svh !important;
  }

  .ramo-hero::before {
    background: linear-gradient(180deg, rgba(255, 252, 229, 0.82) 0%, rgba(255, 252, 229, 0.94) 58%, var(--glava-cream) 100%);
  }

  .ramo-hero-title {
    width: 100% !important;
    font-size: clamp(38px, 11vw, 54px) !important;
  }

  .ramo-hero-title-line {
    flex-wrap: wrap;
    white-space: normal !important;
  }

  .ramo-hero-bureau {
    width: 100%;
    margin-top: 0.3em;
    font-size: 0.38em;
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
  }
}

/* Feedback pass: calmer hierarchy and shorter color fields. */
.ramo-hero-title {
  max-width: 620px !important;
  margin-bottom: 20px !important;
  font-size: clamp(46px, 5vw, 68px) !important;
  line-height: 1 !important;
}

.ramo-hero-title > .ramo-hero-title-line:first-child {
  display: flex !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  white-space: normal !important;
}

.ramo-hero-bureau {
  margin: 0 !important;
  padding-left: 2px;
  font-size: clamp(16px, 1.5vw, 21px) !important;
  line-height: 1.2;
}

.ramo-hero-title-line--second {
  display: none !important;
}

.ramo-mantra-strip {
  padding: clamp(24px, 3vw, 38px) var(--space-mobile) !important;
  background: var(--glava-paper) !important;
  color: var(--glava-ink) !important;
  border-color: rgba(123, 14, 48, 0.14) !important;
}

.ramo-mantra-pattern {
  opacity: 0.035 !important;
}

.ramo-mantra-strip span {
  color: var(--glava-burgundy) !important;
  font-size: clamp(22px, 2.7vw, 34px) !important;
}

.glava-duck-section {
  background: var(--glava-paper) !important;
}

.ramo-duck-feature {
  max-width: 1040px !important;
  grid-template-columns: 200px minmax(0, 1fr) !important;
  margin-bottom: 36px !important;
  background: #fffef4 !important;
  color: var(--glava-ink) !important;
  border-color: rgba(123, 14, 48, 0.16) !important;
  box-shadow: 0 12px 34px rgba(69, 29, 36, 0.06);
}

.ramo-duck-feature-visual {
  min-height: 220px !important;
  background: #e9e1cc !important;
}

.ramo-duck-feature-visual img {
  opacity: 0.58;
  filter: brightness(0) saturate(100%);
}

.ramo-duck-feature-copy {
  padding: 34px 40px !important;
  background: #fffef4;
  color: var(--glava-ink) !important;
}

.ramo-duck-feature h3,
.ramo-duck-feature .ramo-duck-feature-description,
.ramo-duck-feature .ramo-duck-feature-label {
  color: var(--glava-ink) !important;
}

.ramo-duck-feature .ramo-duck-feature-label {
  color: var(--glava-burgundy) !important;
}

.ramo-duck-feature .ramo-duck-feature-cta,
.ramo-duck-feature .ramo-duck-feature-cta span {
  color: var(--glava-burgundy) !important;
}

.ramo-duck-feature .ramo-duck-feature-cta {
  border-color: rgba(123, 14, 48, 0.28) !important;
  background: transparent;
}

.ramo-home-contact-hub {
  background: var(--glava-paper) !important;
  color: var(--glava-ink) !important;
}

.ramo-home-contact-hub.ramo-dot-texture::before,
.ramo-home-contact-hub.ramo-grain::after {
  display: none !important;
}

.ramo-contact-hub-inner {
  padding-top: clamp(56px, 6vw, 76px) !important;
}

.ramo-booking-promo {
  grid-template-columns: minmax(320px, 0.48fr) minmax(0, 0.52fr) !important;
  padding-bottom: 0 !important;
  overflow: hidden;
  border: 1px solid rgba(123, 14, 48, 0.15) !important;
  border-radius: 12px;
  background: #fffef4;
  box-shadow: 0 14px 40px rgba(69, 29, 36, 0.07);
}

.ramo-booking-promo > :last-child {
  padding: clamp(34px, 4vw, 58px) !important;
  color: var(--glava-ink) !important;
}

.ramo-booking-promo h2 {
  margin-bottom: 18px !important;
  color: var(--glava-burgundy) !important;
  font-family: var(--font-serif) !important;
  font-size: clamp(30px, 3.2vw, 46px) !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  text-transform: none !important;
}

.ramo-booking-promo h2 span {
  color: var(--glava-green) !important;
}

.ramo-booking-promo p {
  color: var(--glava-ink) !important;
  font-size: clamp(15px, 1.25vw, 18px) !important;
}

.ramo-contact-booking-cta {
  min-width: 230px !important;
  border-radius: 5px !important;
  background: var(--glava-burgundy) !important;
  color: var(--glava-cream) !important;
}

.ramo-contact-details-row {
  margin-top: 34px;
  padding: clamp(34px, 4.5vw, 54px) !important;
  border: 1px solid rgba(123, 14, 48, 0.15);
  border-radius: 12px;
  background: #fffef4;
  color: var(--glava-ink) !important;
}

.ramo-contact-details-row > div:first-child,
.ramo-contact-details-row > div:first-child h2,
.ramo-contact-details-row > div:first-child div,
.ramo-contact-details-row > div:first-child a {
  color: var(--glava-ink) !important;
}

.ramo-contact-details-row > div:first-child > span {
  color: var(--glava-burgundy) !important;
}

.ramo-contact-details-row > div:first-child a > span {
  border-radius: 5px !important;
  background: var(--glava-green) !important;
  color: var(--glava-cream) !important;
}

.ramo-footer {
  background: #5a1028 !important;
}

.made-in-matrix_credit__dVuqe,
.made-in-matrix_badge__6nMe8 {
  display: none !important;
}

.ramo-install-prompt {
  background: rgba(255, 254, 244, 0.98) !important;
  border-color: rgba(123, 14, 48, 0.18) !important;
}

.ramo-install-prompt > img {
  border-radius: 9px !important;
}

@media (max-width: 760px) {
  .ramo-hero-title {
    font-size: clamp(42px, 12vw, 56px) !important;
  }

  .ramo-duck-feature {
    grid-template-columns: 1fr !important;
  }

  .ramo-duck-feature-visual {
    height: 132px !important;
    min-height: 132px !important;
  }

  .ramo-duck-feature-copy {
    padding: 26px 24px !important;
  }

  .ramo-booking-promo {
    grid-template-columns: 1fr !important;
  }

  .ramo-booking-promo > :first-child {
    min-height: 250px !important;
  }

  .ramo-booking-promo > :last-child {
    padding: 28px 24px !important;
  }

  .ramo-contact-details-row {
    padding: 28px 24px !important;
  }
}

/* Feedback pass 2: prevent the server-rendered legacy hero copy from flashing
   before the post-hydration brand decorator has finished. Visibility preserves
   the final layout dimensions and the delayed animation is a safe fallback. */
html:not(.glava-brand-ready) .ramo-hero-title {
  visibility: hidden !important;
  animation: glava-hero-visibility-fallback 0s 4s forwards;
}

@keyframes glava-hero-visibility-fallback {
  to { visibility: visible; }
}

/* Events: use the same calm paper treatment as the refreshed home page. */
html[data-glava-page="events"] main > section.ramo-dot-texture.ramo-grain:first-of-type {
  background: linear-gradient(135deg, #f7f0d9 0%, #fffef4 72%) !important;
  background-image: none !important;
  color: var(--glava-ink) !important;
  border-bottom: 1px solid rgba(123, 14, 48, 0.16);
  box-shadow: inset 8px 0 0 var(--glava-burgundy);
}

html[data-glava-page="events"] main > section.ramo-dot-texture.ramo-grain:first-of-type h1 {
  color: var(--glava-burgundy) !important;
}

html[data-glava-page="events"] main > section.ramo-dot-texture.ramo-grain:first-of-type p {
  color: var(--glava-ink) !important;
  max-width: 620px !important;
}

html[data-glava-page="events"] main > section.ramo-dot-texture.ramo-grain:first-of-type [class*="kicker"] {
  color: var(--glava-green) !important;
}

/* Duck feature: a stronger but contained burgundy accent. */
.ramo-duck-feature .ramo-duck-feature-visual {
  background: var(--glava-burgundy) !important;
}

.ramo-duck-feature .ramo-duck-feature-visual img {
  opacity: 0.96 !important;
  filter: none !important;
}

.ramo-duck-feature .ramo-duck-feature-cta,
.ramo-duck-feature .ramo-duck-feature-cta span {
  color: var(--glava-cream) !important;
}

.ramo-duck-feature .ramo-duck-feature-cta {
  background: var(--glava-burgundy) !important;
  border-color: var(--glava-burgundy) !important;
}
