/* ──────────────────────────────────────────────────────────────
   Rancho Escondido shared stylesheet
   Mobile-first. Content capped at 1400px on ultrawide.
   ────────────────────────────────────────────────────────────── */

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; overflow-x:hidden; }
body { font-family:'Jost',sans-serif; background:#f5efe5; color:#2c1f13; overflow-x:hidden; }
img { display:block; width:100%; height:100%; object-fit:cover; }
a { text-decoration:none; }

/* ─── TOPBAR ─── */
.topbar {
  position:fixed; top:0; left:0; right:0; z-index:300;
  background:#f5efe5;
  border-bottom:1px solid rgba(168,85,48,0.18);
}
.topbar-inner {
  max-width:1400px; margin:0 auto;
  display:flex; align-items:stretch;
  padding:0 3rem;
}
.brand {
  font-family:'Cormorant Garamond',serif;
  font-size:1.2rem; font-weight:300; letter-spacing:0.08em;
  color:#1c1208; white-space:nowrap;
  display:flex; align-items:center;
  padding:1rem 0; margin-right:2rem;
}
.brand em { font-style:italic; color:#a85530; }
.tabs-nav { display:flex; list-style:none; flex:1; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; }
.tabs-nav::-webkit-scrollbar { display:none; }
.tabs-nav li a {
  display:flex; align-items:center; padding:0 0.85rem; height:100%;
  font-size:0.65rem; letter-spacing:0.14em; text-transform:uppercase;
  color:#2c1f13; opacity:0.48; white-space:nowrap;
  border-bottom:2px solid transparent;
  transition:all 0.25s;
}
.tabs-nav li a:hover { opacity:0.85; }
.tabs-nav li a.on { opacity:1; color:#a85530; border-bottom-color:#a85530; }
.topbar-call {
  display:flex; align-items:center; padding-left:1.5rem; flex-shrink:0;
}
.topbar-call a {
  background:#a85530; color:#f5efe5;
  padding:0.58rem 1.4rem; border-radius:2px;
  font-size:0.65rem; letter-spacing:0.16em; text-transform:uppercase;
  transition:background 0.25s;
}
.topbar-call a:hover { background:#6e3a1c; }

/* ─── PAGE TOP OFFSET ─── */
.page { padding-top:60px; }

/* ─── HERO ─── */
.hero {
  min-height:100vh;
  background:linear-gradient(160deg,#f5efe5 0%,#ece1cc 40%,#E8D4A8 72%,#DDBB88 100%);
  display:flex; align-items:center;
  padding:5rem max(3rem, calc((100% - 1400px) / 2)) 5rem;
  position:relative; overflow:hidden;
}
.hero-video {
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit:cover;
  z-index:0;
  pointer-events:none;
}
.hero-overlay {
  position:absolute; inset:0;
  background:linear-gradient(
    to right,
    rgba(245,239,229,0.95) 0%,
    rgba(245,239,229,0.88) 25%,
    rgba(232,212,168,0.55) 55%,
    rgba(232,212,168,0.12) 80%,
    rgba(232,212,168,0) 100%
  );
  z-index:2;
  pointer-events:none;
}
.hero-glow {
  position:absolute; top:5%; right:0;
  width:60vw; height:100%;
  background:radial-gradient(ellipse at 70% 40%, rgba(196,158,100,0.13) 0%, transparent 60%);
  pointer-events:none;
  z-index:3;
}
.hero-r {
  position:absolute; right:-4vw; bottom:-8vh;
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:40vw; font-weight:300; line-height:0.85;
  color:rgba(168,85,48,0.055); pointer-events:none; user-select:none;
  z-index:1;
}
.hero-text { position:relative; z-index:4; max-width:600px; }
@media (prefers-reduced-motion: reduce) {
  .hero-video { animation:none; }
}
.hero-loc {
  font-size:0.6rem; letter-spacing:0.5em; text-transform:uppercase;
  color:#a85530; opacity:0.75; margin-bottom:1.8rem;
  display:flex; align-items:center; gap:0.9rem;
}
.hero-loc::before { content:''; width:30px; height:1px; background:#a85530; opacity:0.55; }
.hero-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3.2rem,6.5vw,5.8rem);
  font-weight:300; line-height:1.02; color:#1c1208; margin-bottom:0.7rem;
}
.hero-h1 em { display:block; font-style:italic; color:#a85530; }
.hero-soul {
  font-family:'Cormorant Garamond',serif; font-style:italic;
  font-size:1.1rem; font-weight:300;
  color:rgba(44,31,19,0.45); margin-bottom:2rem;
}
.hero-p {
  font-size:0.87rem; line-height:1.9; font-weight:300;
  color:rgba(44,31,19,0.6); max-width:420px; margin-bottom:2.5rem;
}
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }

/* ─── BUTTONS ─── */
.btn {
  display:inline-block; font-size:0.68rem; letter-spacing:0.18em;
  text-transform:uppercase; border-radius:2px; padding:0.9rem 2.2rem;
  transition:all 0.25s; cursor:pointer;
}
.btn-fill { background:#a85530; color:#f5efe5; }
.btn-fill:hover { background:#6e3a1c; }
.btn-ghost { border:1px solid rgba(44,31,19,0.22); color:#2c1f13; }
.btn-ghost:hover { border-color:#a85530; color:#a85530; }

/* ─── LAYOUT ─── */
.sec { padding:6rem max(3rem, calc((100% - 1400px) / 2)); }
.wrap { max-width:1200px; margin:0 auto; }
.bg-linen { background:#f5efe5; }
.bg-wheat { background:#ece1cc; }
.bg-sand  { background:#EDD9B8; }
.bg-dark  { background:#1c1208; }
.bg-mid   { background:#2c1f13; }

.cols2 { display:grid; grid-template-columns:1fr 1fr; gap:5rem; align-items:center; }
.cols3 { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }

/* ─── TYPE ─── */
.eyebrow {
  font-size:0.58rem; letter-spacing:0.45em; text-transform:uppercase;
  color:#a85530; margin-bottom:0.9rem;
  display:flex; align-items:center; gap:0.7rem;
}
.eyebrow::before { content:''; width:20px; height:1px; background:#a85530; }
.eyebrow.gold { color:#b8932e; }
.eyebrow.gold::before { background:#b8932e; }
.eyebrow.light { color:#b8932e; }
.eyebrow.light::before { background:#b8932e; }

.page-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.4rem,5vw,4rem); font-weight:300; line-height:1.05;
  color:#1c1208; margin-bottom:1rem;
}
.page-h1 em { font-style:italic; color:#a85530; }

.h2 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.9rem,3.5vw,2.8rem); font-weight:300; line-height:1.15;
  color:#1c1208; margin-bottom:1.3rem;
}
.h2 em { font-style:italic; color:#a85530; }
.h2.ondk { color:#ece1cc; }
.h2.ondk em { color:#b8932e; }

.body-p { font-size:0.88rem; line-height:1.9; font-weight:300; color:rgba(44,31,19,0.65); margin-bottom:1rem; }
.body-p strong { font-weight:400; color:#2c1f13; }
.body-p.ondk { color:rgba(236,225,204,0.6); }
.body-p.ondk strong { color:#ece1cc; }
.body-p.lead { font-size:1rem; line-height:1.75; color:rgba(44,31,19,0.7); max-width:60ch; }
.rule { width:38px; height:1px; background:rgba(168,85,48,0.3); margin:1.5rem 0; }

/* ─── ABOUT IMAGE ─── */
.img-rel { position:relative; }
.img-box { border-radius:3px; overflow:hidden; }
.img-box.tall { aspect-ratio:3/4; }
.img-box.med  { aspect-ratio:4/3; }
.img-box.sq   { aspect-ratio:1; }
.img-float {
  position:absolute; bottom:-1.8rem; right:-1.8rem;
  width:46%; aspect-ratio:1; border-radius:3px;
  overflow:hidden; box-shadow:0 14px 40px rgba(28,18,8,0.14);
}
.img-pin {
  position:absolute; top:-1.4rem; left:-1.8rem; z-index:2;
  background:#f5efe5; border:1px solid rgba(168,85,48,0.18);
  padding:0.8rem 1.2rem; border-radius:3px;
  box-shadow:0 3px 14px rgba(28,18,8,0.07);
  font-size:0.68rem; color:rgba(44,31,19,0.65); line-height:1.6;
}
.img-pin strong { display:block; font-size:0.52rem; letter-spacing:0.18em; text-transform:uppercase; color:#a85530; margin-bottom:0.15rem; font-weight:400; }

/* ─── STATS ─── */
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:0.9rem; margin-top:1.8rem; }
.stat { padding:1.2rem; background:#ece1cc; border-radius:3px; text-align:center; }
.stat-n { font-family:'Cormorant Garamond',serif; font-size:2.3rem; font-weight:300; color:#a85530; line-height:1; }
.stat-l { font-size:0.56rem; letter-spacing:0.13em; text-transform:uppercase; color:rgba(44,31,19,0.42); margin-top:0.25rem; }

/* ─── EVENTS GRID ─── */
.ev-grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1px; background:rgba(28,18,8,0.18);
  border-radius:3px; overflow:hidden; margin-top:2.8rem;
}
.ev { background:#1c1208; min-height:240px; position:relative; overflow:hidden; cursor:pointer; display:flex; flex-direction:column; justify-content:flex-end; padding:1.8rem; }
.ev:first-child { grid-column:span 2; min-height:310px; }
.ev-c { position:absolute; inset:0; opacity:1; transition:opacity 0.45s; }
.c1 {
  background-image:
    linear-gradient(145deg, rgba(154,88,40,0.55), rgba(28,18,8,0.88)),
    url('/images/weddings/rancho-escondido-wedding-reception-fountain-palms-indio.jpg');
  background-size: cover; background-position: center 50%;
}
.c2 {
  background-image:
    linear-gradient(145deg, rgba(154,88,40,0.55), rgba(28,18,8,0.88)),
    url('/images/quinceanera/rancho-escondido-quinceanera-emerald-ballgown-indio-05.jpg');
  background-size: cover; background-position: center 30%;
}
.c3 {
  background-image:
    linear-gradient(145deg, rgba(138,88,16,0.45), rgba(28,18,8,0.88)),
    url('/images/escaramuza/rancho-escondido-escaramuza-charra-indio-01.jpg');
  background-size: cover; background-position: center 30%;
}
.c4 {
  background-image:
    linear-gradient(145deg, rgba(96,42,16,0.5), rgba(26,10,0,0.9)),
    url('/images/events/rancho-escondido-danza-viejitos-folklorico-indio-01.jpg');
  background-size: cover; background-position: center 30%;
}
.c5 {
  background-image:
    linear-gradient(145deg, rgba(74,58,32,0.55), rgba(28,18,8,0.92)),
    url('/images/gallery/rancho-escondido-driveway-mountains-indio.jpg');
  background-size: cover; background-position: center 60%;
}
.c6 {
  background-image:
    linear-gradient(145deg, rgba(70,52,30,0.55), rgba(20,12,4,0.92)),
    url('/images/quinceanera/rancho-escondido-quinceanera-emerald-stables-indio-01.jpg');
  background-size: cover; background-position: center 40%;
}
.ev-inner { position:relative; z-index:2; }
.ev-tag { font-size:0.55rem; letter-spacing:0.33em; text-transform:uppercase; color:#b8932e; margin-bottom:0.3rem; }
.ev h3 { font-family:'Cormorant Garamond',serif; font-size:1.5rem; font-weight:300; color:#ece1cc; }
.ev:first-child h3 { font-size:2rem; }
.ev-desc { font-size:0.76rem; color:rgba(236,225,204,0.7); line-height:1.65; margin-top:0.3rem; }
.ev-link { display:inline-block; margin-top:0.8rem; font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color:#b8932e; border-bottom:1px solid rgba(184,147,46,0.4); padding-bottom:0.18rem; }

/* ─── ESCARAMUZA ─── */
.escar-badge {
  display:inline-block; background:#b8932e; color:#1c1208;
  font-size:0.55rem; letter-spacing:0.18em; text-transform:uppercase;
  padding:0.5rem 1.1rem; border-radius:2px; margin-top:1.4rem;
}
.feat-list { list-style:none; margin-top:1.3rem; }
.feat-list li {
  display:flex; gap:0.8rem; align-items:flex-start;
  padding:0.65rem 0; border-bottom:1px solid rgba(168,85,48,0.1);
  font-size:0.83rem; color:rgba(44,31,19,0.62); line-height:1.6;
}
.feat-list li::before { content:'-'; color:#a85530; font-size:0.62rem; margin-top:0.18rem; flex-shrink:0; }

/* ─── GALLERY ─── */
.gallery {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
  margin-top: 2.2rem;
}
.gallery-row2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
  margin-top: 4px;
}
@media (min-width: 700px) {
  .gallery, .gallery-row2 { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1100px) {
  .gallery, .gallery-row2 { grid-template-columns: repeat(4, 1fr); }
}
.gi {
  position: relative;
  overflow: hidden;
  background: #ebe6da;
  cursor: zoom-in;
  aspect-ratio: 1 / 1 !important;
  grid-row: auto !important;
  grid-column: auto !important;
}
.gi img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.45s ease;
}
.gi:hover img { transform: scale(1.04); }
.gallery-credit { text-align:center; margin-top:1.3rem; font-size:0.71rem; color:rgba(44,31,19,0.38); font-style:italic; }
.gallery-credit a { color:#a85530; }

/* ─── AMENITIES ─── */
.amen-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; margin-top:2.8rem; }
.amen {
  padding:2rem; background:#f5efe5; border-radius:3px;
  border:1px solid rgba(168,85,48,0.13); transition:all 0.3s;
}
.amen:hover { border-color:rgba(168,85,48,0.38); transform:translateY(-2px); box-shadow:0 6px 24px rgba(28,18,8,0.05); }
.amen-icon { font-size:1.5rem; margin-bottom:0.85rem; display:block; }
.amen h3 { font-family:'Cormorant Garamond',serif; font-size:1.22rem; font-weight:400; color:#1c1208; margin-bottom:0.4rem; }
.amen p { font-size:0.77rem; line-height:1.8; color:rgba(44,31,19,0.57); font-weight:300; }

/* ─── AVAILABILITY ─── */
.calendar-wrap { position:relative; width:100%; max-width:880px; margin:2.5rem auto 0; aspect-ratio:4/3; }
.calendar-wrap iframe { width:100%; height:100%; border:1px solid rgba(168,85,48,0.18); border-radius:4px; background:#fff; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:1.5rem; justify-content:center; margin-top:1.5rem; font-size:0.85rem; color:#6b5944; }
.calendar-legend .lg-key { display:flex; align-items:center; gap:0.5rem; }
.calendar-legend .lg-dot { display:inline-block; width:12px; height:12px; border-radius:3px; }
.lg-booked { background:#a85530; }
.lg-open { background:#fff; border:1px solid rgba(168,85,48,0.4); }
.calendar-cta { margin-top:2.2rem; text-align:center; }
.calendar-cta .body-p { max-width:540px; margin:0 auto 1.2rem; }
@media (max-width:768px) {
  .calendar-wrap { aspect-ratio:auto; height:560px; }
}

.availability-status {
  display:grid; grid-template-columns:1fr 1fr; gap:1.5rem;
  max-width:720px; margin:2.5rem auto 0;
}
.year-card {
  background:#f5efe5; border:1px solid rgba(168,85,48,0.18);
  border-radius:4px; padding:2.5rem 1.5rem; text-align:center;
  transition:transform 0.25s;
}
.year-card:hover { transform:translateY(-2px); }
.year-card .year-label {
  font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:600;
  color:#2c1f13; line-height:1; margin-bottom:0.6rem;
}
.year-card .year-status {
  font-size:0.75rem; letter-spacing:0.27em; text-transform:uppercase;
  font-weight:600;
}
.year-booked { opacity:0.65; }
.year-booked .year-status { color:#8a6a4e; }
.year-open { border-color:#a85530; box-shadow:0 4px 14px rgba(168,85,48,0.12); }
.year-open .year-status { color:#a85530; }
.calendar-coming-soon {
  text-align:center; margin-top:1.5rem; font-size:0.85rem;
  letter-spacing:0.05em; color:#6b5944; font-style:italic;
}
@media (max-width:768px) {
  .availability-status { grid-template-columns:1fr; gap:1rem; }
  .year-card { padding:2rem 1.5rem; }
  .year-card .year-label { font-size:2.5rem; }
}

/* ─── VENDORS ─── */
.v-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:2.5rem; }
.vcard {
  background:#f5efe5; border:1px solid rgba(168,85,48,0.16); border-radius:4px;
  padding:2.3rem; transition:all 0.3s;
}
.vcard:hover { border-color:rgba(168,85,48,0.38); box-shadow:0 8px 28px rgba(28,18,8,0.06); transform:translateY(-2px); }
.vcard.hero-v {
  grid-column:span 2; background:#1c1208;
  border-color:rgba(196,158,100,0.22);
  display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center;
}
.vcard.hero-v:hover { transform:none; }
.vchip {
  display:inline-flex; align-items:center; gap:0.4rem;
  background:rgba(201,168,76,0.14); border:1px solid rgba(201,168,76,0.26);
  padding:0.3rem 0.8rem; border-radius:100px; margin-bottom:1.2rem;
  font-size:0.54rem; letter-spacing:0.16em; text-transform:uppercase; color:#b8932e;
}
.vname { font-family:'Cormorant Garamond',serif; font-size:1.65rem; font-weight:300; color:#1c1208; margin-bottom:0.2rem; }
.vname em { font-style:italic; color:#a85530; }
.vname.lt { color:#ece1cc; }
.vname.lt em { color:#b8932e; }
.vsub { font-size:0.6rem; letter-spacing:0.13em; text-transform:uppercase; color:rgba(44,31,19,0.38); margin-bottom:1.4rem; }
.vsub.lt { color:rgba(236,225,204,0.28); }
.vlist { list-style:none; margin-bottom:1.4rem; }
.vlist li { padding:0.52rem 0; border-bottom:1px solid rgba(168,85,48,0.09); font-size:0.78rem; color:rgba(44,31,19,0.6); display:flex; gap:0.65rem; }
.vlist.lt li { color:rgba(236,225,204,0.55); border-bottom-color:rgba(196,158,100,0.09); }
.vlist li::before { content:'->'; color:#a85530; font-size:0.6rem; flex-shrink:0; margin-top:0.05rem; }
.vbtn { display:inline-block; background:#a85530; color:#f5efe5; padding:0.72rem 1.6rem; font-size:0.65rem; letter-spacing:0.16em; text-transform:uppercase; border-radius:2px; transition:background 0.25s; }
.vbtn:hover { background:#6e3a1c; }
.v-photos { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; border-radius:3px; overflow:hidden; }
.v-photo { aspect-ratio:1; overflow:hidden; }
.v-photo img { transition:transform 0.5s; }
.v-photo:hover img { transform:scale(1.06); }
.v-soon {
  background:#ece1cc; border:1px dashed rgba(168,85,48,0.22); border-radius:4px;
  padding:2.3rem; display:flex; flex-direction:column; align-items:center;
  justify-content:center; text-align:center; min-height:200px;
}
.v-soon strong { display:block; font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:300; color:#a85530; font-style:italic; margin-bottom:0.5rem; }
.v-soon p { font-size:0.78rem; color:rgba(44,31,19,0.5); line-height:1.7; }
.v-note { margin-top:2.5rem; padding:1.8rem; background:#ece1cc; border-radius:3px; font-size:0.8rem; color:rgba(44,31,19,0.6); line-height:1.75; }
.v-note strong { color:#a85530; font-weight:400; }
.v-category { padding:2.5rem 0; border-bottom:1px solid rgba(168,85,48,0.12); }
.v-cat-label { font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:#1c1208; font-weight:400; margin-bottom:1.5rem; padding-bottom:0.8rem; border-bottom:2px solid rgba(168,85,48,0.2); }

/* ─── CONTACT ─── */
.c-grid { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; margin-top:2.8rem; }
.c-info h3 { font-family:'Cormorant Garamond',serif; font-size:1.65rem; font-weight:300; color:#1c1208; margin-bottom:1.3rem; }
.c-info h3 em { font-style:italic; color:#a85530; }
.c-row { display:flex; gap:0.9rem; padding:0.85rem 0; border-bottom:1px solid rgba(168,85,48,0.1); }
.c-icon { font-size:0.95rem; flex-shrink:0; margin-top:0.05rem; }
.c-txt { font-size:0.82rem; line-height:1.65; color:rgba(44,31,19,0.65); }
.c-txt strong { display:block; font-size:0.53rem; letter-spacing:0.16em; text-transform:uppercase; color:#a85530; margin-bottom:0.12rem; font-weight:400; }
.c-txt a { color:#6e3a1c; }
.c-txt a:hover { text-decoration:underline; }
.c-note { margin-top:1.3rem; padding:1rem 1.3rem; background:#ece1cc; border-radius:3px; font-size:0.77rem; color:rgba(44,31,19,0.55); line-height:1.75; font-style:italic; }
.fg { margin-bottom:0.9rem; }
.fg label { display:block; font-size:0.53rem; letter-spacing:0.16em; text-transform:uppercase; color:#a85530; margin-bottom:0.35rem; }
.fg input,.fg select,.fg textarea { width:100%; padding:0.75rem 0.9rem; border:1px solid rgba(168,85,48,0.2); background:#f5efe5; border-radius:2px; font-family:'Jost',sans-serif; font-size:0.81rem; color:#2c1f13; outline:none; transition:border-color 0.25s; }
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:#a85530; }
.fg textarea { resize:vertical; min-height:82px; }
.fsub { width:100%; padding:0.88rem; background:#a85530; color:#f5efe5; border:none; border-radius:2px; font-family:'Jost',sans-serif; font-size:0.66rem; letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; transition:background 0.25s; }
.fsub:hover { background:#6e3a1c; }
.fg-row { display:grid; grid-template-columns:1fr 1fr; gap:0.9rem; }
@media (max-width:600px) { .fg-row { grid-template-columns:1fr; } }

/* ─── ADDRESS STRIP ─── */
.addr {
  background:#1c1208; padding:2.2rem max(3rem, calc((100% - 1400px) / 2));
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1.2rem;
}
.addr-t { font-size:0.81rem; color:rgba(236,225,204,0.58); line-height:1.7; }
.addr-t strong { display:block; font-size:0.53rem; letter-spacing:0.19em; text-transform:uppercase; color:#b8932e; margin-bottom:0.22rem; font-weight:400; }
.addr-links { display:flex; gap:0.8rem; }
.addr-link { color:rgba(196,168,120,0.75); font-size:0.63rem; letter-spacing:0.15em; text-transform:uppercase; border:1px solid rgba(196,158,100,0.2); padding:0.48rem 1rem; border-radius:2px; transition:all 0.25s; }
.addr-link:hover { background:#a85530; border-color:#a85530; color:#f5efe5; }

/* ─── FOOTER ─── */
footer { background:#1E1008; padding:3rem max(3rem, calc((100% - 1400px) / 2)); display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; }
.f-logo { font-family:'Cormorant Garamond',serif; font-size:1.25rem; font-weight:300; color:#ece1cc; display:block; margin-bottom:0.75rem; }
.f-logo em { font-style:italic; color:#a85530; }
.f-desc { font-size:0.75rem; line-height:1.85; color:rgba(236,225,204,0.65); font-weight:300; }
.f-col h4 { font-size:0.5rem; letter-spacing:0.27em; text-transform:uppercase; color:#b8932e; margin-bottom:0.9rem; font-weight:400; }
.f-col ul { list-style:none; }
.f-col li { margin-bottom:0.48rem; }
.f-col a { font-size:0.75rem; color:rgba(236,225,204,0.72); transition:color 0.25s; }
.f-col a:hover { color:rgba(196,168,120,0.75); }
.fbar { background:#1E1008; padding:1rem max(3rem, calc((100% - 1400px) / 2)); border-top:1px solid rgba(196,158,100,0.07); display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.7rem; }
.fbar p { font-size:0.63rem; color:rgba(236,225,204,0.55); }
.fbar a { color:#a85530; }

/* ─── MOBILE NAV STRIP ─── */
.mobile-nav {
  display:none; list-style:none;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  padding:0.55rem 1.2rem; gap:0.45rem;
  background:#f5efe5; border-bottom:1px solid rgba(168,85,48,0.12);
}
.mobile-nav a { white-space:nowrap; font-size:0.59rem; letter-spacing:0.14em; text-transform:uppercase; color:#2c1f13; opacity:0.48; padding:0.38rem 0.75rem; border-radius:100px; border:1px solid rgba(168,85,48,0.14); transition:all 0.25s; }
.mobile-nav a.on { opacity:1; background:#a85530; color:#f5efe5; border-color:#a85530; }

/* ─── SECTION CARDS (homepage) ─── */
.section-cards {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; margin-top:2.5rem;
}
.section-card {
  position:relative; min-height:320px;
  border-radius:4px; overflow:hidden; cursor:pointer;
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:1.8rem;
  background:#1c1208;
}
.section-card::before {
  content:''; position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:1; z-index:1; transition:transform 0.4s;
}
.section-card:hover::before { transform:scale(1.04); }
.section-card::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(28,18,8,0.10) 0%, rgba(28,18,8,0.78) 100%);
  z-index:2;
}
.section-card-inner { position:relative; z-index:3; }
.section-card .section-card-tag { font-size:0.55rem; letter-spacing:0.33em; text-transform:uppercase; color:#b8932e; margin-bottom:0.3rem; }
.section-card h3 { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; color:#ece1cc; margin-bottom:0.4rem; }
.section-card p { font-size:0.78rem; color:rgba(236,225,204,0.78); line-height:1.65; margin-bottom:0.9rem; }
.section-card .card-cta { font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color:#b8932e; border-bottom:1px solid rgba(184,147,46,0.45); padding-bottom:0.2rem; display:inline-block; }

.sc-weddings::before { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/weddings/rancho-escondido-wedding-reception-fountain-palms-indio.jpg'); }
.sc-quince::before   { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/quinceanera/rancho-escondido-quinceanera-fountain-portrait-indio-03.jpg'); }
.sc-escar::before    { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/escaramuza/rancho-escondido-escaramuza-charra-indio-01.jpg'); }
.sc-boarding::before { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/quinceanera/rancho-escondido-quinceanera-emerald-stables-indio-01.jpg'); }
.sc-gallery::before  { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/gallery/rancho-escondido-fountain-aisle-aerial-indio.jpg'); }
.sc-vendors::before  { background-image:linear-gradient(180deg, rgba(28,18,8,0.20) 0%, rgba(28,18,8,0.55) 100%), url('/images/weddings/rancho-escondido-wedding-welcome-sign-indio.jpg'); }

/* ─── FAMILY OF BRANDS (homepage cross-promo) ─── */
.fob {
  padding:5rem max(3rem, calc((100% - 1400px) / 2));
  background:#1c1208; color:#ece1cc;
}
.fob h2 { color:#ece1cc; }
.fob h2 em { color:#b8932e; }
.fob-grid {
  display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin-top:2.5rem;
}
.fob-card {
  padding:1.8rem; border:1px solid rgba(184,147,46,0.18);
  border-radius:4px; transition:all 0.3s;
}
.fob-card:hover { border-color:rgba(184,147,46,0.45); transform:translateY(-2px); }
.fob-card h3 { font-family:'Cormorant Garamond',serif; font-size:1.4rem; font-weight:300; color:#ece1cc; margin-bottom:0.3rem; }
.fob-card h3 em { font-style:italic; color:#b8932e; }
.fob-card p { font-size:0.8rem; color:rgba(236,225,204,0.65); line-height:1.7; margin-bottom:0.9rem; }
.fob-card a { font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase; color:#b8932e; border-bottom:1px solid rgba(184,147,46,0.45); padding-bottom:0.18rem; }

/* ─── SITE PLAN ─── */
.plan-hero { padding: 6rem max(3rem, calc((100% - 1400px) / 2)) 3rem; background: linear-gradient(180deg, #f5efe5 0%, #ece1cc 100%); }
.plan-eyebrow {
  font-size: 0.62rem; letter-spacing: 0.45em; text-transform: uppercase;
  color: #a85530; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.7rem;
}
.plan-eyebrow::before { content: ''; width: 22px; height: 1px; background: #a85530; }
.plan-h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.4rem, 5vw, 4rem); font-weight: 300; line-height: 1.05;
  color: #1c1208; margin-bottom: 1rem;
}
.plan-h1 em { font-style: italic; color: #a85530; }
.plan-lead { font-size: 1rem; line-height: 1.75; color: rgba(44,31,19,0.7); max-width: 60ch; margin-bottom: 0.5rem; }

.plan-stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 1.5rem; margin: 2.5rem 0 0; max-width: 900px;
}
.plan-stat { border-top: 1px solid rgba(168,85,48,0.25); padding-top: 1rem; }
.plan-stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 2.2rem; font-weight: 400; color: #a85530; line-height: 1;
}
.plan-stat-label {
  font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: rgba(44,31,19,0.6); margin-top: 0.4rem;
}

.plan-image-wrap {
  padding: 2rem max(3rem, calc((100% - 1400px) / 2)) 4rem; background: #f5efe5;
  display: flex; justify-content: center;
}
.plan-image {
  max-width: 640px; width: 100%;
  border: 1px solid rgba(168,85,48,0.2);
  border-radius: 4px; overflow: hidden;
  box-shadow: 0 12px 40px rgba(28,18,8,0.10);
  cursor: zoom-in;
  background: #f5efe5;
  transition: transform 0.3s;
  position: relative;
}
.plan-image::after {
  content: 'Click to zoom';
  position: absolute; top: 12px; right: 12px;
  background: rgba(8,8,8,0.85); color: #f7f4ee;
  padding: 6px 12px; font-size: 11px;
  letter-spacing: 0.12em; text-transform: uppercase;
  font-family: 'Inter','Jost',sans-serif; font-weight: 600;
  border-radius: 2px; pointer-events: none;
  opacity: 0; transition: opacity 0.2s;
}
.plan-image:hover { transform: translateY(-3px); box-shadow: 0 16px 50px rgba(28,18,8,0.14); }
.plan-image:hover::after { opacity: 1; }
.plan-image img { width: 100%; height: auto; display: block; }
.plan-caption {
  text-align: center; padding: 0 max(3rem, calc((100% - 1400px) / 2)) 1.5rem;
  font-size: 0.78rem; letter-spacing: 0.05em; color: rgba(44,31,19,0.55);
  font-style: italic;
}

.plan-vendor-section {
  padding: 5rem max(3rem, calc((100% - 1400px) / 2)); background: #1c1208; color: #ece1cc;
}
.plan-vendor-eyebrow {
  font-size: 0.6rem; letter-spacing: 0.45em; text-transform: uppercase;
  color: #b8932e; margin-bottom: 1rem;
  display: flex; align-items: center; gap: 0.7rem;
}
.plan-vendor-eyebrow::before { content: ''; width: 22px; height: 1px; background: #b8932e; }
.plan-vendor-h2 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2rem, 4vw, 3rem); font-weight: 300;
  color: #ece1cc; margin-bottom: 2rem;
}
.plan-vendor-h2 em { font-style: italic; color: #b8932e; }

.plan-vendor-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px; background: rgba(236,225,204,0.1);
  border: 1px solid rgba(236,225,204,0.1);
  margin-top: 2rem;
}
.plan-vendor-card { background: #1c1208; padding: 1.8rem; }
.plan-vendor-tag {
  font-size: 0.6rem; letter-spacing: 0.22em; text-transform: uppercase;
  color: #b8932e; margin-bottom: 0.7rem;
  display: flex; align-items: center; gap: 0.5rem;
}
.plan-vendor-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.plan-vendor-dot.red { background: #E63223; }
.plan-vendor-dot.blue { background: #4A8AC4; }
.plan-vendor-dot.gold { background: #b8932e; }
.plan-vendor-card h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem; font-weight: 300;
  color: #ece1cc; margin-bottom: 0.6rem;
}
.plan-vendor-card p {
  font-size: 0.85rem; line-height: 1.6;
  color: rgba(236,225,204,0.7);
}

.plan-download {
  padding: 4rem max(3rem, calc((100% - 1400px) / 2)); background: #f5efe5; text-align: center;
  border-top: 1px solid rgba(168,85,48,0.18);
}
.plan-download h3 {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.6rem; font-weight: 300; color: #1c1208;
  margin-bottom: 0.6rem;
}
.plan-download p {
  font-size: 0.9rem; color: rgba(44,31,19,0.65);
  margin-bottom: 1.8rem; max-width: 50ch; margin-left: auto; margin-right: auto;
}
.plan-download a {
  display: inline-block;
  background: #a85530; color: #f5efe5;
  padding: 0.95rem 2.3rem; border-radius: 2px;
  font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase;
  transition: background 0.25s;
}
.plan-download a:hover { background: #6e3a1c; }

/* ─── BOARDING PAGE ─── */
.boarding-hero {
  min-height:78vh;
  background:linear-gradient(160deg,#f5efe5 0%,#ece1cc 40%,#E8D4A8 72%,#DDBB88 100%),
             url('/images/quinceanera/rancho-escondido-quinceanera-emerald-stables-indio-01.jpg');
  background-size:cover; background-position:center;
  background-blend-mode:overlay;
  display:flex; align-items:center;
  padding:5rem max(3rem, calc((100% - 1400px) / 2));
  position:relative;
}
.boarding-hero::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right, rgba(245,239,229,0.94) 0%, rgba(245,239,229,0.70) 55%, rgba(245,239,229,0.10) 100%);
  z-index:1;
}
.boarding-hero-text { position:relative; z-index:2; max-width:620px; }
.price-tag {
  display:inline-flex; align-items:baseline; gap:0.4rem;
  background:#1c1208; color:#f5efe5;
  padding:0.7rem 1.3rem; border-radius:2px;
  margin:1rem 0 1.6rem;
  font-family:'Cormorant Garamond',serif;
}
.price-tag .price-num { font-size:1.8rem; font-weight:400; color:#b8932e; line-height:1; }
.price-tag .price-unit { font-size:0.7rem; letter-spacing:0.18em; text-transform:uppercase; color:rgba(236,225,204,0.78); }

.included-table {
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:rgba(168,85,48,0.15); border:1px solid rgba(168,85,48,0.15);
  border-radius:4px; overflow:hidden; margin-top:2rem;
}
.included-item {
  background:#f5efe5; padding:1.4rem 1.6rem;
}
.included-item h4 {
  font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:400;
  color:#1c1208; margin-bottom:0.3rem;
}
.included-item p {
  font-size:0.78rem; color:rgba(44,31,19,0.6); line-height:1.6;
}
@media (max-width:700px) { .included-table { grid-template-columns:1fr; } }

.tbd {
  display:inline-block; background:#fff3c4; color:#7a5a00;
  border:1px dashed #c9a430; padding:0.15rem 0.5rem;
  font-size:0.72rem; font-family:'Inter','Jost',sans-serif;
  border-radius:2px; font-style:italic;
}

.faq { margin-top:2rem; }
.faq-item {
  border-bottom:1px solid rgba(168,85,48,0.15);
  padding:1.3rem 0;
}
.faq-item h3 {
  font-family:'Cormorant Garamond',serif; font-size:1.15rem; font-weight:400;
  color:#1c1208; margin-bottom:0.5rem;
}
.faq-item p {
  font-size:0.85rem; line-height:1.75; color:rgba(44,31,19,0.7);
}

/* ─── LIGHTBOX ─── */
.lb {
  display: none; position: fixed; inset: 0;
  background: rgba(20,15,8,0.96);
  z-index: 9999; align-items: center; justify-content: center;
  padding: 2rem; cursor: zoom-out; opacity: 0;
  transition: opacity 0.25s;
}
.lb.open { display: flex; opacity: 1; }
.lb img {
  max-width: 100%; max-height: 100%;
  object-fit: contain; cursor: default;
  box-shadow: 0 12px 50px rgba(0,0,0,0.5);
}
.lb-close {
  position: absolute; top: 1.2rem; right: 1.2rem;
  width: 44px; height: 44px; border-radius: 50%;
  background: transparent; color: #ece1cc;
  border: 1px solid rgba(236,225,204,0.35);
  font-size: 1.4rem; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all 0.2s;
}
.lb-close:hover { background: #ece1cc; color: #1c1208; border-color: #ece1cc; }
@media (max-width: 600px) { .lb { padding: 1rem; } .lb-close { top: 0.8rem; right: 0.8rem; width: 40px; height: 40px; } }

/* ─── MOBILE ─── */
@media(max-width:900px){
  .topbar-inner { padding:0 1.2rem; }
  .tabs-nav { display:none; }
  .brand { font-size:1rem; margin-right:auto; }
  .topbar-call a { padding:0.5rem 1rem; font-size:0.6rem; }
  .mobile-nav { display:flex !important; }
  .page { padding-top:100px; }
  .hero { padding:2rem max(1.5rem, calc((100% - 1400px) / 2)) 4rem; min-height:auto; }
  .boarding-hero { padding:2rem max(1.5rem, calc((100% - 1400px) / 2)) 4rem; min-height:auto; }
  .hero-r { display:none; }
  .hero-h1 { font-size:2.7rem; }
  .sec { padding:4rem max(1.5rem, calc((100% - 1400px) / 2)); }
  .addr,.fbar { padding-left:1.5rem; padding-right:1.5rem; }
  footer { padding:3rem 1.5rem; }
  .fob { padding:4rem 1.5rem; }
  .cols2,.c-grid,.vcard.hero-v { grid-template-columns:1fr; gap:2.5rem; }
  .vcard.hero-v { grid-column:span 1; }
  .img-float {
    position:relative; inset:auto;
    width:70%; aspect-ratio:1; margin:1.2rem auto 0;
    border-radius:3px; overflow:hidden;
    box-shadow:0 8px 24px rgba(28,18,8,0.10);
  }
  .img-pin { top:-1rem; left:-0.6rem; font-size:0.62rem; padding:0.6rem 0.95rem; }
  .ev-grid,.amen-grid,.cols3 { grid-template-columns:1fr; }
  .ev:first-child { grid-column:span 1; }
  .gallery { grid-template-columns:repeat(2,1fr); }
  .gi:nth-child(1) { grid-column:span 2; aspect-ratio: 16/10 !important; }
  .v-grid { grid-template-columns:1fr; }
  .vcard.hero-v { grid-column:span 1; }
  .v-photos { grid-template-columns:repeat(2,1fr); }
  .section-cards { grid-template-columns:1fr; }
  .fob-grid { grid-template-columns:1fr; }
  footer { grid-template-columns:1fr 1fr; }
  .addr,.fbar { flex-direction:column; }
}

@media (max-width: 700px) {
  .plan-hero, .plan-image-wrap, .plan-vendor-section, .plan-download { padding-left: 1.5rem; padding-right: 1.5rem; }
  .plan-stats { gap: 1rem; }
  .plan-stat-num { font-size: 1.8rem; }
}
