@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400&family=Barlow+Condensed:wght@300;400;500;600;700&family=Barlow:wght@300;400;500&display=swap');

:root {
  --dark: #2a1a10;
  --darker: #1e1208;
  --brown: #7a3520;
  --crimson: #9b2020;
  --gold: #c8961a;
  --cream: #fdf5e8;
  --mid: #dfc9a8;
  --text-muted: #b09070;
  --nav-h: 80px;
  --banner-h: 38px;
  --offset: calc(var(--nav-h) + var(--banner-h));
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;}
body{font-family:'Barlow',sans-serif;background:var(--darker);color:var(--cream);overflow-x:hidden;}
img{max-width:100%;height:auto;display:block;}
*{-webkit-tap-highlight-color:transparent;}

/* ── BANNER ── */
.announcement-banner{
  position:fixed;top:0;left:0;right:0;
  height:var(--banner-h);
  background:linear-gradient(90deg,var(--crimson) 0%,var(--brown) 50%,var(--crimson) 100%);
  z-index:1002;overflow:hidden;
  display:flex;align-items:center;
}
.banner-track{
  display:flex;align-items:center;gap:0;
  white-space:nowrap;
  animation:bannerRoll 12s linear infinite;
  will-change:transform;
}
@keyframes bannerRoll{
  0%{transform:translateX(0);}
  100%{transform:translateX(-50%);}
}
.banner-text{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:0.8rem;
  letter-spacing:0.2em;text-transform:uppercase;
  color:#fff;padding:0 1.5rem;
}
.banner-sep{color:var(--gold);font-size:0.9rem;padding:0 0.25rem;}

/* ── NAV ── */
nav{
  position:fixed;
  top:var(--banner-h);left:0;right:0;
  height:var(--nav-h);
  background:rgba(22,10,4,0.97);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(200,150,26,0.22);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 2rem;z-index:1001;
}
.nav-logo{display:flex;align-items:center;gap:0.75rem;text-decoration:none;flex-shrink:0;}
.nav-logo img{height:50px;width:50px;object-fit:contain;}
.nav-logo span{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:1rem;
  letter-spacing:0.1em;color:var(--gold);
  text-transform:uppercase;line-height:1.2;
}
.nav-links{display:flex;align-items:center;gap:1.75rem;list-style:none;}
.nav-links a{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:500;font-size:0.88rem;
  letter-spacing:0.15em;text-transform:uppercase;
  color:var(--mid);text-decoration:none;
  transition:color 0.25s;position:relative;padding:0.25rem 0;
}
.nav-links a::after{
  content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;
  background:var(--gold);transition:width 0.3s;
}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-book-btn{
  background:var(--gold)!important;color:var(--dark)!important;
  padding:0.45rem 1.1rem!important;border-radius:2px;
  font-weight:700!important;transition:background 0.25s!important;
  white-space:nowrap;
}
.nav-book-btn:hover{background:var(--crimson)!important;color:#fff!important;}
.nav-book-btn::after{display:none!important;}

/* desktop: ensure mobile overlay never shows */
@media(min-width:901px){
  .mobile-overlay{display:none!important;visibility:hidden!important;pointer-events:none!important;}
}

/* hamburger */
.hamburger{
  display:none;flex-direction:column;justify-content:center;gap:5px;
  cursor:pointer;background:none;border:none;padding:6px;
  width:38px;height:38px;flex-shrink:0;
}
.hamburger span{display:block;width:22px;height:2px;background:var(--gold);transition:all 0.3s;border-radius:1px;}
.hamburger.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.hamburger.active span:nth-child(2){opacity:0;}
.hamburger.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* mobile overlay menu */
.mobile-overlay{
  display:none;
  position:fixed;
  top:0;left:0;width:100%;height:100%;
  background:#120802;
  z-index:9999;
  flex-direction:column;
  align-items:center;justify-content:center;
  gap:0;
  overflow-y:auto;
}
.mobile-overlay.open{
  display:flex!important;
}
.mobile-overlay a{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:700;font-size:1.8rem;
  letter-spacing:0.2em;text-transform:uppercase;
  color:var(--mid);text-decoration:none;
  padding:1.2rem 2rem;width:100%;text-align:center;
  border-bottom:1px solid rgba(200,150,26,0.12);
  transition:color 0.2s,background 0.2s;
  min-height:64px;display:flex;align-items:center;justify-content:center;
}
.mobile-overlay a:first-child{border-top:1px solid rgba(200,150,26,0.12);}
.mobile-overlay a:hover,.mobile-overlay a.active{color:var(--gold);background:rgba(200,150,26,0.06);}
.mobile-overlay .mob-book{
  margin-top:1.75rem;
  background:var(--gold);color:var(--dark)!important;
  border-radius:2px;width:calc(100% - 4rem)!important;
  max-width:300px;border:none!important;
  font-size:1rem;letter-spacing:0.25em;
}
.mobile-overlay .mob-book:hover{background:var(--crimson);color:#fff!important;}

/* ── MAIN OFFSET ── */
main{padding-top:var(--offset);min-height:100vh;}

/* ── HERO ── */
.hero{
  position:relative;
  height:calc(100svh - var(--offset));
  min-height:560px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;background:var(--darker);
}
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 20% 50%,rgba(122,53,32,0.55) 0%,transparent 60%),
    radial-gradient(ellipse at 80% 20%,rgba(200,150,26,0.18) 0%,transparent 50%),
    radial-gradient(ellipse at 60% 80%,rgba(155,32,32,0.28) 0%,transparent 50%);
}
.hero-photo-bg{position:absolute;inset:0;background-size:cover;background-position:center 40%;opacity:0.22;}
.hero-lines{
  position:absolute;inset:0;
  background-image:
    repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(200,150,26,0.05) 60px),
    repeating-linear-gradient(90deg,transparent,transparent 59px,rgba(200,150,26,0.05) 60px);
}
.hero-content{position:relative;z-index:2;text-align:center;padding:1.5rem;max-width:860px;animation:fadeUp 1s ease both;}
.hero-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:0.75rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;opacity:0.9;}
.hero-logo{width:120px;height:120px;object-fit:contain;margin:0 auto 1rem;filter:drop-shadow(0 0 30px rgba(200,150,26,0.5));animation:pulse 4s ease-in-out infinite;}
@keyframes pulse{0%,100%{filter:drop-shadow(0 0 22px rgba(200,150,26,0.35));}50%{filter:drop-shadow(0 0 55px rgba(200,150,26,0.7));}}
.hero-title{font-family:'Playfair Display',serif;font-size:clamp(2.8rem,8vw,7rem);font-weight:900;line-height:0.92;letter-spacing:-0.02em;color:var(--cream);margin-bottom:0.3rem;}
.hero-title .accent{color:var(--gold);font-style:italic;}
.hero-subtitle{font-family:'Barlow Condensed',sans-serif;font-size:clamp(1rem,2.5vw,1.8rem);letter-spacing:0.35em;text-transform:uppercase;color:var(--brown);margin-bottom:1rem;}
.hero-divider{display:flex;align-items:center;gap:1rem;justify-content:center;margin:1rem 0;}
.hero-divider::before,.hero-divider::after{content:'';flex:1;max-width:100px;height:1px;}
.hero-divider::before{background:linear-gradient(to left,transparent,var(--gold));}
.hero-divider::after{background:linear-gradient(to right,transparent,var(--gold));}
.hero-divider span{color:var(--gold);font-size:1.1rem;}
.hero-desc{font-size:0.95rem;color:var(--text-muted);letter-spacing:0.05em;margin-bottom:1.75rem;font-weight:300;}
.hero-btns{display:flex;gap:0.75rem;justify-content:center;flex-wrap:wrap;}

/* ── BUTTONS ── */
.btn-primary{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.85rem;letter-spacing:0.2em;text-transform:uppercase;padding:0.9rem 2rem;background:var(--gold);color:var(--dark);text-decoration:none;border:2px solid var(--gold);transition:all 0.3s;display:inline-block;cursor:pointer;}
.btn-primary:hover{background:transparent;color:var(--gold);}
.btn-secondary{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.85rem;letter-spacing:0.2em;text-transform:uppercase;padding:0.9rem 2rem;background:transparent;color:var(--cream);text-decoration:none;border:2px solid rgba(200,150,26,0.4);transition:all 0.3s;display:inline-block;cursor:pointer;}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold);}

/* ── SECTIONS ── */
section{padding:5rem 1.5rem;}
.section-eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:0.72rem;letter-spacing:0.4em;text-transform:uppercase;color:var(--gold);margin-bottom:0.75rem;display:block;}
.section-title{font-family:'Playfair Display',serif;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:900;line-height:1.05;color:var(--cream);margin-bottom:0.9rem;}
.section-title em{color:var(--gold);font-style:italic;}
.section-line{width:55px;height:2px;background:var(--gold);margin-bottom:1.5rem;}
.section-desc{font-size:0.95rem;color:var(--text-muted);line-height:1.8;font-weight:300;max-width:540px;}

/* ── ABOUT STRIP ── */
.about-strip{background:var(--dark);border-top:1px solid rgba(200,150,26,0.18);border-bottom:1px solid rgba(200,150,26,0.18);}
.about-strip-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center;}
.about-strip-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;}
.stat-card{text-align:center;padding:1.75rem;border:1px solid rgba(200,150,26,0.22);background:rgba(200,150,26,0.04);position:relative;}
.stat-card::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);}
.stat-num{font-family:'Playfair Display',serif;font-size:2.6rem;font-weight:900;color:var(--gold);line-height:1;display:block;}
.stat-label{font-family:'Barlow Condensed',sans-serif;font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-muted);margin-top:0.4rem;display:block;}

/* ── SERVICES HOME ── */
.services-preview{max-width:1200px;margin:0 auto;text-align:center;}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-top:2.5rem;}
.service-card{background:var(--dark);border:1px solid rgba(200,150,26,0.18);padding:2.25rem 1.25rem;text-align:center;transition:all 0.35s;position:relative;overflow:hidden;}
.service-card::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--gold);transition:width 0.4s;}
.service-card:hover{border-color:rgba(200,150,26,0.5);transform:translateY(-4px);}
.service-card:hover::after{width:100%;}
.service-icon{font-size:2rem;margin-bottom:0.85rem;display:block;}
.service-name{font-family:'Barlow Condensed',sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--cream);margin-bottom:0.4rem;}
.service-price{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:700;color:var(--gold);margin-bottom:0.4rem;}
.service-desc{font-size:0.82rem;color:var(--text-muted);line-height:1.6;}
.service-badge{position:absolute;top:0.85rem;right:0.85rem;background:var(--gold);color:var(--dark);font-family:'Barlow Condensed',sans-serif;font-size:0.6rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:0.2rem 0.45rem;}

/* ── CIRCULAR GALLERY (homepage) ── */
.cg-outer{padding:4rem 0 2rem;background:var(--dark);}
.cg-header{padding:0 1.5rem;max-width:1300px;margin:0 auto;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:2rem;}
/* 3D stage - desktop */
.cg-stage-wrap{position:relative;overflow:hidden;}
.cg-stage-3d{
  height:500px;
  display:flex;align-items:center;justify-content:center;
  perspective:2000px;
}
.cg-rotator{
  position:relative;width:100%;height:100%;
  transform-style:preserve-3d;
}
.cg-card{
  position:absolute;
  left:50%;top:50%;
  width:190px;height:260px;
  margin-left:-95px;margin-top:-130px;
  border-radius:8px;overflow:hidden;
  box-shadow:0 20px 50px rgba(0,0,0,0.7);
  border:1px solid rgba(200,150,26,0.25);
  cursor:pointer;transition:opacity 0.3s;
}
.cg-card img{width:100%;height:100%;object-fit:cover;}
.cg-card-label{
  position:absolute;bottom:0;left:0;right:0;
  padding:0.75rem 0.75rem 0.6rem;
  background:linear-gradient(to top,rgba(18,8,3,0.92),transparent);
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:0.85rem;color:var(--cream);letter-spacing:0.05em;line-height:1;
}
.cg-hint{text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:0.7rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--text-muted);margin-top:1rem;padding:0 1rem;}

/* mobile swipe gallery (replaces 3D on small screens) */
.cg-swipe-wrap{
  display:none;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scroll-snap-type:x mandatory;
  gap:0.75rem;padding:0 1.25rem 1rem;
  scrollbar-width:none;
}
.cg-swipe-wrap::-webkit-scrollbar{display:none;}
.cg-swipe-card{
  flex-shrink:0;width:72vw;max-width:260px;
  scroll-snap-align:center;
  border-radius:8px;overflow:hidden;
  border:1px solid rgba(200,150,26,0.25);
  box-shadow:0 12px 30px rgba(0,0,0,0.5);
  position:relative;
}
.cg-swipe-card img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;}
.cg-swipe-card-label{
  position:absolute;bottom:0;left:0;right:0;
  padding:0.65rem 0.75rem;
  background:linear-gradient(to top,rgba(18,8,3,0.9),transparent);
  font-family:'Barlow Condensed',sans-serif;font-weight:600;
  font-size:0.85rem;color:var(--cream);
}

/* ── TESTIMONIALS scrolling columns ── */
.testimonials-section{max-width:1300px;margin:0 auto;}
.testimonials-header{text-align:center;margin-bottom:2.5rem;}
.google-overall{display:inline-flex;align-items:center;gap:1rem;border:1px solid rgba(200,150,26,0.32);padding:1.1rem 1.75rem;margin:1rem 0 0;}
.google-score{font-family:'Playfair Display',serif;font-size:2.8rem;font-weight:900;color:var(--gold);line-height:1;}
.google-meta{text-align:left;margin-left:0.75rem;}
.google-meta .stars{color:var(--gold);font-size:1.1rem;letter-spacing:0.1em;display:block;}
.google-meta small{font-family:'Barlow Condensed',sans-serif;font-size:0.75rem;letter-spacing:0.1em;color:var(--text-muted);text-transform:uppercase;}
.reviews-columns{
  display:flex;gap:1.25rem;overflow:hidden;
  mask-image:linear-gradient(to bottom,transparent,black 10%,black 90%,transparent);
  -webkit-mask-image:linear-gradient(to bottom,transparent,black 10%,black 90%,transparent);
  height:660px;
}
.reviews-col{flex:1;display:flex;flex-direction:column;gap:0.9rem;animation:scrollUp linear infinite;}
.reviews-col:nth-child(1){animation-duration:44s;}
.reviews-col:nth-child(2){animation-duration:36s;animation-delay:-14s;}
.reviews-col:nth-child(3){animation-duration:30s;animation-delay:-7s;}
@keyframes scrollUp{from{transform:translateY(0);}to{transform:translateY(-50%);}}
.review-card{background:var(--dark);border:1px solid rgba(200,150,26,0.15);padding:1.4rem;flex-shrink:0;position:relative;}
.review-card::before{content:'"';position:absolute;top:0.4rem;left:0.9rem;font-family:'Playfair Display',serif;font-size:2.8rem;color:rgba(200,150,26,0.13);line-height:1;}
.review-text{font-size:0.88rem;color:var(--mid);line-height:1.7;margin-bottom:0.9rem;font-weight:300;}
.review-author{display:flex;align-items:center;gap:0.65rem;}
.review-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--brown),var(--gold));display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.8rem;color:var(--dark);flex-shrink:0;}
.review-name{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:0.9rem;color:var(--cream);}
.review-stars{color:var(--gold);font-size:0.72rem;}
.google-link-wrap{text-align:center;margin-top:2.5rem;}
.btn-google{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.85rem;letter-spacing:0.2em;text-transform:uppercase;padding:0.85rem 1.75rem;border:2px solid rgba(200,150,26,0.4);color:var(--gold);text-decoration:none;display:inline-block;transition:all 0.3s;}
.btn-google:hover{background:var(--gold);color:var(--dark);}

/* reviews page - static grid */
.reviews-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:1200px;margin:0 auto;}
.review-card-static{background:var(--dark);border:1px solid rgba(200,150,26,0.15);padding:1.75rem;position:relative;transition:border-color 0.3s,transform 0.3s;}
.review-card-static:hover{border-color:rgba(200,150,26,0.4);transform:translateY(-3px);}
.review-card-static::before{content:'"';position:absolute;top:0.75rem;left:1.25rem;font-family:'Playfair Display',serif;font-size:3.5rem;color:rgba(200,150,26,0.1);line-height:1;}
.rc-stars{color:var(--gold);font-size:0.9rem;margin-bottom:0.75rem;letter-spacing:0.1em;}
.rc-text{font-size:0.88rem;color:var(--mid);line-height:1.75;margin-bottom:1.25rem;font-weight:300;}
.rc-author{display:flex;align-items:center;gap:0.75rem;}
.rc-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--brown),var(--gold));display:flex;align-items:center;justify-content:center;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.85rem;color:var(--dark);flex-shrink:0;}
.rc-name{font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:0.92rem;color:var(--cream);}
.rc-service{font-size:0.75rem;color:var(--text-muted);}
.rating-summary{display:flex;align-items:center;justify-content:center;gap:3rem;flex-wrap:wrap;background:var(--dark);border:1px solid rgba(200,150,26,0.2);padding:2.5rem;margin-bottom:3.5rem;max-width:680px;margin-left:auto;margin-right:auto;}
.rating-big .num{font-family:'Playfair Display',serif;font-size:5rem;font-weight:900;color:var(--gold);line-height:1;}
.rating-stars-big{font-size:2.2rem;color:var(--gold);letter-spacing:0.15em;display:block;margin:0.4rem 0;}
.rating-big .label,.rating-count-label{font-family:'Barlow Condensed',sans-serif;font-size:0.72rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--text-muted);margin-top:0.25rem;}

/* ── CONTACT STRIP ── */
.contact-strip{background:linear-gradient(135deg,var(--dark),var(--darker));border-top:1px solid rgba(200,150,26,0.18);border-bottom:1px solid rgba(200,150,26,0.18);padding:3.5rem 1.5rem;}
.contact-strip-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;text-align:center;}
.contact-icon{font-size:1.8rem;display:block;margin-bottom:0.6rem;}
.contact-label{font-family:'Barlow Condensed',sans-serif;font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:0.35rem;}
.contact-value{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:600;color:var(--cream);text-decoration:none;display:block;letter-spacing:0.04em;}
.contact-value:hover{color:var(--gold);}

/* ── GALLERY page ── */
.gallery-full{max-width:1300px;margin:0 auto;}
.masonry-grid{columns:4;column-gap:0;line-height:0;}
.masonry-item{break-inside:avoid;margin-bottom:0;overflow:hidden;position:relative;cursor:pointer;line-height:0;}
.masonry-item img{width:100%;display:block;line-height:0;transition:transform 0.5s;}
.masonry-item:hover img{transform:scale(1.04);}
.masonry-item-overlay{position:absolute;inset:0;background:rgba(18,10,7,0.48);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 0.3s;font-size:1.8rem;line-height:1;}
.masonry-item:hover .masonry-item-overlay{opacity:1;}

/* lightbox */
.lightbox{position:fixed;inset:0;background:rgba(10,4,2,0.97);display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;pointer-events:none;transition:opacity 0.3s;}
.lightbox.active{opacity:1;pointer-events:all;}
.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain;}
.lightbox-close{position:absolute;top:1rem;right:1.25rem;font-size:2.2rem;color:var(--gold);cursor:pointer;background:none;border:none;line-height:1;padding:0.4rem;}
.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%);font-size:1.8rem;color:var(--gold);cursor:pointer;background:rgba(18,8,3,0.7);border:1px solid rgba(200,150,26,0.3);width:46px;height:46px;display:flex;align-items:center;justify-content:center;}
.lightbox-prev{left:1rem;}.lightbox-next{right:1rem;}

/* ── SERVICES page ── */
.services-full{max-width:1100px;margin:0 auto;}
.services-category{margin-bottom:3.5rem;}
.cat-title{font-family:'Barlow Condensed',sans-serif;font-size:1.4rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:1rem;margin-bottom:1.75rem;}
.cat-title::after{content:'';flex:1;height:1px;background:rgba(200,150,26,0.22);}
.services-list{display:grid;gap:1px;background:rgba(200,150,26,0.1);}
.service-row{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 1.75rem;background:var(--dark);transition:background 0.25s;flex-wrap:wrap;gap:0.75rem;}
.service-row:hover{background:rgba(200,150,26,0.05);}
.service-row-name{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:1.1rem;letter-spacing:0.08em;color:var(--cream);display:flex;align-items:center;gap:0.6rem;}
.service-row-desc{font-size:0.82rem;color:var(--text-muted);margin-top:0.2rem;font-weight:300;}
.service-row-price{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:var(--gold);white-space:nowrap;}

/* ── CONTACT page ── */
.contact-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:3.5rem;}
.contact-info-blocks{display:flex;flex-direction:column;gap:1.75rem;}
.contact-block{border:1px solid rgba(200,150,26,0.16);padding:1.75rem;background:var(--dark);}
.contact-block-title{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.72rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);margin-bottom:0.85rem;}
.contact-block p{font-size:0.92rem;color:var(--mid);line-height:1.8;font-weight:300;}
.contact-block a{color:var(--gold);text-decoration:none;}.contact-block a:hover{text-decoration:underline;}
.hours-grid{display:grid;gap:0.4rem;}
.hours-row{display:flex;justify-content:space-between;font-size:0.88rem;color:var(--mid);font-weight:300;padding:0.35rem 0;border-bottom:1px solid rgba(200,150,26,0.08);}
.hours-row .day{color:var(--cream);font-family:'Barlow Condensed',sans-serif;font-weight:600;letter-spacing:0.05em;}
.hours-row .time{color:var(--gold);}
.map-embed{width:100%;border:1px solid rgba(200,150,26,0.22);}
.map-embed iframe{width:100%;height:380px;border:none;filter:grayscale(70%) contrast(1.1);}
.form-title{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:700;color:var(--cream);margin-bottom:0.4rem;}
.form-subtitle{font-size:0.88rem;color:var(--text-muted);margin-bottom:1.75rem;font-weight:300;}
.form-group{margin-bottom:1.1rem;}
.form-group label{font-family:'Barlow Condensed',sans-serif;font-size:0.68rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:0.35rem;}
.form-group input,.form-group select,.form-group textarea{width:100%;background:var(--dark);border:1px solid rgba(200,150,26,0.25);color:var(--cream);padding:0.8rem 0.9rem;font-family:'Barlow',sans-serif;font-size:0.88rem;font-weight:300;outline:none;transition:border-color 0.25s;-webkit-appearance:none;border-radius:0;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);}
.form-group select option{background:var(--dark);}
.form-group textarea{resize:vertical;min-height:110px;}
.form-submit{width:100%;padding:1rem;background:var(--gold);color:var(--dark);border:none;font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.9rem;letter-spacing:0.2em;text-transform:uppercase;cursor:pointer;transition:background 0.3s;}
.form-submit:hover{background:var(--crimson);color:var(--cream);}

/* ── PAGE HERO ── */
.page-hero{background:var(--dark);border-bottom:1px solid rgba(200,150,26,0.14);padding:4.5rem 1.5rem 3.5rem;text-align:center;position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(122,53,32,0.22) 0%,transparent 70%);}
.page-hero-content{position:relative;z-index:1;}
.page-hero-title{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,6vw,4.5rem);font-weight:900;color:var(--cream);}
.page-hero-title em{color:var(--gold);font-style:italic;}
.breadcrumb{font-family:'Barlow Condensed',sans-serif;font-size:0.75rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-muted);margin-bottom:0.85rem;}
.breadcrumb a{color:var(--gold);text-decoration:none;}

/* ── FOOTER ── */
footer{background:var(--darker);border-top:1px solid rgba(200,150,26,0.13);padding:2.75rem 1.5rem 2rem;}
.footer-inner{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem;margin-bottom:2.5rem;}
.footer-logo{display:flex;align-items:center;gap:0.75rem;text-decoration:none;margin-bottom:0.85rem;}
.footer-logo img{height:46px;width:46px;object-fit:contain;}
.footer-logo span{font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:0.95rem;letter-spacing:0.1em;color:var(--gold);text-transform:uppercase;}
.footer-tagline{font-size:0.88rem;color:var(--text-muted);line-height:1.7;font-weight:300;max-width:290px;}
.footer-heading{font-family:'Barlow Condensed',sans-serif;font-size:0.72rem;letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.1rem;}
.footer-links{list-style:none;}
.footer-links li{margin-bottom:0.45rem;}
.footer-links a{font-size:0.88rem;color:var(--text-muted);text-decoration:none;font-weight:300;transition:color 0.2s;}
.footer-links a:hover{color:var(--gold);}
.footer-hours{font-size:0.88rem;color:var(--text-muted);font-weight:300;line-height:1.8;}
.footer-bottom{border-top:1px solid rgba(200,150,26,0.1);padding-top:1.75rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.75rem;}
.footer-copy{font-size:0.78rem;color:var(--text-muted);font-weight:300;}

/* ── ANIMATIONS ── */
@keyframes fadeUp{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:translateY(0);}}
.fade-up{opacity:0;transform:translateY(28px);transition:opacity 0.7s ease,transform 0.7s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}


/* overlay close button */
.mob-close{
  position:absolute;top:1.1rem;right:1.25rem;
  background:none;border:none;
  color:var(--gold);font-size:2rem;
  cursor:pointer;padding:0.5rem;line-height:1;
  z-index:10000;
}
/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width:1100px){.masonry-grid{columns:3;}}

@media (max-width:900px){
  nav{padding:0 1.25rem;}
  .nav-links{display:none;}/* hidden — mobile-overlay used instead */
  .hamburger{display:flex;}
  .about-strip-inner{grid-template-columns:1fr;gap:2.5rem;}
  .footer-inner{grid-template-columns:1fr;gap:2rem;}
  .contact-grid{grid-template-columns:1fr;gap:2rem;}
  .contact-strip-inner{grid-template-columns:1fr;gap:1.25rem;}
  .reviews-columns{height:520px;}
  .reviews-col:nth-child(3){display:none;}
  section{padding:3.5rem 1.25rem;}
  .footer-bottom{flex-direction:column;text-align:center;}
  /* 3D gallery -> swipe on mobile */
  .cg-stage-3d{display:none;}
  .cg-swipe-wrap{display:flex;}
  .cg-hint{display:none;}
  .reviews-page-grid{grid-template-columns:repeat(2,1fr);}
  .masonry-grid{columns:2;}
}

@media (max-width:600px){
  :root{--nav-h:66px;--banner-h:34px;}
  .banner-text{font-size:0.72rem;letter-spacing:0.12em;}
  nav{padding:0 1rem;}
  .nav-logo img{height:42px;width:42px;}
  .nav-logo span{font-size:0.82rem;}
  .hero{min-height:480px;}
  .hero-logo{width:90px;height:90px;}
  .hero-btns{flex-direction:column;align-items:center;}
  .btn-primary,.btn-secondary{width:100%;max-width:260px;text-align:center;padding:0.85rem 1.5rem;}
  .reviews-col:nth-child(2){display:none;}
  .reviews-columns{height:440px;}
  .about-strip-stats{grid-template-columns:1fr 1fr;}
  .services-grid{grid-template-columns:1fr 1fr;gap:0.75rem;}
  .service-card{padding:1.5rem 0.85rem;}
  .stat-num{font-size:2rem;}
  .cg-swipe-card{width:78vw;}
  .reviews-page-grid{grid-template-columns:1fr;}
  .rating-summary{gap:1.5rem;padding:1.5rem;}
  .rating-big .num{font-size:3.5rem;}
  .map-embed iframe{height:240px;}
  .page-hero{padding:3rem 1.25rem 2rem;}
  .page-hero-title{font-size:2rem;}
  .lightbox-prev{left:0.3rem;width:38px;height:38px;font-size:1.4rem;}
  .lightbox-next{right:0.3rem;width:38px;height:38px;font-size:1.4rem;}
  .lightbox img{max-width:96vw;max-height:80vh;}
}

@media (max-width:380px){
  .services-grid{grid-template-columns:1fr;}
  .masonry-grid{columns:1;}
}

/* safe areas */
@supports(padding:max(0px)){
  nav{
    padding-left:max(1rem,env(safe-area-inset-left));
    padding-right:max(1rem,env(safe-area-inset-right));
  }
  footer{padding-bottom:max(2rem,env(safe-area-inset-bottom));}
}
a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
