/*
Theme Name: Agape Scan Studio
Theme URI: https://agapescanstudio.co.za
Author: DigiFellow
Description: Custom theme for Agape Scan Studio - Luxury Ultrasound Scans in Benoni
Version: 1.0.0
License: Private
Text Domain: agape
*/

/* ===================================================
   CSS CUSTOM PROPERTIES
   =================================================== */
:root {
  --primary:         #C9A96E;
  --primary-light:   #E8D5A8;
  --primary-lighter: #F0E6CC;
  --primary-dark:    #A88B4F;
  --primary-darker:  #8A7040;
  --secondary:       #7CA5B8;
  --secondary-light: #A8C5D4;
  --secondary-dark:  #5D849A;
  --cream:           #FDF8F4;
  --cream-dark:      #F7F0E8;
  --sage:            #8BAFA3;
  --sage-dark:       #6B917E;
  --mist:            #7CA5B8;
  --mist-lighter:    #D4E3EB;
  --mist-dark:       #5D849A;
  --warm-100:        #F7F0E8;
  --warm-200:        #EDE3D6;
  --warm-300:        #DDD0BF;
  --warm-400:        #C4B09A;
  --warm-500:        #A89075;
  --warm-600:        #8C7560;
  --warm-700:        #6B5A4A;
  --warm-800:        #4A3D33;
  --warm-900:        #2A2320;
  --whatsapp:        #25D366;
  --font-display:    'Playfair Display', Georgia, serif;
  --font-body:       'DM Sans', system-ui, sans-serif;
}

/* ===================================================
   RESET & BASE
   =================================================== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 5rem; -webkit-font-smoothing: antialiased; }
body { font-family: var(--font-body); color: var(--warm-700); background: var(--cream); line-height: 1.6; }
img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
::selection { background: var(--primary-light); color: var(--primary-darker); }

/* ===================================================
   BUTTONS
   =================================================== */
.btn-primary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--primary); color: #fff; border-radius: 9999px;
  padding: .875rem 2rem; font-family: var(--font-body); font-weight: 500;
  transition: all .3s ease; box-shadow: 0 4px 6px rgba(0,0,0,.1); border: none; cursor: pointer;
}
.btn-primary:hover { background: var(--primary-dark); box-shadow: 0 6px 12px rgba(0,0,0,.15); transform: translateY(-1px); color: #fff; }

.btn-secondary {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  border: 2px solid var(--primary); color: var(--primary); border-radius: 9999px;
  padding: .75rem 2rem; font-family: var(--font-body); font-weight: 500;
  transition: all .3s ease; background: transparent; cursor: pointer;
}
.btn-secondary:hover { background: var(--primary); color: #fff; }

.btn-whatsapp {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--whatsapp); color: #fff; padding: .875rem 1.5rem;
  font-family: var(--font-body); font-weight: 500; border-radius: .5rem;
  transition: all .3s ease; box-shadow: 0 4px 6px rgba(0,0,0,.1); border: none; cursor: pointer;
}
.btn-whatsapp:hover { filter: brightness(1.1); box-shadow: 0 6px 12px rgba(0,0,0,.15); color: #fff; }

/* ===================================================
   BADGES
   =================================================== */
.badge      { display:inline-flex;align-items:center;background:var(--primary-lighter);color:var(--primary-dark);font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:.375rem 1rem;border-radius:9999px; }
.badge-gold { display:inline-flex;align-items:center;gap:.5rem;background:rgba(201,169,110,.1);color:var(--primary-dark);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:.375rem 1rem;border-radius:9999px; }
.badge-mist { display:inline-flex;align-items:center;background:rgba(124,165,184,.1);color:var(--mist-dark);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:.375rem 1rem;border-radius:9999px; }

/* ===================================================
   CARDS & SECTIONS
   =================================================== */
.card { background:#fff;border-radius:1rem;box-shadow:0 1px 3px rgba(0,0,0,.05);overflow:hidden;transition:all .5s ease; }
.card:hover { box-shadow:0 20px 40px rgba(0,0,0,.1); }
.section-padding { padding: 6rem 1rem; }
@media(min-width:768px){ .section-padding { padding: 8rem 1rem; } }

.wave-divider { position:relative;width:100%;overflow:hidden;line-height:0; }
.wave-divider svg { position:relative;display:block;width:calc(100% + 1.3px);height:30px; }
.wave-divider.flip { transform:rotate(180deg); }

/* ===================================================
   SCROLL REVEAL
   =================================================== */
.reveal { opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }
@media(prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;transition:none;} }

/* ===================================================
   HEADER
   =================================================== */
#site-header {
  position:fixed;top:0;left:0;right:0;z-index:50;transition:all .5s ease;
}
#site-header.scrolled {
  background:rgba(255,255,255,.95);backdrop-filter:blur(12px);box-shadow:0 1px 3px rgba(0,0,0,.05);
}
.header-inner { padding:0 1.5rem; }
@media(min-width:1024px){ .header-inner { padding:0 2.5rem; } }
.header-row { display:flex;align-items:center;height:5rem; }

/* Logo */
.site-logo { display:flex;align-items:center;gap:.25rem;flex-shrink:0; }
.logo-icon-wrap { height:3.5rem;width:2.5rem;overflow:hidden;flex-shrink:0;margin-top:-1.375rem; }
.logo-icon { width:6.25rem;max-width:none;margin-left:-1.25rem;margin-top:-.125rem;transition:transform .3s ease; }
.logo-brand { height:3rem;width:auto;transition:transform .3s ease; }
.site-logo:hover .logo-icon, .site-logo:hover .logo-brand { transform:scale(1.05); }

/* Desktop nav */
.desktop-nav { display:none;align-items:center;gap:.25rem;margin-left:1.25rem; }
@media(min-width:1024px){ .desktop-nav { display:flex; } }
.nav-link { padding:.5rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;transition:all .3s ease;color:var(--warm-700); }
.nav-link:hover { color:var(--primary); }
.nav-link-book { color:var(--primary) !important;font-weight:600; }
#site-header.scrolled .nav-link:hover { background:rgba(201,169,110,.05); }
#site-header:not(.scrolled) .nav-link:hover { background:rgba(255,255,255,.4); }

/* Desktop CTAs */
.desktop-ctas { display:none;align-items:center;justify-content:flex-end;gap:.75rem;margin-left:auto; }
@media(min-width:1024px){ .desktop-ctas { display:flex; } }
.desktop-ctas .btn-whatsapp { padding:.625rem 1.25rem;border-radius:9999px;font-size:.875rem; }
.desktop-ctas .btn-primary  { padding:.625rem 1.5rem;font-size:.875rem; }

/* Mobile toggle */
.mobile-toggle { display:flex;margin-left:auto;padding:.5rem;border-radius:.75rem;color:var(--warm-700);transition:background .2s; }
@media(min-width:1024px){ .mobile-toggle { display:none; } }

/* Mobile menu */
.mobile-menu { display:none;background:rgba(255,255,255,.98);backdrop-filter:blur(24px);border-top:1px solid var(--warm-100);box-shadow:0 20px 40px rgba(0,0,0,.1); }
.mobile-menu.open { display:block; }
.mobile-menu-inner { padding:1.5rem 1rem;display:flex;flex-direction:column;gap:.25rem; }
.mobile-nav-link { display:block;padding:.75rem 1rem;border-radius:.75rem;color:var(--warm-700);font-weight:500;transition:all .2s; }
.mobile-nav-link:hover { background:rgba(201,169,110,.05);color:var(--primary); }
.mobile-ctas { padding-top:1rem;display:flex;flex-direction:column;gap:.75rem;align-items:center; }
.mobile-ctas .btn-whatsapp, .mobile-ctas .btn-primary { width:100%;justify-content:center; }

/* ===================================================
   HERO
   =================================================== */
#hero {
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#FDF8F4 0%,#F0E6CC 25%,#FDF8F4 50%,#D4E3EB 75%,#FDF8F4 100%);
  background-size:400% 400%;animation:gradientShift 15s ease infinite;
}
#hero::before {
  content:'';position:absolute;inset:0;opacity:.03;pointer-events:none;z-index:1;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");
}
@keyframes gradientShift {
  0%,100%{background-position:0% 50%}25%{background-position:100% 0%}50%{background-position:100% 100%}75%{background-position:0% 100%}
}

.hero-wrap { max-width:80rem;margin:0 auto;position:relative;z-index:10; }
.hero-text-col { position:relative;z-index:10;padding:11rem 1.5rem 0; }
@media(min-width:640px){ .hero-text-col { padding-top:13rem; } }
@media(min-width:1024px){ .hero-text-col { padding:14rem 0 14rem 2rem;width:100%;max-width:38rem; } }

.hero-heading {
  font-family:var(--font-display);font-size:clamp(2.75rem,8vw,4.5rem);font-weight:700;
  letter-spacing:-.025em;color:var(--warm-900);line-height:1.1;text-align:center;
}
@media(min-width:1024px){ .hero-heading { text-align:left; } }
.hero-heading .text-primary { color:var(--primary); }
.underline-word { position:relative;display:inline-block; }
.underline-wave { position:absolute;bottom:-.5rem;left:0;width:100%;height:1rem;color:rgba(201,169,110,.3); }

/* Heartbeat SVG */
.heartbeat-svg { pointer-events:none;position:absolute;bottom:.03em;left:100%;height:1em;width:460px;opacity:.4;display:none; }
@media(min-width:1024px){ .heartbeat-svg { display:block; } }
.heartbeat-scroll { animation:scrollBeat .85s linear infinite; }
.heartbeat-outline { fill:none;stroke:rgba(201,169,110,.15);stroke-width:4;stroke-linecap:round;stroke-linejoin:round; }
.heartbeat-line { fill:none;stroke:#C9A96E;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 3px rgba(201,169,110,.3)); }
@keyframes scrollBeat { from{transform:translateX(0)} to{transform:translateX(-150px)} }
@media(prefers-reduced-motion:reduce){ .heartbeat-scroll{animation:none} .heartbeat-outline,.heartbeat-line{opacity:.3} }

.hero-bottom-box { margin:0 -1.5rem;padding:2rem 1.5rem 2.5rem;background:var(--cream); }
@media(min-width:1024px){ .hero-bottom-box{background:transparent;margin:2rem 0 0;padding:0;} }

.hero-desc { font-size:1.125rem;color:var(--warm-500);line-height:1.75;text-align:center; }
@media(min-width:1024px){ .hero-desc{margin-top:2rem;text-align:left;} }

.hero-ctas { margin-top:2rem;display:flex;flex-direction:column;align-items:center;gap:1rem; }
@media(min-width:640px){ .hero-ctas{flex-direction:row;justify-content:center;} }
@media(min-width:1024px){ .hero-ctas{justify-content:flex-start;} }
.hero-ctas .btn-primary,.hero-ctas .btn-whatsapp { width:100%;justify-content:center;font-size:.875rem;padding:.875rem 2rem; }
@media(min-width:640px){ .hero-ctas .btn-primary,.hero-ctas .btn-whatsapp{width:auto;} }
.hero-ctas .btn-whatsapp { border-radius:9999px; }

.hero-badges { margin-top:2rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;font-size:.875rem;color:var(--warm-500); }
@media(min-width:1024px){ .hero-badges{justify-content:flex-start;} }
.hero-badge-item { display:flex;align-items:center;gap:.5rem; }
.stars { display:flex;color:var(--primary); }

.hero-mobile-overlay { position:absolute;inset:0;background:linear-gradient(to bottom,rgba(253,248,244,.6),rgba(253,248,244,.7),rgba(253,248,244,.9));z-index:5; }
@media(min-width:1024px){ .hero-mobile-overlay{display:none;} }

.hero-image-panel { background:var(--cream-dark);width:100%; }
@media(min-width:1024px){ .hero-image-panel{position:absolute;top:0;bottom:0;right:0;width:60%;clip-path:polygon(28% 0,100% 0,100% 100%,5% 100%);} }
.hero-image-panel img { width:100%;height:100%;object-fit:cover;aspect-ratio:3/2;display:block; }
@media(min-width:1024px){ .hero-image-panel img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;} }

/* ===================================================
   INTRO
   =================================================== */
.intro-section { background:#fff;padding:4rem 1rem; }
.intro-container { max-width:72rem;margin:0 auto; }
.intro-full { text-align:center;margin-bottom:3rem; }
.intro-full h3 { font-family:var(--font-display);font-size:clamp(1.375rem,3vw,1.875rem);font-weight:700;color:var(--warm-900);margin-bottom:1rem; }
.intro-full p { color:var(--warm-500);line-height:1.75;max-width:48rem;margin:0 auto; }
.intro-grid { display:grid;gap:2.5rem; }
@media(min-width:768px){ .intro-grid{grid-template-columns:1fr 1fr;gap:4rem;} }
.intro-block { text-align:center; }
.intro-block h3 { font-family:var(--font-display);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:700;color:var(--warm-900);margin-bottom:1rem; }
.intro-block p { color:var(--warm-500);line-height:1.75; }

/* ===================================================
   SCAN TYPES
   =================================================== */
#scan-types { background:var(--cream);padding:4rem 1rem; }
.scan-types-container { max-width:80rem;margin:0 auto; }
.section-heading-block { max-width:42rem;margin:0 auto 4rem;text-align:center; }
.section-heading-block h2 { font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:-.025em;color:#111827; }
.section-heading-block p { margin-top:1.5rem;color:#4B5563;font-size:1.125rem;line-height:1.75; }

.scan-group { margin-bottom:2.5rem; }
.scan-group-title { font-family:var(--font-display);font-weight:700;font-size:1.125rem;color:var(--warm-800);margin-bottom:1rem;display:flex;align-items:center;gap:.5rem; }
.sg-icon { width:2rem;height:2rem;border-radius:.5rem;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700; }
.sg-2d  { background:var(--primary-lighter);color:var(--primary-dark); }
.sg-3d  { background:var(--mist-lighter);color:var(--mist-dark); }
.sg-5d  { background:rgba(124,165,184,.15);color:var(--secondary-dark); }
.sg-pkg { background:rgba(124,165,184,.15);color:var(--secondary-dark); }
.sg-cbo { background:var(--mist-lighter);color:var(--mist-dark); }

.scan-rows-grid { display:grid;gap:.75rem; }
@media(min-width:640px){ .scan-rows-grid{grid-template-columns:1fr 1fr;} }

.scan-type-row { background:#fff;border-radius:.75rem;padding:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;transition:all .3s ease; }
.scan-type-row:hover { box-shadow:0 4px 12px rgba(0,0,0,.08); }
.str-info { flex:1;min-width:0; }
.str-name { font-family:var(--font-display);font-weight:700;color:var(--warm-800);font-size:.875rem;transition:color .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.scan-type-row:hover .str-name { color:var(--primary); }
.str-meta { font-size:.75rem;color:var(--warm-400);margin-top:.125rem; }
.str-right { display:flex;align-items:center;gap:.75rem;flex-shrink:0; }
.str-price { font-family:var(--font-display);font-weight:700;color:var(--primary);font-size:.875rem; }
@media(min-width:640px){ .str-price{font-size:1rem;} }
.str-arrow { width:2rem;height:2rem;border-radius:9999px;background:rgba(201,169,110,.1);color:var(--primary);display:flex;align-items:center;justify-content:center;transition:all .2s; }
.scan-type-row:hover .str-arrow { background:var(--primary);color:#fff; }

.scan-types-cta { text-align:center;margin-top:3rem; }

/* ===================================================
   STATS
   =================================================== */
.stats-section { position:relative;padding:4rem 1rem;overflow:hidden; }
.stats-bg { position:absolute;inset:0;background:var(--warm-900); }
.stats-glow { position:absolute;inset:0;opacity:.1;background:radial-gradient(circle at 20% 50%,#7CA5B8 0%,transparent 50%),radial-gradient(circle at 80% 50%,#C9A96E 0%,transparent 50%); }
.stats-grid { position:relative;z-index:10;display:grid;grid-template-columns:repeat(2,1fr);gap:2rem 3rem;max-width:72rem;margin:0 auto; }
@media(min-width:768px){ .stats-grid{grid-template-columns:repeat(4,1fr);gap:3rem;} }
.stat-item { text-align:center; }
.stat-number { font-family:var(--font-display);font-size:clamp(2.5rem,6vw,3.5rem);font-weight:700;color:#fff;display:block; }
.stat-label { color:var(--warm-400);font-size:.875rem;font-weight:500;margin-top:.5rem; }
@media(min-width:768px){ .stat-label{font-size:1rem;} }

/* ===================================================
   ABOUT
   =================================================== */
.about-section { background:var(--cream);padding:3rem 1rem;position:relative;overflow:hidden; }
.about-section::before { content:'';position:absolute;right:-10rem;top:50%;transform:translateY(-50%);width:31.25rem;height:31.25rem;background:rgba(201,169,110,.03);border-radius:50%;filter:blur(3rem);pointer-events:none; }
.about-container { max-width:80rem;margin:0 auto;position:relative;z-index:10; }
.about-grid { display:grid;gap:3rem; }
@media(min-width:1024px){ .about-grid{grid-template-columns:1fr 1fr;gap:5rem;align-items:center;} }

.about-image-wrap { position:relative; }
.about-main-img { border-radius:2rem;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,0,.1); }
.about-main-img img { width:100%;height:400px;object-fit:cover; }
@media(min-width:1024px){ .about-main-img img{height:480px;} }
.about-accent-img { position:absolute;bottom:-2rem;right:-2rem;width:10rem;height:10rem;border-radius:1rem;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.15);border:4px solid #fff;display:none; }
@media(min-width:768px){ .about-accent-img{display:block;} }
.about-accent-img img { width:100%;height:100%;object-fit:cover; }
.about-ring { position:absolute;top:-1.5rem;left:-1.5rem;width:6rem;height:6rem;border:4px solid rgba(201,169,110,.15);border-radius:50%;display:none; }
@media(min-width:1024px){ .about-ring{display:block;} }

.about-text { text-align:center; }
@media(min-width:1024px){ .about-text{text-align:left;} }
.about-heading { font-family:var(--font-display);font-size:clamp(1.75rem,4vw,3rem);font-weight:700;color:var(--warm-900);line-height:1.2;margin-bottom:1.5rem; }
.about-heading span { color:var(--primary); }
.about-desc { color:var(--warm-500);line-height:1.75;margin-bottom:2rem; }
.about-desc p+p { margin-top:1rem; }
.about-desc strong { color:var(--warm-700); }
.about-features { display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:2.5rem; }
.about-feat { display:flex;align-items:flex-start;gap:.75rem; }
.about-feat-icon { width:1.5rem;height:1.5rem;border-radius:50%;background:rgba(139,175,163,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.125rem;color:var(--sage); }
.about-feat-text { font-size:.875rem;color:var(--warm-600); }

/* ===================================================
   SERVICES
   =================================================== */
#services { background:#fff;padding:3rem 1rem; }
.services-container { max-width:80rem;margin:0 auto; }

.filter-tabs { display:flex;justify-content:center;margin-bottom:3rem; }
.filter-tabs-inner { display:inline-flex;background:var(--cream);border-radius:9999px;padding:.375rem;gap:.25rem;overflow-x:auto;max-width:100%;scrollbar-width:none; }
.filter-tabs-inner::-webkit-scrollbar { display:none; }
.filter-tab { padding:.625rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:500;transition:all .3s ease;white-space:nowrap;color:var(--warm-500);cursor:pointer;border:none;background:none;font-family:var(--font-body); }
.filter-tab:hover { color:var(--warm-700);background:rgba(255,255,255,.5); }
.filter-tab.active { background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15); }

.services-grid { display:grid;gap:1.5rem; }
@media(min-width:640px){ .services-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1024px){ .services-grid{grid-template-columns:repeat(3,1fr);} }

.service-card { position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-radius:1rem;padding:1.5rem;padding-top:13rem;cursor:pointer;transition:transform .3s ease; }
.service-card:hover .service-card-img { transform:scale(1.05); }
.service-card[data-hidden="true"] { display:none; }
.service-card-img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease; }
.service-card-gradient { position:absolute;inset:0;background:linear-gradient(to top,#111827 0%,rgba(17,24,39,.4) 50%,transparent 100%); }
.sc-weeks { position:absolute;top:1rem;left:1rem;z-index:10;display:inline-flex;align-items:center;background:rgba(255,255,255,.9);backdrop-filter:blur(4px);color:var(--warm-700);font-size:.75rem;font-weight:500;padding:.25rem .75rem;border-radius:9999px;gap:.25rem; }
.sc-price { position:absolute;top:1rem;right:1rem;z-index:10;background:#fff;border-radius:.75rem;padding:.375rem .75rem;box-shadow:0 4px 12px rgba(0,0,0,.15); }
.sc-price span { font-family:var(--font-display);font-weight:700;font-size:1.125rem;color:var(--primary); }
.sc-cat { position:absolute;top:3.5rem;right:1rem;z-index:10; }
.sc-popular { position:absolute;top:3.5rem;left:1rem;z-index:10;background:var(--primary);color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .75rem;border-radius:9999px;box-shadow:0 4px 12px rgba(0,0,0,.2); }
.sc-body { position:relative;z-index:10; }
.sc-name { font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:#fff;margin-bottom:.25rem; }
.sc-desc { font-size:.875rem;line-height:1.5;color:#D1D5DB;margin-bottom:1rem; }
.sc-btn { display:inline-flex;align-items:center;justify-content:center;width:100%;border-radius:9999px;background:rgba(255,255,255,.2);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.3);padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;color:#fff;transition:background .2s;font-family:var(--font-body);cursor:pointer;gap:.5rem; }
.sc-btn:hover { background:rgba(255,255,255,.3); }

/* ===================================================
   KEEPSAKES
   =================================================== */
#keepsakes { background:var(--cream-dark);padding:3rem 1rem;position:relative;overflow:hidden; }
#keepsakes::before { content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:50rem;height:25rem;background:rgba(124,165,184,.05);border-radius:50%;filter:blur(3rem);pointer-events:none; }
.keepsakes-container { max-width:80rem;margin:0 auto;position:relative;z-index:10; }
.keepsakes-grid { display:grid;gap:1.5rem; }
@media(min-width:640px){ .keepsakes-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1024px){ .keepsakes-grid{grid-template-columns:repeat(4,1fr);} }

.keepsake-card { background:#fff;border-radius:1rem;box-shadow:0 1px 3px rgba(0,0,0,.05);overflow:hidden;transition:all .5s ease;text-align:center; }
.keepsake-card:hover { box-shadow:0 20px 40px rgba(0,0,0,.1); }
.keepsake-top { padding:2rem 2rem 1rem; }
.keepsake-icon { width:5rem;height:5rem;margin:0 auto 1.5rem;border-radius:1rem;display:flex;align-items:center;justify-content:center;font-size:1.875rem;transition:transform .3s ease; }
.keepsake-card:hover .keepsake-icon { transform:scale(1.1); }
.ki-primary  { background:var(--primary-lighter); }
.ki-secondary{ background:rgba(168,197,212,.4); }
.ki-sage     { background:rgba(139,175,163,.1); }
.ki-pale     { background:rgba(240,230,204,.6); }
.keepsake-name { font-family:var(--font-display);font-weight:700;font-size:1.125rem;color:var(--warm-800);margin-bottom:.5rem; }
.keepsake-desc { font-size:.875rem;color:var(--warm-500);line-height:1.6;margin-bottom:1rem; }
.keepsake-bottom { padding:0 2rem 2rem; }
.keepsake-price-row { display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem; }
.keepsake-price { font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--primary); }
.keepsake-lead { font-size:.75rem;color:var(--warm-400);background:var(--cream);padding:.25rem .5rem;border-radius:9999px; }
.keepsake-note { text-align:center;font-size:.875rem;color:var(--warm-400);margin-top:2rem; }

/* ===================================================
   GALLERY
   =================================================== */
#gallery { background:#fff;padding:3rem 1rem; }
.gallery-container { max-width:80rem;margin:0 auto; }

.gallery-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:10px; }
.gallery-grid > * { aspect-ratio:1/1; }
@media(min-width:640px) and (max-width:767px){ .gallery-grid{grid-template-columns:repeat(3,1fr);gap:12px;} }
@media(min-width:768px){
  .gallery-grid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(8,75px);grid-auto-flow:column;gap:16px;}
  .gallery-grid > *{aspect-ratio:auto;}
  .g-span-4{grid-row:span 4;}
  .g-span-2{grid-row:span 2;}
}

.gallery-item { position:relative;border-radius:.75rem;overflow:hidden;cursor:pointer; }
.gallery-item img { width:100%;height:100%;object-fit:cover;transition:transform .7s ease; }
.gallery-item:hover img { transform:scale(1.05); }
.gallery-overlay { position:absolute;inset:0;background:rgba(201,169,110,0);transition:background .3s ease;display:flex;align-items:center;justify-content:center; }
.gallery-item:hover .gallery-overlay { background:rgba(201,169,110,.2); }
.gallery-overlay svg { width:2.5rem;height:2.5rem;color:#fff;opacity:0;transition:opacity .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); }
.gallery-item:hover .gallery-overlay svg { opacity:1; }

/* Lightbox */
.lightbox { display:none;position:fixed;inset:0;z-index:100;background:rgba(42,35,32,.95);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:1rem; }
.lightbox.open { display:flex; }
.lb-close { position:absolute;top:1.5rem;right:1.5rem;color:rgba(255,255,255,.7);transition:color .2s;padding:.25rem;background:none;border:none;cursor:pointer; }
.lb-close:hover { color:#fff; }
.lb-prev,.lb-next { position:absolute;color:rgba(255,255,255,.7);padding:.5rem;background:none;border:none;cursor:pointer;transition:color .2s; }
.lb-prev{left:1rem;} .lb-next{right:1rem;}
.lb-prev:hover,.lb-next:hover { color:#fff; }
.lb-img { max-width:100%;max-height:85vh;border-radius:1rem;box-shadow:0 25px 50px rgba(0,0,0,.5);object-fit:contain; }
.lb-counter { position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.6);font-size:.875rem; }

/* ===================================================
   TESTIMONIALS
   =================================================== */
#reviews { background:var(--cream);padding:3rem 1rem;position:relative;overflow:hidden; }
#reviews::before { content:'';position:absolute;top:0;right:0;width:25rem;height:25rem;background:rgba(201,169,110,.03);border-radius:50%;filter:blur(3rem);pointer-events:none; }
#reviews::after  { content:'';position:absolute;bottom:0;left:0;width:18.75rem;height:18.75rem;background:rgba(124,165,184,.03);border-radius:50%;filter:blur(3rem);pointer-events:none; }
.reviews-container { max-width:80rem;margin:0 auto;position:relative;z-index:10; }
.reviews-heading { text-align:center;margin-bottom:4rem; }
.reviews-heading h2 { font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:-.025em;color:#111827; }
.reviews-heading p { margin-top:1.5rem;color:#4B5563;font-size:1.125rem; }
.google-rating { display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem; }
.google-rating-stars { display:flex;color:var(--primary); }
.google-rating-stars svg { width:1.5rem;height:1.5rem; }
.google-score { font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--warm-800); }
.google-label { font-size:.875rem;color:var(--warm-400); }
.reviews-grid { display:grid;gap:1.5rem; }
@media(min-width:768px){ .reviews-grid{grid-template-columns:repeat(3,1fr);} }

.review-card { background:#fff;border-radius:1rem;padding:2rem;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:all .5s ease;display:flex;flex-direction:column; }
.review-card:hover { box-shadow:0 20px 40px rgba(0,0,0,.1); }
.review-quote-icon { position:absolute;top:1.5rem;right:1.5rem;color:rgba(201,169,110,.1); }
.review-stars { display:flex;color:var(--primary);margin-bottom:1rem; }
.review-stars svg { width:1rem;height:1rem; }
.review-text { color:var(--warm-600);line-height:1.75;margin-bottom:1.5rem;font-size:.875rem;flex:1; }
.review-author { display:flex;align-items:center;gap:.75rem;margin-top:auto; }
.review-avatar { width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:.875rem;flex-shrink:0; }
.review-name { font-weight:500;color:var(--warm-800);font-size:.875rem; }
.review-source { font-size:.75rem;color:var(--warm-400);display:flex;align-items:center;gap:.25rem;margin-top:.125rem; }

/* ===================================================
   CONTACT
   =================================================== */
#contact { background:#fff;padding:3rem 1rem; }
.contact-container { max-width:80rem;margin:0 auto; }
.contact-card-wrap { max-width:36rem;margin:0 auto; }
.branch-card { background:#fff;border-radius:1rem;padding:2rem;box-shadow:0 1px 3px rgba(0,0,0,.05);transition:all .5s ease; }
.branch-card:hover { box-shadow:0 20px 40px rgba(0,0,0,.1); }
.branch-header { display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem; }
.branch-icon { width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--primary-lighter);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary); }
.branch-name { font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--warm-800); }
.branch-area { font-size:.875rem;color:var(--warm-400); }
.branch-details { display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem; }
.branch-row { display:flex;align-items:flex-start;gap:.75rem; }
.branch-row-icon { width:1.25rem;height:1.25rem;color:var(--warm-300);flex-shrink:0;margin-top:.125rem; }
.branch-row-text { font-size:.875rem;color:var(--warm-600); }
.branch-row-link { font-size:.875rem;color:var(--primary);font-weight:500;transition:color .2s; }
.branch-row-link:hover { color:var(--primary-dark); }
.branch-map { border-radius:.75rem;overflow:hidden;height:12rem;margin-bottom:1.5rem; }
.branch-map iframe { width:100%;height:100%;border:0; }
.branch-ctas { display:flex;gap:.75rem; }
.branch-ctas > * { flex:1;justify-content:center;font-size:.875rem; }

/* ===================================================
   CTA SECTION
   =================================================== */
/* ===================================================
   BOOKING SECTION
   =================================================== */
.booking-section { padding:5rem 1rem 6rem;background:var(--cream);position:relative;z-index:10; }
.booking-container { max-width:54rem;margin:0 auto; }
.booking-widget { margin-top:2.5rem;background:#fff;border-radius:1.25rem;box-shadow:0 4px 24px rgba(0,0,0,.07);padding:2rem;overflow:visible; }
/* Allow datepicker calendar to overflow all bookly containers */
.bookly-form .bookly-box,
.bookly-form .bookly-row,
.bookly-form .bookly-service-step,
.bookly-form .bookly-css-root { overflow:visible !important; }
/* Bookly widget colour overrides to match theme */
/* Primary buttons */
.bookly-form .bookly-btn,
.bookly-form .bookly-btn-submit,
.bookly-form button[type="submit"] { background-color:var(--primary) !important;border-color:var(--primary) !important;color:#fff !important; }
.bookly-form .bookly-btn:hover,
.bookly-form .bookly-btn-submit:hover { background-color:var(--primary-dark) !important;border-color:var(--primary-dark) !important; }
/* Error text */
.bookly-form .bookly-label-error { color:var(--primary-dark) !important; }
/* Progress tracker active step */
.bookly-form .bookly-progress-tracker > .active { color:var(--primary) !important; }
.bookly-form .bookly-progress-tracker > .active .step { background:var(--primary) !important; }
/* Focus borders on inputs */
.bookly-form input[type="text"]:focus,
.bookly-form input[type="tel"]:focus,
.bookly-form input[type="email"]:focus,
.bookly-form select:focus,
.bookly-form textarea:focus { border-color:var(--primary) !important;box-shadow:0 0 0 3px rgba(201,169,110,.18) !important;outline:none !important; }
/* Form group labels */
.bookly-form .bookly-form-group > label { color:var(--primary-dark) !important; }
/* Time slot hover border */
.bookly-form .bookly-columnizer .bookly-hour:hover { border-color:var(--primary) !important; }
/* Calendar day header background */
.bookly-form .bookly-columnizer .bookly-day,
.bookly-form .bookly-schedule-date { background:var(--primary) !important;border-color:var(--primary) !important; }
/* Checkbox / week-day circles */
.bookly-form .bookly-service-step .bookly-week-days input[type="checkbox"],
.bookly-form .bookly-repeat-step .bookly-week-days input[type="checkbox"] { background-color:var(--primary) !important;border-color:var(--primary) !important; }
/* Pagination active */
.bookly-form .bookly-pagination > li.active { background-color:var(--primary) !important; }
.bookly-form .bookly-pagination > li.active a { border-color:var(--primary) !important; }

.cta-section { position:relative;padding:6rem 1rem;overflow:hidden; }
.cta-bg { position:absolute;inset:0;background:linear-gradient(135deg,var(--primary),var(--primary-dark),var(--warm-800)); }
.cta-glow { position:absolute;inset:0;opacity:.1;background:radial-gradient(circle at 30% 40%,#fff 0%,transparent 50%); }
.cta-ring-1 { position:absolute;top:2.5rem;left:2.5rem;width:8rem;height:8rem;border:1px solid rgba(255,255,255,.1);border-radius:50%; }
.cta-ring-2 { position:absolute;bottom:2.5rem;right:2.5rem;width:12rem;height:12rem;border:1px solid rgba(255,255,255,.05);border-radius:50%; }
.cta-ring-3 { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:24rem;height:24rem;border:1px solid rgba(255,255,255,.05);border-radius:50%; }
.cta-content { position:relative;z-index:10;max-width:48rem;margin:0 auto;text-align:center; }
.cta-heading { font-family:var(--font-display);font-size:clamp(1.875rem,5vw,3rem);font-weight:700;color:#fff;line-height:1.2;margin-bottom:1.5rem; }
.cta-desc { font-size:1.125rem;color:rgba(255,255,255,.7);margin-bottom:2.5rem;max-width:36rem;margin-left:auto;margin-right:auto; }
.cta-buttons { display:flex;flex-direction:column;gap:1rem;justify-content:center;align-items:center; }
@media(min-width:640px){ .cta-buttons{flex-direction:row;} }
.cta-btn-white { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:var(--primary);border-radius:9999px;padding:1rem 2.5rem;font-weight:500;transition:all .3s ease;box-shadow:0 10px 25px rgba(0,0,0,.15); }
.cta-btn-white:hover { background:var(--cream);box-shadow:0 15px 35px rgba(0,0,0,.2);color:var(--primary); }
.cta-section .btn-whatsapp { padding:1rem 2.5rem;box-shadow:0 10px 25px rgba(0,0,0,.15); }

/* ===================================================
   FOOTER
   =================================================== */
#site-footer { background:var(--warm-900);color:var(--warm-400);position:relative;overflow:hidden; }
.footer-inner { max-width:80rem;margin:0 auto;padding:4rem 1rem 2rem; }
@media(min-width:640px){ .footer-inner{padding:4rem 1.5rem 2rem;} }
.footer-grid { display:grid;gap:2.5rem;margin-bottom:4rem; }
@media(min-width:768px){ .footer-grid{grid-template-columns:1fr 1fr;} }
@media(min-width:1024px){ .footer-grid{grid-template-columns:1.5fr 1fr 1fr;} }

.footer-logo-row { display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem; }
.footer-logo-icon { width:2.5rem;height:2.5rem;border-radius:.75rem;background:rgba(201,169,110,.2);display:flex;align-items:center;justify-content:center;color:var(--primary-light); }
.footer-brand-name { font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:#fff;display:block; }
.footer-brand-sub { font-size:.5625rem;text-transform:uppercase;letter-spacing:.2em;color:var(--warm-500);display:block; }
.footer-desc { font-size:.875rem;line-height:1.75;margin-bottom:1.5rem; }
.footer-socials { display:flex;gap:.75rem; }
.footer-social { width:2.5rem;height:2.5rem;border-radius:.75rem;background:var(--warm-800);display:flex;align-items:center;justify-content:center;transition:background .2s;color:var(--warm-400); }
.footer-social:hover { background:rgba(201,169,110,.2);color:var(--primary-light); }
.footer-col-title { font-family:var(--font-display);font-weight:700;color:#fff;margin-bottom:1.25rem; }
.footer-links { display:flex;flex-direction:column;gap:.75rem; }
.footer-link { font-size:.875rem;color:var(--warm-400);display:flex;align-items:center;gap:.5rem;transition:color .2s; }
.footer-link:hover { color:var(--primary-light); }
.footer-link svg { color:rgba(201,169,110,.5); }
.footer-contact { display:flex;flex-direction:column;gap:.75rem;font-size:.875rem; }
.footer-contact a { color:var(--warm-400);transition:color .2s; }
.footer-contact a:hover { color:var(--primary-light); }
.footer-bottom { border-top:1px solid var(--warm-800);padding-top:2rem;display:flex;flex-direction:column;gap:1rem;align-items:center; }
@media(min-width:768px){ .footer-bottom{flex-direction:row;justify-content:space-between;} }
.footer-copy { font-size:.75rem;color:var(--warm-600); }
.footer-copy a { color:var(--primary-light);transition:color .2s; }
.footer-copy a:hover { color:var(--primary); }
.footer-disclaimer { font-size:.6875rem;color:var(--warm-600);max-width:32rem;text-align:center; }
@media(min-width:768px){ .footer-disclaimer{text-align:right;} }

/* ===================================================
   WHATSAPP FLOAT
   =================================================== */
.wa-float { position:fixed;bottom:1.5rem;right:1.5rem;z-index:50;background:var(--whatsapp);color:#fff;padding:1rem;border-radius:50%;box-shadow:0 10px 25px rgba(37,211,102,.25);transition:all .3s ease;display:flex;align-items:center;justify-content:center; }
.wa-float:hover { transform:scale(1.1);color:#fff;box-shadow:0 15px 30px rgba(37,211,102,.3); }
.wa-float:active { transform:scale(.95); }
.wa-tooltip { position:absolute;right:100%;margin-right:.75rem;top:50%;transform:translateY(-50%);background:var(--warm-900);color:#fff;font-size:.75rem;padding:.5rem .75rem;border-radius:.5rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s;box-shadow:0 4px 12px rgba(0,0,0,.2); }
.wa-tooltip::after { content:'';position:absolute;right:0;top:50%;transform:translateY(-50%) translateX(50%) rotate(45deg);width:.5rem;height:.5rem;background:var(--warm-900); }
.wa-float:hover .wa-tooltip { opacity:1; }

/* ===================================================
   SERVICE MODAL
   =================================================== */
.modal-overlay { display:none;position:fixed;inset:0;z-index:60;align-items:center;justify-content:center;padding:1rem;background:rgba(42,35,32,.6);backdrop-filter:blur(4px); }
.modal-overlay.open { display:flex; }
.modal-panel { background:#fff;border-radius:1.5rem;box-shadow:0 25px 50px rgba(0,0,0,.2);max-width:32rem;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:modalIn .3s ease; }
@keyframes modalIn { from{opacity:0;transform:translateY(20px) scale(.95)} to{opacity:1;transform:translateY(0) scale(1)} }
.modal-header { padding:1.5rem 1.5rem 1rem;border-bottom:1px solid var(--warm-100);position:relative; }
.modal-close { position:absolute;top:1rem;right:1rem;width:2.5rem;height:2.5rem;border-radius:50%;background:rgba(253,248,244,1);display:flex;align-items:center;justify-content:center;color:var(--warm-500);transition:background .2s; }
.modal-close:hover { background:var(--warm-100); }
.modal-badges { display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap; }
.modal-name { font-family:var(--font-display);font-weight:700;font-size:1.5rem;color:var(--warm-900);padding-right:2.5rem; }
.modal-price { font-family:var(--font-display);font-weight:700;font-size:1.25rem;color:var(--primary);margin-top:.25rem; }
.modal-tagline { font-size:.875rem;color:var(--warm-400);font-style:italic;margin-top:.25rem; }
.modal-body { flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.5rem; }
.modal-chips { display:flex;flex-wrap:wrap;gap:.5rem; }
.modal-chip { display:inline-flex;align-items:center;gap:.375rem;background:var(--cream);padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;color:var(--warm-600); }
.modal-chip svg { width:.75rem;height:.75rem; }
.modal-full-desc { font-size:.875rem;color:var(--warm-600);line-height:1.75;white-space:pre-line; }
.modal-includes-title { font-family:var(--font-display);font-weight:700;font-size:.875rem;color:var(--warm-800);margin-bottom:.75rem; }
.modal-includes-list { display:flex;flex-direction:column;gap:.5rem; }
.modal-include-item { display:flex;align-items:flex-start;gap:.5rem;font-size:.875rem;color:var(--warm-600); }
.modal-include-item svg { width:1rem;height:1rem;color:var(--sage);flex-shrink:0;margin-top:.125rem; }
.modal-notes { background:var(--cream);border-radius:.75rem;padding:1rem; }
.modal-notes-title { display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:700;color:var(--warm-700);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem; }
.modal-notes-title svg { width:.875rem;height:.875rem; }
.modal-note-text { font-size:.75rem;color:var(--warm-500);line-height:1.6; }
.modal-note-text+.modal-note-text { margin-top:.375rem; }
.modal-footer { padding:1.5rem 1.5rem 1rem;border-top:1px solid var(--warm-100);display:flex;flex-direction:column;gap:.75rem; }
.modal-book-btn { display:flex;align-items:center;justify-content:center;width:100%;text-align:center;border-radius:9999px;padding:.875rem 2rem;font-size:1rem; }
.modal-footer .btn-whatsapp { width:100%;justify-content:center;border-radius:9999px; }
