/* Base */
*{box-sizing:border-box}
html,body{height:100%}
img{max-width:100%;display:block;height:auto}
:root{
  --text:#111;
  --muted:#5c5c5c;
  --line:#e6e6e6;
  --container:1160px;
  --radius:14px;
}
body{
  margin:0;color:var(--text);
  font-family:Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background:#fff;
}
h1,h2,h3{font-family:"Archivo Black", Impact, sans-serif;letter-spacing:.3px}
.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 22px;border-radius:999px;text-decoration:none;font-weight:900;border:1.5px solid #111;line-height:1}
.btn.btn-dark{background:#111;color:#fff}
.btn.small{padding:10px 18px}

/* Header bar styling */
.site-header {
  background: #fff;        /* keep the white bar */
  height: 70px;           /* adjust as needed (try 120–150px) */
  display: flex;
  align-items: center;     /* vertical centering */
  justify-content: center; /* horizontal centering */
}

/* Logo image scaling */
.site-header .brand img {
  max-height: 20px;        /* logo size control */
  height: auto;
  width: auto;
}

/* Hero — robust (no aspect-ratio dependence) */
.hero{margin-bottom:32px}
.hero-frame{position:relative}
.hero-frame::before{content:"";display:block;padding-top:38%} /* desktop aspect */
@media(max-width:900px){.hero-frame::before{padding-top:72%}} /* taller on mobile */
.hero-frame>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;background:linear-gradient(180deg, rgba(0,0,0,.25), rgba(0,0,0,.45))}
.hero-inner h1{margin:0 0 10px;font-size:clamp(28px,7.2vw,58px);line-height:1.04;text-transform:uppercase;text-shadow:0 2px 6px rgba(0,0,0,.35)}
.strap{font-weight:800;margin:6px 0 16px}

/* Sections */
.section{padding:60px 0}
.section-title{font-size:clamp(28px,3.6vw,36px);margin:0 0 22px}
.section-title.small{font-size:28px}
.section-title.center{text-align:center}
.center{text-align:center}

/* Services */
.card-grid{display:grid;grid-template-columns:1fr;gap:18px;margin-bottom:18px}
.service-card .media.ratio{position:relative;border-radius:12px;overflow:hidden;border:1px solid #eee;background:#f8f8f8}
.service-card .media.ratio::before{content:"";display:block;padding-top:63%}
.service-card .media.ratio img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.service-cols{display:grid;grid-template-columns:1fr;gap:18px}
.service-cols .col h3{margin:8px 0 6px}
.price{font-weight:900;margin:0 0 6px}
@media(min-width:980px){
  .card-grid{grid-template-columns:repeat(3,1fr)}
  .service-cols{grid-template-columns:repeat(3,1fr)}
}

/* Book CTA */
.book{padding-top:24px;padding-bottom:24px}

/* FAQ */
.faq-title{font-size:40px;margin:0 0 16px}
.accordion details{border-top:1px solid var(--line);padding:14px 0}
.accordion details:last-child{border-bottom:1px solid var(--line)}
.accordion summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-weight:900;list-style:none}
.accordion summary::-webkit-details-marker{display:none}
.accordion summary i{width:18px;height:18px;display:inline-block;position:relative;flex:0 0 18px}
.accordion summary i::before, .accordion summary i::after{content:"";position:absolute;background:#000}
.accordion summary i::before{width:18px;height:2px;top:8px;left:0}
.accordion summary i::after{width:2px;height:18px;top:-1px;left:8px;transition:.2s}
details[open] summary i::after{transform:scaleY(0)}
.accordion .answer{padding-top:10px;color:#333;max-width:90ch}

/* About */
.about-grid{display:grid;grid-template-columns:1fr;gap:22px;align-items:start;margin-bottom:26px}
.about .about-visual{display:grid;gap:16px}
.ratio{position:relative;border-radius:12px;overflow:hidden;border:1px solid #eee;background:#f8f8f8}
.ratio::before{content:"";display:block;padding-top:60%}
.ratio.tall::before{padding-top:135%}
.ratio img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about p{line-height:1.68;margin:0 0 14px;color:#222}
@media(min-width:1000px){
  .about-grid{grid-template-columns:1.02fr .98fr}
  .about-grid.second{grid-template-columns:.9fr 1.1fr}
}

/* Social */
.slider{position:relative}
.track{display:flex;gap:10px;overflow-x:auto;scroll-behavior:smooth;padding:2px 0 8px}
.track img{height:160px;flex:0 0 auto;border-radius:10px;border:1px solid #eaeaea}
.slide-btn{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:50%;background:#111;color:#fff;border:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;opacity:.95
}
.slide-btn.prev{left:-12px}
.slide-btn.next{right:-12px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:40px 0;background:#fff}
.footer-grid{display:grid;grid-template-columns:1fr;gap:18px}
.foot-col h4{margin:0 0 8px;font-weight:900}
.foot-col p{margin:0 0 6px;color:#333}
@media(min-width:900px){.footer-grid{grid-template-columns:repeat(3,1fr)}}


:root{
  --bg:#0b0f14;
  --text:#0f141a;
  --ink:#111;
  --muted:#6b7785;
  --panel:#ffffff;
  --panel-2:#f4f6f8;
  --brand:#111; /* match black header button style */
  --accent:#111;
  --radius:16px;
  --container:1120px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
  color:var(--ink);
  background:#fff;
  margin:0;
}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 20px;
}

.section{padding:64px 0}
.section-head{margin-bottom:28px;text-align:center}
.title-xl{
  font-weight:900;
  font-size:40px;
  line-height:1.05;
  letter-spacing:.3px;
  text-transform:uppercase;
  margin:0 0 8px;
}
.title-lg{
  font-weight:800;
  font-size:28px;
  margin:0 0 12px;
  text-transform:uppercase;
}
.muted{color:var(--muted)}
.tiny{font-size:12px;letter-spacing:.3px}
.caption{font-weight:700;font-size:12px;letter-spacing:.3px;text-transform:uppercase}

.btn{
  background:#111;
  color:#fff;
  padding:12px 18px;
  border-radius:999px;
  display:inline-flex;
  gap:8px;
  align-items:center;
  justify-content:center;
  font-weight:700;
  border:1px solid #111;
  text-decoration:none;
  transition:.2s ease;
  box-shadow:0 12px 30px rgba(0,0,0,.15);
}
.btn:hover{transform:translateY(-1px)}
.btn.ghost{
  background:#fff;
  color:#111;
  border:1px solid #e5e7eb;
  box-shadow:none;
}
.btn-large{padding:16px 26px;font-size:16px}

.card{
  background:var(--panel);
  border:1px solid #eef0f2;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

/* Reviews */
.reviews-summary{
  margin-bottom:18px;
  display:flex;
  gap:16px;
  justify-content:center;
}
.google-badge{display:flex;gap:12px;align-items:center;padding:12px 16px;border:1px solid #eef0f2;border-radius:999px;background:#fff}
.stars{display:flex;gap:4px;margin-top:4px}
.stars.small{margin:6px 0}
.star{
  width:16px;height:16px;display:inline-block;
  background:conic-gradient(from 90deg at 50% 50%, #f59e0b 0 75%, #e5e7eb 75% 100%);
  -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>') center/contain no-repeat;
  mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="black" d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"/></svg>') center/contain no-repeat;
}
.reviews .score{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}

.slider{position:relative;margin-top:16px}
.slider .track{
  display:flex;
  gap:24px;
  overflow:hidden;
  scroll-behavior:smooth;
  transition:transform .3s ease;
}
.review{padding:16px;min-width:300px;max-width:320px}
.review .body{margin:6px 0 0}
.review-head{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.avatar{
  width:40px;height:40px;border-radius:50%;background:#111;color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800
}
.name{font-weight:700}
.nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:36px;height:36px;border-radius:50%;border:1px solid #e5e7eb;background:#fff;cursor:pointer;
  display:grid;place-items:center;box-shadow:var(--shadow)
}
.nav.prev{left:-8px}
.nav.next{right:-8px}

.cta-inline{display:flex;justify-content:center;gap:12px;margin-top:18px;align-items:center}

/* Map & details */
.grid-2{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}
.map iframe{width:100%;height:420px;border:0;border-radius:calc(var(--radius) - 2px)}
.details .list{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:10px}
.details .list li{display:grid;grid-template-columns:120px 1fr;gap:12px;padding:10px 0;border-bottom:1px dashed #eceff2}
.details .list li:last-child{border-bottom:none}
.badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 18px}
.badge{border:1px solid #e5e7eb;padding:6px 10px;border-radius:999px;font-weight:600;font-size:12px}

/* CTA */
.cta{background:linear-gradient(180deg, #0b0f14 0, #10161e 100%);color:#fff}
.cta-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.cta .title-xl{color:#fff;text-transform:none;letter-spacing:0}
.cta .muted{color:#b7c2cf}

/* Footer */
.footer{padding:36px 0;border-top:1px solid #eceff2;background:#fff}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}

/* Responsive */
@media (max-width: 960px){
  .grid-2{grid-template-columns:1fr;gap:18px}
  .title-xl{font-size:34px}
}
@media (max-width: 640px){
  .review{min-width:260px}
  .footer-grid{grid-template-columns:1fr}
}

/* disables transition during invisible index resets */
.slider .track.notrans { transition: none !important; }
/* Reviews-only styling (prevents collisions with Social slider) */
#reviews .slider { position: relative; margin-top:16px; }
#reviews .slider .track{
  display:flex;
  gap:24px;
  overflow:hidden;
  transition: transform .3s ease;
}
#reviews .review{ padding:16px; min-width:300px; max-width:320px; }
#reviews .nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:50%; border:1px solid #e5e7eb;
  background:#fff; display:grid; place-items:center; box-shadow:0 10px 24px rgba(0,0,0,.08);
}
#reviews .nav.prev{ left:-8px }
#reviews .nav.next{ right:-8px }

/* Mobile: native swipe for reviews */
@media (max-width:640px){
  #reviews .nav{ display:none; }
  #reviews .slider .track{ overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
  #reviews .review{ min-width:85%; max-width:85%; scroll-snap-align:start; }
}
/* reviews track should have no extra padding so offsets line up */
#reviews .slider .track { padding: 0 !important; }
/* disable transition during invisible resets */
#reviews .slider .track.notrans { transition: none !important; }

/* 3F0 Reviews Track: ensure horizontal flex & gaps align to theme */
#reviews .slider .track{
  display:flex;
  gap:16px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding: 0;
}
#reviews .slider .track .review{
  flex:0 0 auto;
  scroll-snap-align:start;
}
#reviews .nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background: rgba(255,255,255,0.8);
  border:1px solid rgba(17,17,17,0.08);
  box-shadow: 0 6px 20px rgba(0,0,0,0.1);
  border-radius: 999px;
  width:40px; height:40px; line-height:40px; text-align:center;
  cursor:pointer;
}
#reviews .nav:focus{ outline: 2px solid #111; outline-offset: 2px; }

/* --- HERO: true vertical crop on mobile (9:16) --- */
@media (max-width: 768px) {
  /* Make the hero frame tall like 1080x1920 */
  .hero-frame::before { 
    padding-top: 177.78%;   /* 9:16 = 16/9 * 100% */
  }

  /* Ensure the image fills and crops vertically */
  .hero-frame > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top; /* tweak focal point if needed */
  }
}
