:root {
  --ink: #080907;
  --ink-soft: #10120f;
  --forest: #182019;
  --ivory: #f3efe5;
  --gold: #c9a45c;
  --gold-light: #e4c986;
  --sage: #a7aea1;
  --line: rgba(201, 164, 92, .24);
}

html { scroll-behavior: smooth; }
body {
  background: var(--ink);
  color: var(--ivory);
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
}
body, p, a, li, input, button { font-family: "DM Sans", sans-serif; }
h1, h2, h3, h4, h5, h6 {
  color: var(--ivory);
  font-family: "Playfair Display", serif;
}
p { color: var(--sage); }
a:hover { color: var(--gold-light); }
.container { max-width: 1180px; }
.area-padding { padding: 110px 0; }
.hidden, .hide { display: none !important; }
body.age-locked { overflow: hidden; }

.age-gate {
  align-items: center;
  background: radial-gradient(circle at center, #1b231b 0, #080907 60%);
  display: flex;
  inset: 0;
  justify-content: center;
  padding: 24px;
  position: fixed;
  z-index: 9999;
}
.age-gate[hidden] { display: none; }
.age-gate-grain {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
  inset: 0;
  opacity: .18;
  pointer-events: none;
  position: absolute;
}
.age-gate-card {
  border: 1px solid var(--line);
  max-width: 590px;
  padding: 62px;
  position: relative;
  text-align: center;
}
.age-gate-card::before, .age-gate-card::after {
  border-color: var(--gold);
  border-style: solid;
  content: "";
  height: 38px;
  position: absolute;
  width: 38px;
}
.age-gate-card::before { border-width: 1px 0 0 1px; left: -1px; top: -1px; }
.age-gate-card::after { border-width: 0 1px 1px 0; bottom: -1px; right: -1px; }
.age-gate-brand {
  align-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  display: flex;
  font-family: "Playfair Display", serif;
  font-size: 31px;
  height: 62px;
  justify-content: center;
  margin: 0 auto 28px;
  width: 62px;
}
.age-gate-card .eyebrow { margin-bottom: 18px; }
.age-gate-card h1 { font-size: clamp(44px, 6vw, 66px); line-height: .98; margin: 0; }
.age-gate-card > p:not(.eyebrow):not(.age-decline-message) { line-height: 1.75; margin: 28px auto; max-width: 450px; }
.age-gate-actions { display: flex; gap: 12px; justify-content: center; }
.age-gate-actions .button { border-radius: 0; cursor: pointer; }
.age-gate-actions .button-ghost {
  background: transparent;
  border: 1px solid rgba(243, 239, 229, .55);
  color: var(--ivory);
}
.age-gate-actions .button-ghost:hover,
.age-gate-actions .button-ghost:focus {
  background: var(--ivory);
  border-color: var(--ivory);
  color: var(--ink);
}
.age-decline-message { color: var(--gold-light); font-size: 12px; margin: 20px 0 0; }

#header {
  background: rgba(8, 9, 7, .9);
  border-bottom: 1px solid rgba(255, 255, 255, .06);
  height: 86px;
  left: 0;
  padding: 0;
  position: fixed;
  right: 0;
  top: 0;
  transition: height .25s ease, background .25s ease;
  backdrop-filter: blur(14px);
  z-index: 1000;
}
#header .container { height: 100%; }
.header-inner { align-items: center; display: flex; justify-content: space-between; }
#header.header-scrolled { height: 72px; background: rgba(8, 9, 7, .96); }
.brand { align-items: center; display: inline-flex; gap: 13px; text-decoration: none; }
.brand-mark {
  align-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold);
  display: inline-flex;
  font-family: "Playfair Display", serif;
  font-size: 24px;
  height: 43px;
  justify-content: center;
  width: 43px;
}
.brand-copy {
  color: var(--ivory);
  font-family: "Playfair Display", serif;
  font-size: 25px;
  letter-spacing: .03em;
  line-height: .9;
}
.brand-copy small {
  color: var(--gold);
  display: block;
  font-family: "DM Sans", sans-serif;
  font-size: 8px;
  letter-spacing: .28em;
  margin-top: 8px;
  text-transform: uppercase;
}
.primary-nav { align-items: center; display: flex; gap: 10px; margin-left: auto; }
.primary-nav a {
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  padding: 12px 18px;
  text-transform: uppercase;
}
.primary-nav a:hover { background: var(--gold); color: var(--ink); }
.header-order {
  align-items: center;
  border: 1px solid var(--gold);
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  justify-content: center;
  letter-spacing: .12em;
  margin-left: 24px;
  padding: 12px 18px;
  text-transform: uppercase;
}
.header-order:hover { background: var(--gold); color: var(--ink); }
.nav-toggle { background: none; border: 0; display: none; height: 44px; padding: 10px; width: 44px; }
.nav-toggle span { background: var(--gold); display: block; height: 1px; margin: 7px 0; transition: transform .2s ease; width: 24px; }

.luxury-hero {
  background: radial-gradient(circle at 15% 30%, #182019 0, var(--ink) 42%);
  min-height: 760px;
  overflow: hidden;
  padding: 146px 0 70px;
  position: relative;
}
.hero-grain {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E");
  inset: 0;
  opacity: .2;
  pointer-events: none;
  position: absolute;
}
.hero-layout { align-items: center; display: grid; gap: 80px; grid-template-columns: .92fr 1.08fr; position: relative; }
.eyebrow {
  color: var(--gold);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .24em;
  margin: 0 0 24px;
  text-transform: uppercase;
}
.hero-copy h1, .about-content h2, .menu-heading h2, .visit-copy h2 {
  color: var(--ivory);
  font-size: clamp(54px, 6vw, 88px);
  font-weight: 500;
  letter-spacing: -.04em;
  line-height: .96;
  margin: 0;
}
em { color: var(--gold); font-weight: 500; }
.hero-tagline { color: var(--ivory); font-family: "Playfair Display", serif; font-size: 20px; letter-spacing: .01em; margin: 26px 0 0; }
.hero-lead { font-size: 18px; line-height: 1.75; margin: 16px 0 30px; max-width: 520px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.button {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .14em;
  padding: 15px 24px;
  text-transform: uppercase;
}
.button-gold { background: var(--gold); color: var(--ink); }
.button-gold:hover { background: var(--gold-light); color: var(--ink); }
.button-ghost { border: 1px solid rgba(243, 239, 229, .28); color: var(--ivory); }
.button-ghost:hover { border-color: var(--gold); color: var(--gold); }
.hero-note { font-size: 11px; letter-spacing: .05em; margin: 25px 0 0; }
.hero-image-wrap {
  height: 570px;
  position: relative;
}
.hero-image-wrap::before {
  border: 1px solid var(--line);
  content: "";
  inset: 24px -24px -24px 24px;
  position: absolute;
}
.hero-image-wrap img {
  filter: saturate(.76) contrast(1.08);
  height: 100%;
  object-fit: cover;
  position: relative;
  width: 100%;
}
.hero-image-wrap::after {
  background: linear-gradient(135deg, transparent 35%, rgba(8, 9, 7, .48));
  content: "";
  inset: 0;
  position: absolute;
}
.hero-seal {
  align-items: center;
  background: var(--ink);
  border: 1px solid var(--gold);
  border-radius: 50%;
  bottom: 30px;
  display: flex;
  flex-direction: column;
  height: 112px;
  justify-content: center;
  left: -42px;
  position: absolute;
  width: 112px;
  z-index: 2;
}
.hero-seal strong { color: var(--gold); font-family: "Playfair Display", serif; font-size: 29px; line-height: 1; }
.hero-seal span { color: var(--sage); font-size: 7px; letter-spacing: .2em; text-transform: uppercase; }

.welcome-copy {
  color: var(--ivory);
  font-family: "Playfair Display", serif;
  font-size: 25px !important;
  padding: 38px 15px !important;
  text-align: center;
}
.welcome-copy:empty { display: none; }
.about-area { background: var(--ivory); }
.about-image { padding-right: 45px; position: relative; }
.about-image img { height: 590px; object-fit: cover; width: 100%; }
.image-caption {
  background: var(--forest);
  bottom: 35px;
  color: var(--gold-light);
  font-family: "Playfair Display", serif;
  font-size: 16px;
  padding: 18px 24px;
  position: absolute;
  right: 20px;
}
.about-content { padding-left: 55px; }
.about-content h2 { color: var(--ink); font-size: clamp(48px, 5vw, 70px); }
.about-content > p:not(.eyebrow), .dynamic-copy { font-size: 16px; line-height: 1.8; margin-top: 28px; }
.dynamic-copy * { color: #62675f; }
.about-values {
  border-top: 1px solid rgba(8, 9, 7, .13);
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 38px;
  padding-top: 28px;
}
.about-values strong { color: #8c6b2b; display: block; font-family: "Playfair Display", serif; font-size: 19px; }
.about-values span { color: #777b73; display: block; font-size: 11px; line-height: 1.5; margin-top: 6px; }

.selection-area { background: var(--ink-soft); }
.selection-heading {
  align-items: end;
  display: grid;
  gap: 80px;
  grid-template-columns: 1.2fr .8fr;
  margin-bottom: 60px;
}
.selection-heading h2 { font-size: clamp(48px, 5vw, 70px); line-height: 1; margin: 0; }
.selection-heading > p { line-height: 1.8; margin: 0 0 6px; }
.selection-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.selection-card { border: 1px solid rgba(255, 255, 255, .07); padding: 18px 18px 30px; position: relative; }
.selection-card > span { color: var(--gold); font-size: 10px; letter-spacing: .14em; }
.selection-image { background-position: center; background-size: cover; filter: saturate(.7) contrast(1.05); height: 285px; margin: 16px 0 25px; }
.selection-flower { background-image: url("../img/weed.jpg"); }
.selection-concentrates { background-image: linear-gradient(rgba(8, 9, 7, .18), rgba(8, 9, 7, .45)), url("../img/slider/slider3.jpg"); background-position: 70% center; }
.selection-wellness { background-image: linear-gradient(rgba(8, 9, 7, .05), rgba(8, 9, 7, .5)), url("../img/about/1.jpg"); background-position: 20% center; }
.selection-card h3 { font-size: 25px; margin: 0 0 12px; }
.selection-card p { font-size: 14px; line-height: 1.7; margin: 0; }
.service-banner { background: var(--gold); padding: 35px 0; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.service-grid div { align-items: center; border-right: 1px solid rgba(8, 9, 7, .25); display: flex; gap: 18px; justify-content: center; }
.service-grid div:last-child { border: 0; }
.service-grid span { color: rgba(8, 9, 7, .6); font-size: 10px; }
.service-grid strong { color: var(--ink); font-family: "Playfair Display", serif; font-size: 17px; font-weight: 600; }

.contact-area { background: var(--forest); border-top: 1px solid var(--line); }
.contact-inner { background: none; }
.visit-copy { padding-right: 70px; }
.visit-copy h2 { font-size: clamp(52px, 5vw, 76px); }
.visit-address { color: var(--ivory); font-family: "Playfair Display", serif; font-size: 24px; line-height: 1.5; margin: 30px 0 5px; }
.visit-note { line-height: 1.7; margin: 20px 0 0; max-width: 380px; }
.visit-copy .button { margin-top: 20px; }
.map-frame { border: 1px solid var(--line); padding: 12px; position: relative; }
.map-frame iframe { display: block; }
.map-open-link {
  background: var(--ink);
  border: 1px solid var(--gold);
  color: var(--gold-light);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  padding: 12px 15px;
  position: absolute;
  right: 24px;
  text-transform: uppercase;
  top: 24px;
  z-index: 2;
}
.map-open-link:hover { background: var(--gold); color: var(--ink); }
.map-open-link span { font-size: 14px; margin-left: 6px; }

footer { background: #050604; border-top: 1px solid rgba(255, 255, 255, .05); }
.footer-area-bottom { background: transparent; padding: 34px 0; }
.footer-content { align-items: end; display: flex; justify-content: space-between; }
.footer-brand { color: var(--ivory); font-family: "Playfair Display", serif; font-size: 28px; }
.footer-content p { font-size: 12px; margin: 8px 0 0; }
.footer-meta { color: #777c74; display: flex; flex-direction: column; font-size: 11px; gap: 7px; text-align: right; }

@media (max-width: 991px) {
  #header { height: 72px; }
  .header-order { display: none; }
  .nav-toggle { display: block; margin-left: auto; }
  .primary-nav {
    align-items: stretch;
    background: #10120f;
    border-top: 1px solid rgba(255, 255, 255, .07);
    display: none;
    flex-direction: column;
    gap: 0;
    left: 0;
    margin: 0;
    padding: 18px 25px 25px;
    position: absolute;
    right: 0;
    top: 72px;
  }
  .primary-nav.is-open { display: flex; }
  .primary-nav a { border: 0; border-bottom: 1px solid rgba(255, 255, 255, .06); padding: 14px 0; }
  .luxury-hero { min-height: auto; padding: 125px 0 85px; }
  .hero-layout { gap: 60px; grid-template-columns: 1fr; }
  .hero-copy { max-width: 680px; }
  .hero-image-wrap { height: 480px; margin-left: 35px; }
  .about-image { padding: 0 25px; }
  .about-content { padding: 70px 25px 0; }
  .selection-heading { gap: 25px; grid-template-columns: 1fr; }
  .selection-grid { grid-template-columns: 1fr; }
  .selection-card { display: grid; grid-template-columns: 34px 220px 1fr; column-gap: 20px; align-items: center; }
  .selection-image { grid-column: 2; grid-row: 1 / span 3; height: 220px; margin: 0; }
  .selection-card h3, .selection-card p { grid-column: 3; }
  .service-grid { gap: 24px; }
  .service-grid div { align-items: flex-start; flex-direction: column; gap: 6px; padding: 0 18px; }
  .visit-copy { margin-bottom: 50px; padding-right: 15px; }
}

@media (max-width: 575px) {
  .age-gate-card { padding: 42px 22px; }
  .age-gate-actions { flex-direction: column; }
  .area-padding { padding: 78px 0; }
  .luxury-hero { padding-top: 115px; }
  .hero-copy h1 { font-size: 51px; }
  .hero-lead { font-size: 16px; }
  .hero-image-wrap { height: 390px; margin-left: 18px; }
  .hero-image-wrap::before { inset: 14px -14px -14px 14px; }
  .hero-seal { bottom: 20px; height: 88px; left: -20px; width: 88px; }
  .about-image img { height: 410px; }
  .about-values { grid-template-columns: 1fr; }
  .selection-card { display: block; }
  .selection-image { height: 260px; margin: 16px 0 25px; }
  .service-grid { grid-template-columns: 1fr; }
  .service-grid div { border-bottom: 1px solid rgba(8, 9, 7, .22); border-right: 0; padding: 16px 0; }
  .footer-content { align-items: flex-start; flex-direction: column; gap: 28px; }
  .footer-meta { text-align: left; }
}
