:root{
  --navy:#14293d; --navy2:#1f3a52; --sea:#2f6f8a; --foam:#dcebee;
  --ivory:#faf6ec; --cream:#f3ead8; --gold:#b98a3e; --gold2:#d8b56c;
  --ink:#2a3440; --muted:#66727e;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Lato',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:var(--sans);color:var(--ink);background:var(--ivory);line-height:1.75;font-size:17px;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;color:var(--navy)}
h2{font-size:clamp(2.2rem,4.5vw,3.4rem);margin-bottom:1.1rem}
h2 em,h1 em{font-style:italic;color:var(--gold);font-weight:500}
p{margin-bottom:1rem;color:var(--muted)}
.wrap{max-width:1180px;margin:auto;padding:0 1.5rem}
.narrow{max-width:800px}
.section{padding:7rem 0}
.grid2{display:grid;grid-template-columns:1.1fr 1fr;gap:5rem;align-items:center}
.eyebrow{font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold2);font-weight:700;margin-bottom:1.2rem}
.eyebrow.dark{color:var(--gold)}
.head{text-align:center;max-width:680px;margin:0 auto 3.5rem}
.head.light h2,.head.light p{color:#fff}.head.light p{opacity:.8}

/* buttons */
.btn{display:inline-block;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#1a1a1a;padding:.95rem 2rem;border-radius:50px;font-weight:700;letter-spacing:.06em;font-size:.85rem;text-transform:uppercase;border:0;cursor:pointer;transition:.3s;box-shadow:0 8px 24px rgba(185,138,62,.35)}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(185,138,62,.5)}
.btn-sm{padding:.6rem 1.3rem;font-size:.75rem}
.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.6);box-shadow:none}
.btn-ghost:hover{background:#fff;color:var(--navy)}

/* nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem 2.5rem;color:#fff;transition:.35s}
.nav.solid{background:rgba(20,41,61,.94);backdrop-filter:blur(10px);padding:.6rem 2.5rem;box-shadow:0 4px 30px rgba(0,0,0,.2)}
.brand{display:flex;align-items:center;gap:.8rem;color:var(--gold2)}
.logo-img{height:46px;width:auto;border-radius:6px}
.nav.solid .logo-img{height:40px}
.brand span{display:flex;flex-direction:column;line-height:1.1;color:#fff}
.brand b{font-family:var(--serif);font-size:1.6rem;letter-spacing:.04em}
.brand small{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;opacity:.8}
.nav nav{display:flex;align-items:center;gap:2rem}
.nav nav a{font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;position:relative}
.nav nav a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:var(--gold2);transition:.3s}
.nav nav a:not(.btn):hover::after{width:100%}
.burger{display:none;background:none;border:0;cursor:pointer;width:32px}
.burger i{display:block;height:2px;background:#fff;margin:7px 0;transition:.3s}

/* hero */
.hero{position:relative;height:100vh;min-height:680px;background:linear-gradient(#4d8ccb,#e3eef5 70%,#86ac6f);overflow:hidden}
#scene{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:pan-y}
#scene:active{cursor:grabbing}
.hero-fade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(10,24,40,.78) 0%,rgba(10,24,40,.45) 42%,transparent 70%),linear-gradient(0deg,rgba(10,24,40,.5),transparent 25%)}
.hero-copy{position:absolute;left:max(2.5rem,calc((100vw - 1180px)/2 + 1.5rem));top:50%;transform:translateY(-50%);max-width:560px;color:#fff;pointer-events:none;animation:rise 1.4s ease both}
.hero-copy .cta,.hero-copy a{pointer-events:auto}
.hero h1{color:#fff;font-size:clamp(2.8rem,6vw,5rem);margin-bottom:1.4rem}
.hero .lead{color:rgba(255,255,255,.88);font-size:1.12rem;margin-bottom:2rem}
.cta{display:flex;gap:1rem;flex-wrap:wrap}
.drag-hint{position:absolute;right:2.5rem;bottom:2.2rem;color:#fff;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(10,24,40,.45);padding:.6rem 1.1rem;border-radius:40px;backdrop-filter:blur(6px);transition:opacity .6s;display:flex;align-items:center;gap:.6rem}
.drag-hint span{width:8px;height:8px;border-radius:50%;background:var(--gold2);animation:pulse 1.6s infinite}
.scroll{position:absolute;left:50%;bottom:1.5rem;width:24px;height:40px;border:1.5px solid rgba(255,255,255,.7);border-radius:14px;transform:translateX(-50%)}
.scroll i{position:absolute;left:50%;top:7px;width:3px;height:8px;margin-left:-1.5px;background:#fff;border-radius:2px;animation:scroll 1.8s infinite}
@keyframes scroll{0%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(14px)}}
@keyframes pulse{50%{transform:scale(1.8);opacity:.4}}
@keyframes rise{from{opacity:0;transform:translateY(-40%)}to{opacity:1;transform:translateY(-50%)}}

/* strip */
.strip{display:grid;grid-template-columns:repeat(4,1fr);max-width:1100px;margin:-3.5rem auto 0;position:relative;z-index:5;background:#fff;border-radius:14px;box-shadow:0 20px 60px rgba(20,41,61,.18);border-top:3px solid var(--gold)}
.strip div{padding:1.8rem 1.5rem;text-align:center;border-right:1px solid #eee}
.strip div:last-child{border:0}
.strip strong{display:block;font-family:var(--serif);font-size:1.35rem;color:var(--navy)}
.strip span{font-size:.88rem;color:var(--muted)}

/* about */
.about h2{margin-bottom:1.4rem}
.ticks{list-style:none;margin-top:1.5rem}
.ticks li{padding-left:2rem;position:relative;margin-bottom:.7rem;color:var(--ink)}
.ticks li::before{content:"";position:absolute;left:0;top:.5em;width:14px;height:8px;border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);transform:rotate(-45deg)}
.arch-frame{position:relative;padding:14px}
.arch{border-radius:999px 999px 14px 14px;overflow:hidden;aspect-ratio:5/6;box-shadow:0 30px 60px rgba(20,41,61,.25);outline:1px solid var(--gold2);outline-offset:12px}
.arch svg{width:100%;height:100%;display:block}
.badge{position:absolute;left:-1.5rem;bottom:2.5rem;background:var(--navy);color:#fff;padding:1.2rem 1.6rem;border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.3)}
.badge b{display:block;font-family:var(--serif);font-size:1.4rem;color:var(--gold2)}
.badge span{font-size:.8rem;opacity:.85}

/* care */
.care{background:var(--cream)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.card{background:#fff;padding:2.4rem 2rem;border-radius:12px;border-bottom:3px solid transparent;transition:.4s;box-shadow:0 4px 18px rgba(20,41,61,.06)}
.card:hover{transform:translateY(-8px);border-color:var(--gold);box-shadow:0 22px 44px rgba(20,41,61,.14)}
.card h3{font-size:1.6rem;margin:1.2rem 0 .5rem}
.card p{margin:0;font-size:.97rem}
.ico{width:60px;height:60px;border-radius:50%;background:var(--foam);display:grid;place-items:center}
.ico svg{width:30px;height:30px;fill:none;stroke:var(--sea);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* tour */
.tour{background:radial-gradient(circle at 20% 0%,var(--navy2),var(--navy));color:#fff;position:relative;overflow:hidden}
.plan{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:center}
.floorplan{width:100%;filter:drop-shadow(0 20px 40px rgba(0,0,0,.4))}
.floorplan .wall{fill:none;stroke:var(--gold2);stroke-width:4}
.room rect{fill:rgba(255,255,255,.06);stroke:rgba(216,181,108,.6);stroke-width:1.5;transition:.3s;cursor:pointer}
.room text{fill:#fff;font-family:var(--serif);font-size:19px;text-anchor:middle;pointer-events:none}
.room:hover rect,.room:focus rect,.room.on rect{fill:rgba(216,181,108,.3);stroke:var(--gold2)}
.room{outline:none}
.plan-info{background:rgba(255,255,255,.07);border:1px solid rgba(216,181,108,.35);padding:2.4rem;border-radius:14px;backdrop-filter:blur(6px)}
.plan-info h3{color:var(--gold2);font-size:2rem;margin-bottom:.8rem}
.plan-info p{color:rgba(255,255,255,.85);margin:0}
.features{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:3rem}
.features span{border:1px solid rgba(216,181,108,.5);padding:.5rem 1.2rem;border-radius:40px;font-size:.85rem;letter-spacing:.05em;color:var(--gold2)}

/* timeline */
.timeline{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;position:relative}
.timeline::before{content:"";position:absolute;top:9px;left:0;right:0;height:1px;background:var(--gold2)}
.timeline li{position:relative;padding-top:2.4rem}
.timeline li::before{content:"";position:absolute;top:0;left:0;width:19px;height:19px;border-radius:50%;background:var(--ivory);border:2px solid var(--gold)}
.timeline time{font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700}
.timeline h3{font-size:1.6rem;margin:.3rem 0 .5rem}
.timeline p{font-size:.95rem}

/* quote */
.quote{background:linear-gradient(rgba(20,41,61,.88),rgba(20,41,61,.92)),linear-gradient(135deg,var(--sea),var(--navy));color:#fff;padding:6rem 0;text-align:center}
.quote svg{color:var(--gold2);margin-bottom:1.5rem}
.quote blockquote{font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.2vw,2.5rem);max-width:820px;margin:auto;line-height:1.35}
.quote cite{display:block;margin-top:1.5rem;font-size:.85rem;letter-spacing:.1em;color:var(--gold2);font-style:normal}

/* faq */
details{background:#fff;border-radius:10px;margin-bottom:1rem;box-shadow:0 3px 14px rgba(20,41,61,.06);overflow:hidden}
summary{list-style:none;cursor:pointer;padding:1.4rem 1.8rem;font-family:var(--serif);font-size:1.4rem;font-weight:600;color:var(--navy);display:flex;justify-content:space-between;align-items:center}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:1.8rem;color:var(--gold);transition:.3s}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 1.8rem 1.5rem;margin:0}

/* contact */
.contact{background:linear-gradient(160deg,var(--navy),#0d1c2c);color:#fff}
.contact h2{color:#fff}.contact p{color:rgba(255,255,255,.78)}
.info{list-style:none;margin-top:2rem}
.info li{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column}
.info b{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold2)}
.form{background:var(--ivory);padding:2.6rem;border-radius:16px;box-shadow:0 30px 60px rgba(0,0,0,.4)}
.form label{display:block;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);font-weight:700;margin-bottom:1.1rem}
.form input,.form textarea{display:block;width:100%;margin-top:.4rem;padding:.85rem 1rem;border:1px solid #d9d2c0;background:#fff;border-radius:8px;font:inherit;font-size:1rem;text-transform:none;letter-spacing:0;color:var(--ink);transition:.25s}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(185,138,62,.2)}
.form input.bad{border-color:#c0392b}
.form .btn{width:100%;margin-top:.5rem}
.ok{margin:1rem 0 0!important;color:#2d7a4f!important;text-align:center;font-weight:700}

/* --- Footer Base Styling --- */
footer {
  background: #0a1724;
  color: rgba(255, 255, 255, 0.7);
  padding: 4rem 0 2rem 0;
  font-size: 0.9rem;
  line-height: 1.6;
}

footer a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  transition: color 0.2s ease;
}

footer a:hover {
  color: var(--gold2, #d4af37);
}

footer h4 {
  color: #ffffff;
  font-size: 1.1rem;
  margin-bottom: 1.25rem;
  font-weight: 600;
}

/* --- Container & Grid Layout --- */
footer .fgrid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1.25fr 1.25fr;
  gap: 2.5rem;
  margin-bottom: 3rem;
}

/* --- Column Contents --- */
.fcol {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

/* --- Footer Logo Styling --- */
.foot-logo {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin-bottom: 1rem;
}

.foot-logo .logo-img {
  max-width: 220px;
  height: auto;
  display: block;
  /* Removes any previous brightness/invert filters since your image is natively white */
  filter: none !important;
}

/* --- License Badge (matching reference layout) --- */
.lic-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid rgba(229, 193, 88, 0.4);
  background: rgba(255, 255, 255, 0.03);
  padding: 0.5rem 0.9rem;
  border-radius: 20px;
  color: #ebca6a;
  font-size: 0.85rem;
  font-weight: 600;
  margin-top: 0.75rem;
  width: fit-content;
}

.lic-badge svg {
  color: #eccb67;
  flex-shrink: 0;
}

.fcol.about-f .lic {
  font-size: 0.85rem;
  color: #e5c158; /* Warm goldish color matching logo accent */
  font-weight: 500;
  margin-top: 0.5rem;
}

.fcol.about-f .lic {
  font-size: 0.8rem;
  opacity: 0.75;
}

/* --- Quick Links & Contact Alignment --- */
.fcol a, 
.fcol span {
  display: block;
}

/* --- Action Column & Legal Buttons --- */
.fcol.next .btn {
  display: inline-block;
  margin: 0.5rem 0 1.25rem 0;
  text-align: center;
  align-self: flex-start;
}

.fcol .legal {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

.fcol .legal button {
  background: none;
  border: none;
  padding: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.8rem;
  cursor: pointer;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.fcol .legal button:hover {
  color: #ffffff;
}

/* --- Bottom Copyright Bar --- */
footer .fbar {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 1.5rem;
  text-align: center;
  font-size: 0.85rem;
  opacity: 0.6;
}

/* --- Header Logo Cleanup --- */
a.brand {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

a.brand .logo-img {
  height: 45px; /* Adjust height to fit your navbar */
  width: auto;
  display: block;
  filter: none; /* Keeps native colors, or use: filter: brightness(0) invert(1); if navbar is dark */
}
/* Optional hover polish */
a.brand:hover .logo-img {
  transform: scale(1.03);
  filter: brightness(1.5) contrast(1.2) drop-shadow(0 0 16px rgba(229, 193, 88, 0.75));
}

/* --- Mobile Responsiveness --- */
@media (max-width: 900px) {
  footer .fgrid {
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}

@media (max-width: 600px) {
  footer .fgrid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  footer {
    padding: 3rem 0 1.5rem 0;
  }
}
/* ---------- Legal Modal Popup Styles ---------- */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(8, 18, 30, 0.85);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.modal-overlay[hidden] {
  display: none !important;
}
.modal-box {
  background: #ffffff;
  color: #1a222e;
  padding: 2.5rem 2rem 2rem;
  border-radius: 14px;
  max-width: 650px;
  width: 100%;
  max-height: 85vh;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 25px 60px rgba(0, 0, 0, 0.4);
}
.modal-body h2 {
  font-family: var(--serif);
  font-size: 1.75rem;
  color: #14293d;
  margin-bottom: 1rem;
}
.modal-body p {
  font-size: 1rem;
  line-height: 1.6;
  color: #4a5568;
  margin-bottom: 1rem;
}
.modal-x {
  position: absolute;
  top: 1rem;
  right: 1.2rem;
  background: #f0f2f5;
  border: none;
  color: #333;
  cursor: pointer;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease;
}
.modal-x:hover {
  background: var(--gold, #e5c158);
  color: #111;
}

/* reveal */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .9s ease,transform .9s ease}
.reveal.in{opacity:1;transform:none}
.cards .reveal:nth-child(2),.timeline .reveal:nth-child(2){transition-delay:.12s}
.cards .reveal:nth-child(3),.timeline .reveal:nth-child(3){transition-delay:.24s}
.cards .reveal:nth-child(5),.timeline .reveal:nth-child(4){transition-delay:.12s}
.cards .reveal:nth-child(6){transition-delay:.24s}

@media(max-width:960px){
  .grid2,.plan{grid-template-columns:1fr;gap:3rem}
  .cards{grid-template-columns:1fr 1fr}
  .timeline{grid-template-columns:1fr 1fr}
  .strip{grid-template-columns:1fr 1fr;margin:-2rem 1rem 0}
  .burger{display:block;z-index:60}
  .nav nav{position:fixed;inset:0;background:var(--navy);flex-direction:column;justify-content:center;gap:2rem;transform:translateX(100%);transition:.4s}
  .nav nav.open{transform:none}
  .nav nav a{font-size:1.1rem}
  .nav{padding:1rem 1.2rem}
  .hero-copy{left:1.5rem;right:1.5rem}
  .hero-fade{background:linear-gradient(0deg,rgba(10,24,40,.85) 10%,rgba(10,24,40,.25) 70%)}
  .hero-copy{top:auto;bottom:5.5rem;transform:none;animation:none}
  .drag-hint{display:none}
  .badge{left:.5rem}
}
@media(max-width:600px){
  .cards,.timeline{grid-template-columns:1fr}
  .section{padding:5rem 0}
  .brand small{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* ---- logo, light sticky nav ---- */
.logo-card{display:block;background:#fff;border-radius:12px;padding:7px 16px;box-shadow:0 8px 28px rgba(10,24,40,.25);transition:.35s}
.logo-img{height:52px;width:auto;display:block;border-radius:0}
.nav.solid{background:rgba(250,246,236,.96);color:var(--navy);box-shadow:0 4px 24px rgba(20,41,61,.12)}
.nav.solid .logo-card{background:transparent;box-shadow:none;padding:2px 0}
.nav.solid .logo-img{height:44px}
.nav.solid nav a:not(.btn){color:var(--navy)}
.nav.solid .burger i{background:var(--navy)}
.burger[aria-expanded="true"] i{background:#fff!important}
.foot-logo{display:inline-block;margin-bottom:.8rem}
.foot-logo .logo-img{height:50px}

/* ---- about photo + credentials ---- */
.arch img{width:100%;height:100%;object-fit:cover;object-position:50% 60%;display:block}
.creds{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0 .6rem;padding:1.3rem 1.4rem;background:#fff;border-left:3px solid var(--gold);border-radius:10px;box-shadow:0 6px 24px rgba(20,41,61,.07)}
.creds dt{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);font-weight:700}
.creds dd{font-size:.9rem;color:var(--navy);line-height:1.4;margin-top:.2rem}
.small{font-size:.88rem}.small a{color:var(--sea);border-bottom:1px solid var(--gold2)}

/* ---- gallery ---- */
.gallery { background: var(--ivory); }
.gal { display: grid; grid-template-columns: repeat(6, 1fr); grid-auto-rows: 200px; gap: 1.25rem; }
.g { position: relative; overflow: hidden; border: 0; padding: 0; border-radius: 12px; cursor: zoom-in; background: #1a222e; box-shadow: 0 8px 26px rgba(20,41,61,.12); transition: transform .35s ease, box-shadow .35s ease; }
.g img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease; }
.g:hover img { transform: scale(1.06); }

/* Captions & Overlay Tags */
.g span { position: absolute; left: 0; right: 0; bottom: 0; padding: 2.5rem 1.25rem 1rem; color: #fff; text-align: left; font-family: var(--serif); font-size: 1.15rem; background: linear-gradient(transparent, rgba(10,24,40,.85)); opacity: 0; transform: translateY(8px); transition: .35s ease; }
.g:hover span, .g:focus-visible span { opacity: 1; transform: none; }
.g:hover, .g:focus-visible { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(20,41,61,.2); outline: 2px solid var(--gold, #e5c158); }

/* Hide the real caption element on the grid card so only the overlay shows */
.g .real-caption { display: none; }

/* Curated 6-Card Grid Layout Spans */
.g1 { grid-column: span 4; grid-row: span 2; } /* Living Room Hero */
.g2 { grid-column: span 2; grid-row: span 1; } /* Accessible Bathroom */
.g3 { grid-column: span 2; grid-row: span 1; } /* Walk-In Shower */
.g4 { grid-column: span 3; grid-row: span 2; } /* Dining Area */
.g5 { grid-column: span 3; grid-row: span 2; } /* Private Bedroom */
.g6 { grid-column: span 6; grid-row: span 2; } /* +7 More Photos Card */

/* "+7 More Photos" Overlay Styling */
.g-more img {
  filter: brightness(0.42);
  transition: transform .6s ease, filter .35s ease;
}
.g-more:hover img {
  filter: brightness(0.55);
  transform: scale(1.03);
}
.g-more-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 1rem;
  z-index: 2;
  pointer-events: none; /* Allows clicks to pass through to the button */
}
.more-count {
  font-family: var(--serif);
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--gold, #e5c158);
  margin-bottom: 0.1rem;
}
.more-text {
  font-size: 1rem;
  font-weight: 600;
  color: #ffffff;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Lightbox Modal */
.lb { position: fixed; inset: 0; z-index: 100; background: rgba(8,18,30,.94); display: flex; align-items: center; justify-content: center; }
.lb[hidden] { display: none; }
.lb figure { max-width: 88vw; text-align: center; }
.lb img { max-width: 88vw; max-height: 80vh; border-radius: 8px; box-shadow: 0 20px 70px rgba(0,0,0,.6); }
.lb figcaption { color: #fff; margin-top: 1rem; font-family: var(--serif); font-size: 1.3rem; }
.lb button { position: absolute; background: rgba(255,255,255,.12); border: 0; color: #fff; cursor: pointer; border-radius: 50%; width: 52px; height: 52px; font-size: 2rem; line-height: 1; transition: .3s; }
.lb button:hover { background: var(--gold, #e5c158); }
.lb-x { top: 1.5rem; right: 1.5rem; }
.lb-p { left: 1.5rem; top: 50%; }
.lb-nx { right: 1.5rem; top: 50%; }

/* Responsive adjustments for smaller screens */
@media(max-width: 960px) {
  .gal { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
  .g1, .g2, .g3, .g4, .g5, .g6 { grid-column: span 2 !important; grid-row: span 1 !important; }
}

/* Scroll Reveal Animations Compatibility */
.reveal {
  opacity: 1;
}
.reveal-init {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.reveal-init.in, .reveal-init.visible {
  opacity: 1;
  transform: none;
} 