
:root{
  --burgundy:#7b1f2a;
  --burgundy2:#8a2430;
  --gold:#d4af37;
  --max:1200px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Lato', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:#fff;
  background:
    radial-gradient(circle at 30% 20%, rgba(212,175,55,.08), transparent 55%),
    linear-gradient(180deg, #0a0a0a, #000);
}
a{color:inherit;text-decoration:none}
.container{width:min(var(--max), calc(100% - 40px)); margin:0 auto}

/* Header */
.header{
  position:sticky;
  top:0;
  z-index:20;
  backdrop-filter:blur(10px);
  background:rgba(8,8,8,.72);
  border-bottom:1px solid rgba(255,255,255,.08);
  display:block;
  height:auto;
  overflow:visible;
}
.header::before,
.header::after{
  content:none !important;
}

/* Centered nav buttons */
.nav{
  width:min(var(--max), calc(100% - 24px));
  margin:0 auto;
  position:relative;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  z-index:2;
  padding:14px 0;
}

.nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:11px 18px;
  border-radius:999px;
  background:rgba(138,36,48,.92);
  border:1px solid rgba(255,255,255,.14);
  font-weight:900;
  font-size:13px;
  letter-spacing:0;
  box-shadow:0 12px 24px rgba(0,0,0,.28);
  transition: transform .15s ease, background .15s ease, opacity .15s ease;
}
.nav a:hover{background:rgba(138,36,48,.96); transform:translateY(-1px)}
.nav a:active{transform:translateY(0px)}
.nav a.contact{background:rgba(138,36,48,.98)}

/* Hero overlap */
.hero{position:relative; padding:0 0 34px;}
.hero-inner{
  position:relative;
  margin-top:-105px;
  z-index:5;
  text-align:center;
}
.capsule{
  width:min(1080px, 96vw);
  margin:0 auto;
  padding:52px 36px 40px;
  border-radius:999px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 90px rgba(0,0,0,.55);
  backdrop-filter: blur(12px);
}
.hero-grid{
  display:grid;
  grid-template-columns: 1fr auto 1fr;
  align-items:center;
  gap:40px;
}
.logo{
  width:520px;
  max-width:58vw;
  filter: drop-shadow(0 28px 80px rgba(0,0,0,.70));
}

/* Bullets */
.bullets{ text-align:left; max-width:320px; margin:0 auto; }
.bullets h3{
  margin:0 0 12px;
  font-size:16px;
  letter-spacing:.12em;
  text-transform:uppercase;
  opacity:.9;
}
.bullets ul{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:12px;
}
.bullets li{
  position:relative;
  padding-left:18px;
  font-weight:800;
  opacity:.95;
}
.bullets li::before{
  content:"";
  position:absolute;
  left:0;
  top:0.62em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--gold);
  box-shadow:0 0 18px rgba(212,175,55,.25);
}

.cta-row{
  margin-top:26px;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 20px;
  border-radius:999px;
  font-weight:900;
  background:var(--burgundy);
  color:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.30);
}
.btn-ghost{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.14);
}

.footer{
  text-align:center;
  padding:44px 0;
  color:#aaa;
  font-size:14px;
  border-top:1px solid rgba(255,255,255,.08);
  margin-top:34px;
  background:#000;
}

@media (max-width: 980px){
  .header{
  position:relative;
  height:240px;
  overflow:hidden;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

  .header::before{background-size:cover; background-position:center;}
  .hero-inner{margin-top:-80px}
  .capsule{border-radius:34px; padding:38px 22px 30px}
  .hero-grid{grid-template-columns:1fr; gap:26px}
  .logo{width:440px; max-width:84vw}
  .bullets{max-width:520px}
}



/* Mobile fixes: prevent overlap */
@media (max-width: 680px){
  .header{
  position:relative;
  height:240px;
  overflow:hidden;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

  .header::before{background-size:cover; background-position:center;}
  .nav{
  position:relative;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  z-index:2;
}

  .nav a{
    padding:10px 14px;
    font-size:12px;
  }
  .hero-inner{
    margin-top:-40px; /* smaller overlap */
  }
  .capsule{
    border-radius:28px;
    padding:34px 18px 26px;
  }
  .hero-grid{
    grid-template-columns:1fr;
    gap:20px;
  }
  .logo{
    width:360px;
    max-width:92vw;
  }
  .bullets{
    max-width:560px;
    text-align:left;
  }
  .bullets h3{
    text-align:center;
  }
}

/* Very small phones */
@media (max-width: 420px){
  .header{
  position:relative;
  height:240px;
  overflow:hidden;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

  .nav{
  position:relative;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  z-index:2;
}

  .nav a{padding:10px 12px;}
  .hero-inner{
    margin-top:-18px; /* basically stop overlap */
  }
  .logo{
    width:320px;
  }
}



/* Ensure header contains no text overlays */
.header h1,
.header h2,
.header .title,
.header .logo-text{
    display:none !important;
}

/* MOBILE LOGO CENTER FIX */
@media (max-width: 680px){
  .hero-inner{
    margin-top:-30px;
    text-align:center;
  }
  .hero-grid{
    grid-template-columns:1fr;
    justify-items:center;
    text-align:center;
  }
  .logo{
    margin:0 auto;
    display:block;
  }
  .bullets{
    text-align:left;
  }
}

/* Extra small devices */
@media (max-width: 420px){
  .hero-grid{
    justify-items:center;
  }
  .logo{
    margin:0 auto;
    display:block;
  }
}


/* ===== FORCE MOBILE LOGO CENTER ===== */
@media (max-width: 768px) {
  .logo,
  .hero .logo,
  .hero-inner .logo {
    display: block !important;
    position: relative !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: center !important;
    max-width: 90% !important;
  }

  .hero-inner,
  .hero,
  .hero-grid {
    text-align: center !important;
    justify-items: center !important;
    align-items: center !important;
  }
}


/* ===== MOBILE: SMALLER HEADER ===== */
@media (max-width: 768px) {
  .header {
    height: 45vh !important;
    min-height: 260px !important;
  }

  .header::before {
    background-size: cover !important;
    background-position: center top !important;
  }
}


/* ===============================
   FINAL MOBILE FIX
   =============================== */

/* 1. SHRINK HEADER ON MOBILE ONLY */
@media (max-width: 768px) {
  .header {
    height: 38vh !important;
    min-height: 220px !important;
    padding: 0 !important;
  }

  /* Ensure NO header text shows */
  .header h1,
  .header .hero-title,
  .header .hero-subtitle,
  .header .hero-text {
    display: none !important;
  }

  /* 2. HARD CENTER ENTIRE PAGE LOGO (IMAGE + LETTERING) */
  .logo-wrapper,
  .logo,
  .hero-logo,
  .hero .logo {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .logo img,
  .hero-logo img {
    display: block !important;
    margin: 0 auto !important;
  }
}

/* ===== v21 MOBILE: thinner header ===== */
@media (max-width: 768px){
  .header{
  position:relative;
  height:240px;
  overflow:hidden;
  background:#000;
  border-bottom:1px solid rgba(255,255,255,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}

}

/* ===== PRICING GRID ===== */
.pricing-hero { padding: 70px 20px; }
.pricing-grid {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.35fr 0.65fr;
  gap: 28px;
  align-items: start;
}
.pricing-left, .pricing-right {
  background: rgba(0,0,0,0.55);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 26px;
  padding: 26px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.45);
}
.floorplan-wrap { margin: 18px 0 22px; }
.floorplan-img {
  width: 100%;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.02);
}
.room-list { margin: 12px 0 0; padding-left: 20px; }
.room-list li { margin: 10px 0; line-height: 1.35; }

.pricing-cards { display: grid; gap: 14px; margin: 12px 0 18px; }
.price-card {
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  padding: 16px;
  background: rgba(0,0,0,0.35);
}
.price-card .price { font-size: 30px; margin: 8px 0 10px; color: #d4af37; }
.price-card ul { padding-left: 18px; margin: 0; }
.price-card li { margin: 6px 0; }

/* Quote CTA */
.cta-quote {
  display: inline-block;
  padding: 14px 18px;
  border-radius: 999px;
  background: #7b1f2a;
  border: 1px solid rgba(255,255,255,0.18);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
  text-align: center;
}
.cta-quote:hover { filter: brightness(1.08); }

/* Quote page */
.quote-wrap { max-width: 820px; margin: 0 auto; padding: 70px 20px; }
.quote-form {
  margin-top: 18px;
  background: rgba(0,0,0,0.55);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 26px;
  padding: 24px;
}
.form-row { display: grid; gap: 8px; margin: 14px 0; text-align: left; }
.form-row.two { grid-template-columns: 1fr 1fr; gap: 14px; }
input, select, textarea {
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,0.16);
  background: rgba(0,0,0,0.35);
  color: #fff;
}
label { font-weight: 700; opacity: 0.9; }
.muted { opacity: 0.75; }

@media (max-width: 900px){
  .pricing-grid { grid-template-columns: 1fr; }
  .form-row.two { grid-template-columns: 1fr; }
}



/* ===== Shire theme dressing for inner pages (not home) ===== */
.page-shell {
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
  padding: 30px 0 70px;
}

.page-hero {
  position: relative;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.12);
  background:
    radial-gradient(circle at 20% 0%, rgba(90,163,95,.12), transparent 45%),
    radial-gradient(circle at 80% 10%, rgba(217,184,74,.10), transparent 45%),
    linear-gradient(180deg, rgba(0,0,0,.70), rgba(0,0,0,.40));
  box-shadow: 0 24px 70px rgba(0,0,0,.55);
  overflow: hidden;
  padding: 44px 26px 22px;
  text-align: center;
}
.page-hero::before {
  content:"";
  position:absolute;
  left:0; right:0;
  top:0;
  height:110px;
  background: url('data:image/svg+xml;charset=utf-8,<svg xmlns=%27http://www.w3.org/2000/svg%27 width=%271200%27 height=%27120%27 viewBox=%270 0 1200 120%27> <path d=%27M0 60 C 120 95, 220 30, 340 60 C 460 90, 560 30, 680 60 C 800 90, 900 30, 1020 60 C 1100 80, 1160 50, 1200 60%27 fill=%27none%27 stroke=%27%232f6b3c%27 stroke-width=%2710%27 stroke-linecap=%27round%27/> <g fill=%27%235aa35f%27> <ellipse cx=%27120%27 cy=%2778%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%27260%27 cy=%2750%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%27420%27 cy=%2778%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%27560%27 cy=%2750%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%27720%27 cy=%2778%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%27860%27 cy=%2750%27 rx=%2718%27 ry=%2710%27/> <ellipse cx=%271020%27 cy=%2778%27 rx=%2718%27 ry=%2710%27/> </g> <g fill=%27%23d9b84a%27> <circle cx=%27180%27 cy=%2766%27 r=%276%27/> <circle cx=%27500%27 cy=%2766%27 r=%276%27/> <circle cx=%27820%27 cy=%2766%27 r=%276%27/> <circle cx=%271120%27 cy=%2766%27 r=%276%27/> </g> </svg>') center / cover no-repeat;
  opacity: .75;
  pointer-events:none;
}
.page-hero::after {
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: 28px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08);
  pointer-events:none;
}

.page-hero h1 {
  margin: 0 0 8px;
  font-weight: 900;
  letter-spacing: .02em;
}
.page-hero .sub {
  margin: 0 auto;
  max-width: 900px;
  opacity: .82;
  line-height: 1.7;
}

.page-card {
  position: relative;
  margin-top: 20px;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.45);
  box-shadow: 0 18px 55px rgba(0,0,0,.45);
  padding: 24px;
  overflow:hidden;
}
.page-card.vines::before, .page-card.vines::after { display:none !important; }
.page-card.vines::before { left:-60px; top:-60px; transform: rotate(0deg);}
.page-card.vines::after  { right:-60px; bottom:-60px; transform: rotate(180deg);}

.badge-leaf {
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.35);
  color: #fff;
  font-weight: 800;
  letter-spacing:.08em;
  text-transform: uppercase;
  font-size: 12px;
}
.badge-leaf .dot {
  width:10px;height:10px;border-radius:50%;
  background: #d4af37;
  box-shadow: 0 0 18px rgba(212,175,55,.25);
}

/* Per-page accents */
body.page-venue .page-hero { background:
  radial-gradient(circle at 30% 0%, rgba(90,163,95,.15), transparent 55%),
  radial-gradient(circle at 70% 10%, rgba(217,184,74,.10), transparent 55%),
  linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.35));
}
body.page-community .page-hero { background:
  radial-gradient(circle at 25% 0%, rgba(90,163,95,.18), transparent 55%),
  radial-gradient(circle at 80% 15%, rgba(123,31,42,.14), transparent 55%),
  linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.35));
}
body.page-pricing .page-hero { background:
  radial-gradient(circle at 25% 0%, rgba(217,184,74,.15), transparent 55%),
  radial-gradient(circle at 80% 15%, rgba(90,163,95,.12), transparent 55%),
  linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.35));
}
body.page-reviews .page-hero { background:
  radial-gradient(circle at 30% 0%, rgba(90,163,95,.14), transparent 55%),
  radial-gradient(circle at 75% 12%, rgba(255,255,255,.10), transparent 55%),
  linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.35));
}
body.page-contact .page-hero { background:
  radial-gradient(circle at 30% 0%, rgba(123,31,42,.16), transparent 55%),
  radial-gradient(circle at 75% 12%, rgba(90,163,95,.12), transparent 55%),
  linear-gradient(180deg, rgba(0,0,0,.75), rgba(0,0,0,.35));
}

@media (max-width: 768px) {
  .page-shell { width: min(1200px, calc(100% - 24px)); padding: 26px 0 54px; }
  .page-hero { padding: 34px 16px 18px; }
  .page-card { padding: 18px; }
  .page-card.vines::before, .page-card.vines::after { display:none !important; }
}


/* =========================
   ELVEN LUXURY (Modern + Shire)
   ========================= */
body.elven {
  background: radial-gradient(circle at 30% 0%, rgba(25,70,45,.30), transparent 55%),
              radial-gradient(circle at 70% 10%, rgba(198,169,90,.16), transparent 60%),
              linear-gradient(180deg, #050606 0%, #090b09 40%, #050606 100%);
}

.page-shell {
  width: min(1200px, calc(100% - 40px));
  margin: 0 auto;
  padding: 48px 0 84px;
}

.elven-hero {
  position: relative;
  border-radius: 30px;
  border: 1px solid rgba(255,255,255,.12);
  background: linear-gradient(180deg, rgba(0,0,0,.78), rgba(0,0,0,.40));
  box-shadow: 0 26px 80px rgba(0,0,0,.55);
  overflow: hidden;
}
.elven-hero::before {
  content:"";
  position:absolute;
  left:0; top:0;
  width: 360px; height: 360px;
  background: url('../images/decor/corner_left.png') left top / contain no-repeat;
  opacity: .85;
  pointer-events:none;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.45));
}
.elven-hero::after {
  content:"";
  position:absolute;
  right:0; bottom:0;
  width: 360px; height: 360px;
  background: url('../images/decor/corner_right.png') right bottom / contain no-repeat;
  opacity: .85;
  pointer-events:none;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.45));
}
.elven-hero-inner {
  padding: 44px 26px 28px;
  text-align:center;
}
.elven-hero .eyebrow {
  display:inline-block;
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  letter-spacing: .18em;
  text-transform: uppercase;
  font-weight: 800;
  font-size: 12px;
  color: rgba(255,255,255,.9);
}
.elven-hero h1 {
  margin: 14px 0 10px;
  font-weight: 900;
  letter-spacing: .02em;
}
.elven-hero .sub {
  max-width: 900px;
  margin: 0 auto;
  opacity: .84;
  line-height: 1.7;
}

.elven-card {
  margin-top: 20px;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.48);
  box-shadow: 0 18px 60px rgba(0,0,0,.50);
  padding: 26px;
}
.elven-card h2 {
  margin-top: 24px;
  padding-top: 8px;
  border-top: 1px solid rgba(198,169,90,.26);
}
.elven-card h2:first-child { margin-top: 0; border-top: none; padding-top: 0;}

.feature-grid {
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 18px 0 10px;
}
.feature-card {
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.35);
  padding: 18px;
}
.feature-card h3 { margin: 0 0 10px; }
.feature-card ul { margin: 0; padding-left: 18px; }
.feature-card li { margin: 8px 0; opacity: .92; }

.amenity-grid {
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 12px;
}
.amenity {
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.30);
  padding: 14px 14px;
  text-align:center;
  font-weight: 700;
  opacity: .92;
}

/* Gallery */
.gallery-controls {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin: 12px 0 14px;
}
.g-filter {
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  color: #fff;
  cursor:pointer;
  font-weight: 800;
  letter-spacing:.06em;
  text-transform: uppercase;
  font-size: 12px;
}
.g-filter.is-active {
  border-color: rgba(198,169,90,.65);
  box-shadow: 0 0 0 3px rgba(198,169,90,.16);
}

.elven-gallery {
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
}
.g-item {
  display:block;
  border-radius: 18px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.02);
  box-shadow: 0 16px 40px rgba(0,0,0,.45);
  transform: translateY(0);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.g-item:hover {
  transform: translateY(-4px);
  border-color: rgba(198,169,90,.45);
  box-shadow: 0 22px 55px rgba(0,0,0,.55);
}
.g-item img {
  width:100%;
  height: 260px;
  object-fit: cover;
  display:block;
}

/* Lightbox */
.no-scroll { overflow:hidden; }
.lb {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.72);
  backdrop-filter: blur(10px);
  display:none;
  z-index: 9999;
  align-items:center;
  justify-content:center;
  padding: 22px;
}
.lb.is-open { display:flex; }
.lb-figure {
  max-width: min(1100px, 92vw);
  max-height: 86vh;
  margin:0;
  position:relative;
}
.lb-img {
  width:100%;
  max-height: 76vh;
  object-fit: contain;
  border-radius: 18px;
  border: 1px solid rgba(198,169,90,.35);
  box-shadow: 0 30px 90px rgba(0,0,0,.70);
  background: rgba(0,0,0,.35);
}
.lb-cap {
  margin-top: 12px;
  text-align:center;
  color: rgba(255,255,255,.92);
  opacity:.9;
  letter-spacing:.06em;
}
.lb-close {
  position:absolute;
  top: 18px;
  right: 18px;
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.45);
  color:#fff;
  font-size: 28px;
  cursor:pointer;
}
.lb-prev, .lb-next {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.45);
  color:#fff;
  font-size: 34px;
  cursor:pointer;
  margin: 0 10px;
}
.lb-prev:hover, .lb-next:hover, .lb-close:hover {
  border-color: rgba(198,169,90,.55);
  box-shadow: 0 0 0 3px rgba(198,169,90,.16);
}

@media (max-width: 900px){
  .feature-grid { grid-template-columns: 1fr; }
  .amenity-grid { grid-template-columns: repeat(2, 1fr); }
  .g-item img { height: 220px; }
}

/* Simple two-column content blocks (used for Community & Events / Reviews) */
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:8px;}
.col-card{background:rgba(0,0,0,.38);border:1px solid rgba(255,255,255,.10);border-radius:22px;padding:22px 22px 18px;box-shadow:0 18px 40px rgba(0,0,0,.35);}
.col-card h2{margin:0 0 10px;font-size:26px;font-weight:900;letter-spacing:.01em;}
.col-card .muted{opacity:.88;}
.bullets{margin:14px 0 0;padding-left:18px;color:#d8d8d8;line-height:1.8;}
.cta-row{display:flex;gap:12px;align-items:center;margin-top:18px;}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border-radius:999px;background:rgba(123,31,42,.92);border:1px solid rgba(255,255,255,.12);font-weight:900;font-size:12px;letter-spacing:.06em;box-shadow:0 10px 22px rgba(0,0,0,.32);}
.btn:hover{background:rgba(138,36,48,.96);transform:translateY(-1px)}
.btn:active{transform:translateY(0px)}
.quote-box{margin-top:14px;padding:14px 14px 12px;border-radius:16px;background:rgba(0,0,0,.26);border:1px solid rgba(255,255,255,.10);}
.quote-box p{margin:0 0 8px;color:#e7e7e7;line-height:1.7;}
.quote-box span{display:block;opacity:.8;font-size:12px;}

@media (max-width: 860px){
  .two-col{grid-template-columns:1fr;}
}

/* About page logo (medium size under header) */
.about-logo{width:280px;max-width:72vw;filter: drop-shadow(0 24px 70px rgba(0,0,0,.65));}


/* Page title under nav */
/* Page title shown inside the header (below nav buttons) */
@media (min-width:768px){}
@media (max-width:768px){
  /* nav may wrap to two lines on small screens */
  }

.page-card.vines::before, .page-card.vines::after{display:none !important;}

/* Pricing page: remove any green/vine decorative glow remnants */
body.page-pricing .page-hero{display:none !important;}



/* ===== PRICING: STONE & MOSS (REALISTIC) ===== */
.page-pricing .pricing-hero{
  position: relative;
  background: url('../images/tx_stone.webp') center/cover no-repeat fixed;
  padding: 70px 20px;
}
.page-pricing .pricing-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background: radial-gradient(circle at 50% 30%, rgba(0,0,0,0.15), rgba(0,0,0,0.65) 70%);
  pointer-events:none;
}
.page-pricing .pricing-grid{ position: relative; z-index: 1; }

/* Stone panels for the two main columns */
.page-pricing .pricing-left,
.page-pricing .pricing-right{
  background: url('../images/panel_stone.png') center/cover no-repeat;
  border: 1px solid rgba(255,255,255,0.10);
  box-shadow: 0 26px 70px rgba(0,0,0,0.60);
}

/* Make text feel etched/engraved */
.page-pricing h1,
.page-pricing h2,
.page-pricing h3{
  color: rgba(240,240,240,0.92);
  text-shadow:
    0 1px 0 rgba(0,0,0,0.75),
    0 -1px 0 rgba(255,255,255,0.08);
  letter-spacing: 0.3px;
}

.page-pricing .muted{
  color: rgba(235,235,235,0.78);
}

/* Price cards as "carved slabs" inside the stone panel */
.page-pricing .price-card{
  position: relative;
  background: rgba(0,0,0,0.20);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow:
    inset 0 2px 10px rgba(0,0,0,0.55),
    inset 0 -1px 0 rgba(255,255,255,0.10);
}
.page-pricing .price-card::before{
  content:"";
  position:absolute;
  left: 12px;
  right: 12px;
  top: 10px;
  height: 70px;
  background: url('../images/tx_moss.png') center/cover no-repeat;
  opacity: 0.55;
  filter: blur(0.2px);
  pointer-events:none;
  border-radius: 14px;
  mix-blend-mode: screen;
}

/* "Etched" pricing */
.page-pricing .price-card .price{
  color: rgba(235,235,235,0.92);
  text-shadow:
    0 2px 0 rgba(0,0,0,0.80),
    0 -1px 0 rgba(255,255,255,0.10);
  letter-spacing: 0.6px;
}

/* Floorplan still readable on stone */
.page-pricing .floorplan-img{
  background: rgba(255,255,255,0.03);
  box-shadow: 0 14px 40px rgba(0,0,0,0.45);
}



body.home .header .nav{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px;
  margin: 0;
}



body.home .header .nav{
    position: absolute;
    top: 28px;              /* raised from previous; still slightly below top */
    left: 50%;
    transform: translateX(-50%);
}



/* v44: Dark luxury theme (black + silver/gold accents) for all pages except Home */
body.theme-dark{
  background: #050507;
  color: rgba(255,255,255,0.86);
}

body.theme-dark .main,
body.theme-dark main,
body.theme-dark .content{
  color: rgba(255,255,255,0.86);
}

body.theme-dark a{ color: #c8a24a; }
body.theme-dark a:hover{ color: #e0c57a; }

/* Header on dark theme pages: keep background image but add dark overlay */
body.theme-dark .header{position:sticky;}
body.theme-dark .header::before{content:none;}

/* Nav buttons: silver with gold hover */
body.theme-dark .nav-btn{
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.88);
  box-shadow: 0 8px 20px rgba(0,0,0,0.45);
}
body.theme-dark .nav-btn:hover{
  border-color: rgba(200,162,74,0.65);
  color: rgba(255,255,255,0.95);
  box-shadow: 0 10px 26px rgba(0,0,0,0.55), 0 0 0 1px rgba(200,162,74,0.18) inset;
}

/* Headings */
body.theme-dark h1, body.theme-dark h2, body.theme-dark h3{
  color: rgba(255,255,255,0.92);
}

/* Panels / cards */
body.theme-dark .panel,
body.theme-dark .card,
body.theme-dark .section-card,
body.theme-dark .price-card,
body.theme-dark .event-col{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 18px 55px rgba(0,0,0,0.50);
}

/* Accent rule */
body.theme-dark .accent-rule{
  height: 1px;
  background: linear-gradient(90deg, rgba(200,162,74,0.0), rgba(200,162,74,0.65), rgba(192,199,209,0.55), rgba(200,162,74,0.0));
  border: none;
  margin: 18px auto;
  width: min(720px, 92%);
}

/* Primary CTA button */
body.theme-dark .btn-primary,
body.theme-dark .cta-quote,
body.theme-dark .cta{
  display: inline-block;
  background: linear-gradient(135deg, rgba(200,162,74,0.95), rgba(145,112,38,0.95));
  color: #0b0b0c !important;
  border: 1px solid rgba(255,255,255,0.10);
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 800;
  letter-spacing: 0.3px;
  text-decoration: none;
  box-shadow: 0 14px 40px rgba(0,0,0,0.55);
}
body.theme-dark .btn-primary:hover,
body.theme-dark .cta-quote:hover,
body.theme-dark .cta:hover{
  filter: brightness(1.05);
}

/* Secondary button */
body.theme-dark .btn-secondary{
  display:inline-block;
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.9);
  border: 1px solid rgba(255,255,255,0.16);
  padding: 12px 18px;
  border-radius: 999px;
  text-decoration:none;
  font-weight: 700;
}
body.theme-dark .btn-secondary:hover{
  border-color: rgba(192,199,209,0.55);
}



/* v44: Pricing page – 3 category sections */
.page-pricing main{
  padding: 60px 0 90px;
}
.page-pricing .pricing-intro{
  width: min(980px, 92%);
  margin: 0 auto 26px;
  text-align: center;
}
.page-pricing .pricing-intro h1{
  font-size: 44px;
  margin: 0 0 10px;
}
.page-pricing .pricing-intro p{
  margin: 0 auto 0;
  max-width: 780px;
  color: rgba(255,255,255,0.72);
}

.page-pricing .pricing-sections{
  width: min(1100px, 92%);
  margin: 26px auto 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
@media (max-width: 980px){
  .page-pricing .pricing-sections{ grid-template-columns: 1fr; }
}

.page-pricing .pricing-section{
  border-radius: 22px;
  padding: 22px 22px 20px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  box-shadow: 0 18px 55px rgba(0,0,0,0.55);
  position: relative;
  overflow:hidden;
}
.page-pricing .pricing-section::before{
  content:"";
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(closest-side, rgba(200,162,74,0.12), rgba(200,162,74,0.0) 70%),
    radial-gradient(closest-side, rgba(192,199,209,0.10), rgba(192,199,209,0.0) 72%);
  transform: rotate(-8deg);
  pointer-events:none;
}
.page-pricing .pricing-section > *{ position: relative; }

.page-pricing .kicker{
  display:inline-block;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(192,199,209,0.85);
  margin-bottom: 10px;
}
.page-pricing .pricing-section h2{
  margin: 0 0 8px;
  font-size: 26px;
}
.page-pricing .starting{
  font-size: 18px;
  font-weight: 900;
  color: rgba(255,255,255,0.88);
  margin: 8px 0 14px;
}
.page-pricing .starting span{
  color: rgba(200,162,74,0.95);
}
.page-pricing .pricing-section ul{
  margin: 0 0 18px;
  padding-left: 18px;
  color: rgba(255,255,255,0.74);
}
.page-pricing .pricing-section li{ margin: 6px 0; }
.page-pricing .pricing-actions{
  display:flex;
  gap: 10px;
  flex-wrap: wrap;
}






/* v51: homepage matches mobile stacked layout */
body.home-match-mobile .header{
  position: relative;
  height: auto;
  min-height: 0;
  padding: 14px 12px 8px;
  z-index: 40;
}
body.home-match-mobile .header .nav{
  position: static;
  left: auto;
  top: auto;
  transform: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px 22px;
  width: min(760px, 96vw);
  margin: 0 auto;
  z-index: 50;
}
body.home-match-mobile .hero{
  padding-top: 6px;
}
body.home-match-mobile .hero-inner,
body.home-match-mobile .capsule{
  width: min(760px, 94vw);
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
body.home-match-mobile .capsule{
  padding: 22px 18px 28px;
  border-radius: 34px;
}
body.home-match-mobile .hero-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  text-align: center;
  align-items: start;
}
body.home-match-mobile .bullets.left,
body.home-match-mobile .bullets.right{
  max-width: 100%;
  width: 100%;
  text-align: center;
  margin: 0 auto;
}
body.home-match-mobile .bullets.left{ order: 1; }
body.home-match-mobile .hero-grid > div:nth-child(2){ order: 2; }
body.home-match-mobile .bullets.right{ order: 3; }
body.home-match-mobile .bullets h3{
  text-align: center;
  letter-spacing: 2px;
  margin-bottom: 10px;
}
body.home-match-mobile .bullets ul{
  display: inline-block;
  text-align: left;
  margin: 0 auto;
  padding-left: 24px;
}
body.home-match-mobile .logo{
  display: block;
  width: min(430px, 78vw);
  max-width: 430px;
  height: auto;
  margin: 0 auto;
}
body.home-match-mobile .hero-actions,
body.home-match-mobile .cta-row,
body.home-match-mobile .hero-ctas{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 14px;
}
body.home-match-mobile .hero-actions a,
body.home-match-mobile .cta-row a,
body.home-match-mobile .hero-ctas a{
  margin: 0;
}
body.home-match-mobile footer{
  margin-top: 24px;
}
@media (min-width: 981px){
  body.home-match-mobile .hero-grid{
    grid-template-columns: 1fr;
  }
}




/* v52 homepage booking funnel styling */
.venue-highlights, .event-types, .packages-preview, .tour-cta, .availability, .final-cta{
max-width:900px;
margin:60px auto;
text-align:center;
}
.event-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
gap:16px;
margin-top:20px;
}
.package-grid{
display:grid;
grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
gap:16px;
margin-top:20px;
}
.cta-buttons{
display:flex;
gap:20px;
justify-content:center;
flex-wrap:wrap;
margin-top:20px;
}



/* v53 booking tools page */
.page-booking main{
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 18px 90px;
}
.booking-hero{
  max-width: 900px;
  margin: 0 auto 28px;
  text-align: center;
}
.booking-hero h1{
  margin: 0 0 10px;
}
.booking-hero p{
  max-width: 760px;
  margin: 0 auto 18px;
}
.booking-hero-actions{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
}
.booking-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
@media (max-width: 900px){
  .booking-grid{ grid-template-columns: 1fr; }
}
.booking-card{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  padding: 22px;
  box-shadow: 0 18px 55px rgba(0,0,0,0.45);
}
.booking-kicker{
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(192,199,209,0.82);
  margin-bottom: 10px;
}
.booking-card h2{
  margin: 0 0 8px;
}
.booking-card p{
  color: rgba(255,255,255,0.76);
}
.embed-placeholder{
  margin: 16px 0;
  min-height: 180px;
  border: 1px dashed rgba(200,162,74,0.55);
  border-radius: 18px;
  background: rgba(255,255,255,0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 18px;
  text-align: center;
}
.code-note{
  margin-top: 10px;
}
.code-note pre{
  white-space: pre-wrap;
  word-break: break-word;
  background: rgba(0,0,0,0.35);
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: 14px;
  padding: 12px;
  color: rgba(255,255,255,0.85);
  overflow: auto;
}
.contact-booking-links{
  max-width: 900px;
  margin: 50px auto 0;
  text-align: center;
}




/* v54 admin hub + traffic */
.page-admin-hub main{
  max-width: 1200px;
  margin: 0 auto;
  padding: 56px 18px 90px;
}
.admin-hub-hero{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:28px;
}
.admin-kicker{
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(192,199,209,0.82);
  margin:0 0 8px;
}
.admin-section{
  margin: 0 0 28px;
}
.admin-card-grid,
.admin-links-grid{
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:18px;
}
@media (max-width: 1000px){
  .admin-card-grid,
  .admin-links-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px){
  .admin-hub-hero{ flex-direction:column; }
  .admin-card-grid,
  .admin-links-grid{ grid-template-columns: 1fr; }
}
.admin-card,
.admin-input-card,
.admin-link-card{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 22px;
  padding: 20px;
  box-shadow: 0 18px 55px rgba(0,0,0,0.45);
}
.admin-card h3,
.admin-link-card h3{
  margin:0 0 10px;
}
.admin-number{
  font-size: 34px;
  line-height:1;
  font-weight:900;
  color: rgba(200,162,74,0.95);
  margin: 0;
}
.admin-input-grid{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.admin-input-card span{
  display:block;
  margin:0 0 10px;
  font-weight:700;
}
.admin-input-card input,
.admin-link-card input,
#adminNotes,
#adminPassword{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,0.14);
  background: rgba(0,0,0,0.28);
  color: rgba(255,255,255,0.92);
  padding: 12px 14px;
  box-sizing:border-box;
}
.admin-link-card{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.is-disabled{
  pointer-events:none;
  opacity:0.55;
}
.admin-note,
.admin-small,
.admin-error{
  color: rgba(255,255,255,0.72);
}
.admin-gate{
  min-height: 70vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 40px 18px 90px;
}
.admin-gate-card{
  width:min(520px, 100%);
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 24px;
  box-shadow: 0 18px 55px rgba(0,0,0,0.50);
  padding: 28px;
  text-align:center;
}
.admin-gate-card form{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top: 16px;
}




/* v56 full build polish */
.owner-access-link{
  display:inline-block;
  margin-top:16px;
  font-size:12px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.40);
  text-decoration:none;
  border:1px solid rgba(255,255,255,0.14);
  padding:6px 10px;
  border-radius:999px;
}
.owner-access-link:hover{
  color:rgba(255,255,255,0.82);
  border-color:rgba(200,162,74,0.45);
}
.page-admin-hub .owner-access-link{ display:none; }

body.home.home-match-mobile .header{
  position:relative;
  height:auto;
  min-height:0;
  padding:14px 12px 8px;
  z-index:40;
}
body.home.home-match-mobile .header .nav{
  position:static;
  left:auto;
  top:auto;
  transform:none;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:14px 22px;
  width:min(760px, 96vw);
  margin:0 auto;
}
body.home.home-match-mobile .hero{
  padding-top:6px;
}
body.home.home-match-mobile .hero-inner,
body.home.home-match-mobile .capsule{
  width:min(760px, 94vw);
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
body.home.home-match-mobile .capsule{
  padding:22px 18px 28px;
  border-radius:34px;
}
body.home.home-match-mobile .hero-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  text-align:center;
  align-items:start;
}
body.home.home-match-mobile .bullets.left,
body.home.home-match-mobile .bullets.right{
  max-width:100%;
  width:100%;
  text-align:center;
  margin:0 auto;
}
body.home.home-match-mobile .bullets.left{ order:1; }
body.home.home-match-mobile .hero-grid > div:nth-child(2){ order:2; }
body.home.home-match-mobile .bullets.right{ order:3; }
body.home.home-match-mobile .bullets h3{
  text-align:center;
  letter-spacing:2px;
  margin-bottom:10px;
}
body.home.home-match-mobile .bullets ul{
  display:inline-block;
  text-align:left;
  margin:0 auto;
  padding-left:24px;
}
body.home.home-match-mobile .logo{
  display:block;
  width:min(430px, 78vw);
  max-width:430px;
  height:auto;
  margin:0 auto;
}

.home-funnel-section{
  padding:58px 18px 0;
}
.home-funnel-inner{
  width:min(980px, 100%);
  margin:0 auto;
  text-align:center;
}
.home-funnel-inner.narrow{ width:min(760px, 100%); }
.section-kicker{
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  opacity:.8;
  margin:0 0 8px;
}
.section-copy{
  max-width:720px;
  margin:10px auto 0;
  opacity:.85;
}
.highlight-grid,
.preview-grid,
.package-preview-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:18px;
  margin-top:22px;
}
.highlight-card,
.preview-card,
.package-preview-card{
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:20px;
  background:rgba(255,255,255,.04);
  box-shadow:0 18px 55px rgba(0,0,0,.20);
  text-decoration:none;
  color:inherit;
}
.highlight-card strong,
.package-preview-card strong{
  display:block;
  margin-bottom:8px;
}
.highlight-card span,
.package-preview-card span{
  opacity:.82;
  display:block;
}
.preview-card span{
  display:block;
  font-weight:700;
}
.center-actions{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}
.availability-list{
  list-style:none;
  padding:0;
  margin:20px auto 0;
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.availability-list li{
  padding:12px 16px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
}

.page-booking main{
  max-width:1200px;
  margin:0 auto;
  padding:56px 18px 90px;
}
.booking-hero{
  max-width:900px;
  margin:0 auto 28px;
  text-align:center;
}
.booking-hero-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:12px;
}
.booking-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:18px;
}
@media (max-width:900px){
  .booking-grid{ grid-template-columns:1fr; }
}
.booking-card,
.admin-card,
.admin-input-card,
.admin-link-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:22px;
  box-shadow:0 18px 55px rgba(0,0,0,.45);
}
.booking-kicker,
.admin-kicker{
  font-size:12px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:rgba(192,199,209,.82);
  margin-bottom:10px;
}
.embed-placeholder{
  margin:16px 0;
  min-height:180px;
  border:1px dashed rgba(200,162,74,.55);
  border-radius:18px;
  background:rgba(255,255,255,.03);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:18px;
  text-align:center;
}
.code-note pre{
  white-space:pre-wrap;
  word-break:break-word;
  background:rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  padding:12px;
  color:rgba(255,255,255,.85);
  overflow:auto;
}

.page-admin-hub main{
  max-width:1200px;
  margin:0 auto;
  padding:56px 18px 90px;
}
.admin-hub-hero{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-start;
  margin-bottom:28px;
}
.admin-card-grid,
.admin-links-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:18px;
}
.admin-number{
  font-size:40px;
  line-height:1;
  font-weight:900;
  color:rgba(200,162,74,.95);
  margin:0;
}
.admin-input-card span{
  display:block;
  margin:0 0 10px;
  font-weight:700;
}
.admin-input-card input,
.admin-link-card input,
#adminNotes,
#adminPassword{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.28);
  color:rgba(255,255,255,.92);
  padding:12px 14px;
  box-sizing:border-box;
}
.admin-link-card{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.is-disabled{
  pointer-events:none;
  opacity:.55;
}
.admin-gate{
  min-height:70vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 18px 90px;
}
.admin-gate-card{
  width:min(520px,100%);
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  box-shadow:0 18px 55px rgba(0,0,0,.50);
  padding:28px;
  text-align:center;
}
.admin-gate-card form{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:16px;
}
@media (max-width:1000px){
  .admin-card-grid,
  .admin-links-grid{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width:700px){
  .admin-hub-hero{ flex-direction:column; }
  .admin-card-grid,
  .admin-links-grid{ grid-template-columns:1fr; }
}




/* v64 professional quote + booking refresh */
.page-quote-pro .header,
.page-booking-pro .header{
  padding: 18px 18px 22px;
}

.quote-pro-main,
.booking-pro-main{
  max-width: 1180px;
  margin: 0 auto;
  padding: 40px 18px 90px;
}

.quote-pro-hero,
.booking-pro-hero{
  max-width: 900px;
  margin: 0 auto 26px;
  text-align: center;
}

.quote-pro-kicker,
.booking-pro-kicker{
  margin: 0 0 8px;
  font-size: 12px;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: rgba(215,221,230,.82);
}

.quote-pro-hero h1,
.booking-pro-hero h1{
  margin: 0;
  font-size: clamp(34px, 4.2vw, 56px);
  line-height: 1.06;
}

.quote-pro-copy,
.booking-pro-copy{
  max-width: 760px;
  margin: 14px auto 0;
  color: rgba(255,255,255,.80);
  line-height: 1.6;
}

.quote-pro-grid,
.booking-pro-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.quote-pro-card,
.booking-pro-card{
  min-height: 100%;
  padding: 26px;
  border-radius: 28px;
  background:
    radial-gradient(420px 200px at 50% 0%, rgba(200,162,74,.08), rgba(0,0,0,0) 65%),
    linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.03));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 50px rgba(0,0,0,.34);
}

.quote-pro-card h2,
.booking-pro-card h2{
  margin: 0 0 12px;
  font-size: 28px;
}

.quote-pro-field{
  margin-bottom: 18px;
}

.quote-pro-field label{
  display: block;
  margin-bottom: 8px;
  font-weight: 700;
  color: rgba(255,255,255,.94);
}

.quote-pro-field select{
  width: 100%;
  padding: 13px 14px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(15,18,24,.92);
  color: white;
  box-sizing: border-box;
}

.quote-pro-note-box,
.booking-pro-helper,
.booking-pro-date-box,
.booking-pro-placeholder{
  margin-top: 18px;
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  padding: 18px;
}

.quote-pro-note-box ul{
  margin: 10px 0 0;
  padding-left: 20px;
}

.quote-pro-summary-row{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255,255,255,.08);
  font-size: 17px;
}

.quote-pro-summary-row strong{
  color: rgba(200,162,74,.98);
  font-size: 28px;
}

.quote-pro-warning{
  min-height: 22px;
  margin: 16px 0 0;
  color: #f3d78a;
}

.quote-pro-actions,
.booking-pro-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
  justify-content: center;
}

.booking-pro-text{
  color: rgba(255,255,255,.80);
  line-height: 1.55;
}

.booking-pro-placeholder{
  min-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,.76);
}

@media (max-width: 920px){
  .quote-pro-grid,
  .booking-pro-grid{
    grid-template-columns: 1fr;
  }
}


/* v70 homepage + reviews polish */
.footer-block{
  max-width:1200px;
  margin:0 auto;
  padding:14px 16px 0;
  text-align:center;
  opacity:.92;
  line-height:1.8;
}
.footer-block strong{
  display:block;
  color:#fff;
  margin-bottom:2px;
}

.booking-steps-section .steps-grid,
.steps-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:24px;
}
.step-card{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px;
  padding:22px 18px;
  box-shadow:0 18px 55px rgba(0,0,0,.24);
}
.step-number{
  display:inline-flex;
  width:34px;
  height:34px;
  border-radius:999px;
  align-items:center;
  justify-content:center;
  background:rgba(123,31,42,.95);
  border:1px solid rgba(255,255,255,.14);
  font-weight:900;
  margin-bottom:12px;
}
.step-card strong{
  display:block;
  margin-bottom:8px;
}
.step-card p{
  margin:0;
  opacity:.84;
  line-height:1.7;
}

.reviews-trust-section{
  margin-top:30px;
}
.trust-card{
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  padding:24px;
  background:rgba(255,255,255,.04);
  box-shadow:0 18px 55px rgba(0,0,0,.28);
}
.trust-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:16px;
  text-align:left;
}
.trust-grid strong{
  display:block;
  margin-bottom:6px;
}
.trust-grid span{
  display:block;
  opacity:.84;
  line-height:1.7;
}

@media (max-width: 980px){
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width: 700px){
  .steps-grid,
  .trust-grid{grid-template-columns:1fr;}
}


/* ssec-v89-active-fix */
.nav a.active,
.nav-btn.active,
.header .nav a.active{
  background: linear-gradient(180deg, rgba(212,175,55,.95), rgba(177,137,33,.95)) !important;
  color: #120d08 !important;
  border-color: rgba(255,255,255,.18) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.34) !important;
}

.btn,
.btn-ghost,
.nav a,
.nav-btn,
button,
input[type="submit"],
input[type="button"]{
  position:relative;
  overflow:hidden;
}

.btn::after,
.btn-ghost::after,
.nav a::after,
.nav-btn::after,
button::after,
input[type="submit"]::after,
input[type="button"]::after{
  content:"";
  position:absolute;
  top:-120%;
  left:-35%;
  width:32%;
  height:320%;
  transform: rotate(22deg) translateX(-220%);
  background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.14) 45%, rgba(255,255,255,.42) 50%, rgba(255,255,255,.14) 55%, rgba(255,255,255,0) 100%);
  pointer-events:none;
}

.btn:hover::after,
.btn-ghost:hover::after,
.nav a:hover::after,
.nav-btn:hover::after,
button:hover::after,
input[type="submit"]:hover::after,
input[type="button"]:hover::after{
  animation:ssecButtonShine .85s ease forwards;
}

@keyframes ssecButtonShine{
  0%{transform: rotate(22deg) translateX(-220%);}
  100%{transform: rotate(22deg) translateX(520%);}
}


/* ssec-v92-subtitle-gold */
.hero-card h2,
.section-card h2,
main h2{
  color: var(--gold) !important;
}

.hero-card{
  padding:30px 24px;
  margin-bottom:18px;
}

/* ensure page titles appear inside card like venue page */
.page-title-card{
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.12);
  border-radius:32px;
  box-shadow:0 30px 90px rgba(0,0,0,.40);
  padding:30px 24px;
  margin-bottom:18px;
  text-align:center;
}


/* ssec-v93-card-style-match-community */
.hero-card,
.section-card,
.page-title-card{
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-radius:32px !important;
  box-shadow:0 30px 90px rgba(0,0,0,.40) !important;
  padding:30px 24px;
  margin-bottom:18px;
}



/* ssec-v94-active-nav-fix */
.header .nav a.active,
.nav a.active,
.nav-btn.active{
  background: linear-gradient(180deg, rgba(212,175,55,.96), rgba(177,137,33,.96)) !important;
  color: #120d08 !important;
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.34) !important;
  opacity: 1 !important;
}

.page-title-card,
.hero-card,
.section-card{
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 32px !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.40) !important;
}


/* ssec-v95-fixes */
.header .nav a.active,
.nav a.active,
.nav-btn.active{
  background: linear-gradient(180deg, rgba(212,175,55,.96), rgba(177,137,33,.96)) !important;
  color: #120d08 !important;
  border-color: rgba(255,255,255,.22) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.34) !important;
  opacity: 1 !important;
}

.title-card,
.section-card.title-card,
.hero-card.title-card{
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 32px !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.40) !important;
  padding: 30px 24px !important;
  margin-bottom: 18px !important;
}
