
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --teal:#7A9E8C;
  --teal-dark:#6A8E7C;
  --teal-deep:#5E8C7C;
  --teal-soft:#9ABFB4;
  --teal-pale:#C8DDD8;
  --teal-lightest:#EBF4F2;
  --brown:#6B4C2A;
  --brown-mid:#8B6340;
  --brown-pale:#C4A882;
  --gold:#D4A843;
  --gold-light:#EFC96A;
  --cream:#FAF7F1;
  --warm-white:#F5F1EA;
  --white:#FFFFFF;
  --text-dark:#1A2E28;
  --text-mid:#2A4F4A;
  --text-muted:#5A8078;
  --border:#C5DAD5;
  --star:#D4A843;
}

html{scroll-behavior:smooth}

body{
  font-family:'Inter',sans-serif;
  font-weight:300;
  background:var(--white);
  color:var(--text-dark);
  line-height:1.75;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  font-feature-settings:'kern' 1,'liga' 1;
  font-size:17px;
  cursor:pointer;
}

/* CUSTOM CURSOR */
#cursor{
  position:fixed;
  pointer-events:none;
  z-index:9999;
  width:28px;height:28px;
  transform:translate(-50%,-50%);
  transition:transform 0.1s ease;
}
#cursor svg{width:100%;height:100%}
.spark{
  position:fixed;
  pointer-events:none;
  z-index:9998;
  border-radius:50%;
  transform:translate(-50%,-50%);
  animation:sparkle 0.7s ease-out forwards;
}
@keyframes sparkle{
  0%{opacity:1;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(0)}
}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 2.5rem;
  background:rgba(250,247,241,0.96);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  transition:all 0.3s;
}
nav.scrolled{
  padding:0.7rem 2.5rem;
  background:rgba(250,247,241,0.99);
}
.logo{
  font-family:'Lora',serif;
  font-size:1.5rem;
  font-weight:500;
  color:var(--teal-deep);
  letter-spacing:0.02em;
}
.logo em{font-style:italic;color:var(--teal-soft)}
.nav-right{display:flex;align-items:center;gap:1.2rem}
.lang-toggle{
  display:flex;gap:2px;
  background:var(--teal-lightest);
  border-radius:20px;padding:3px;
  border:1px solid var(--border);
}
.lang-btn{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.06em;padding:4px 10px;border:none;border-radius:16px;
  cursor:pointer;background:transparent;color:var(--text-muted);transition:all 0.2s;
}
.lang-btn.active{background:var(--teal);color:var(--white)}
.nav-cta{
  font-family:'Inter',sans-serif;font-size:13px;font-weight:400;
  letter-spacing:0.06em;padding:9px 22px;
  background:var(--teal);color:var(--white);
  border:none;border-radius:24px;cursor:pointer;
  transition:all 0.2s;text-decoration:none;
}
.nav-cta:hover{background:var(--teal-dark);transform:translateY(-1px)}

/* HERO */
.hero{
  min-height:100vh;
  background:var(--teal-deep);
  display:flex;align-items:center;
  padding:7rem 2.5rem 5rem;
  position:relative;overflow:hidden;
}
.hero-bg{
  position:absolute;inset:0;
  background:
    radial-gradient(ellipse 60% 60% at 70% 40%, rgba(90,173,160,0.18) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 20% 80%, rgba(11,107,107,0.3) 0%, transparent 60%);
}
.hero-bg-grad{
  position:absolute;inset:0;
  background:
    linear-gradient(135deg, rgba(94,140,124,0.75) 0%, rgba(94,140,124,0.65) 60%, rgba(94,140,124,0.78) 100%);
}
.hero-waves{
  position:absolute;bottom:0;left:0;right:0;height:180px;
  opacity:0.12;
}
.hero-inner{
  max-width:1100px;margin:0 auto;width:100%;
  position:relative;z-index:1;
  display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;
}
.hero-eyebrow{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.16em;text-transform:uppercase;
  color:var(--teal-pale);margin-bottom:1.6rem;
  display:flex;align-items:center;gap:12px;
  opacity:0;animation:fadeUp 0.8s 0.2s ease forwards;
}
.hero-eyebrow::before{content:'';display:block;width:36px;height:1px;background:var(--teal-soft)}

.hero h1{
  font-family:'Lora',serif;
  font-size:clamp(3.2rem,5.5vw,5rem);
  font-weight:400;color:var(--white);
  line-height:1.1;margin-bottom:1.4rem;
  letter-spacing:-0.01em;
  opacity:0;animation:fadeUp 0.8s 0.35s ease forwards;
}
.hero h1 em{font-style:italic;color:var(--teal-pale)}

.hero-sub{
  font-size:1rem;font-weight:300;
  color:rgba(168,213,206,0.75);
  line-height:1.85;margin-bottom:2.2rem;max-width:400px;
  opacity:0;animation:fadeUp 0.8s 0.5s ease forwards;
}
.hero-stars{
  display:flex;align-items:center;gap:8px;margin-bottom:2.4rem;
  opacity:0;animation:fadeUp 0.8s 0.6s ease forwards;
}
.stars{color:var(--gold);font-size:15px;letter-spacing:3px}
.hero-stars span{font-size:12px;font-weight:400;color:rgba(168,213,206,0.6)}

.btns{
  display:flex;gap:12px;flex-wrap:wrap;
  opacity:0;animation:fadeUp 0.8s 0.7s ease forwards;
}
.btn-primary{
  display:inline-block;padding:14px 34px;
  background:var(--white);color:var(--teal-deep);
  font-family:'Inter',sans-serif;font-weight:400;font-size:14px;
  letter-spacing:0.06em;border-radius:32px;
  text-decoration:none;border:none;cursor:pointer;transition:all 0.2s;
}
.btn-primary:hover{background:var(--teal-lightest);transform:translateY(-2px)}
.btn-ghost{
  display:inline-block;padding:14px 34px;
  background:transparent;color:rgba(255,255,255,0.8);
  font-family:'Inter',sans-serif;font-weight:300;font-size:14px;
  letter-spacing:0.06em;border-radius:32px;
  text-decoration:none;border:1px solid rgba(168,213,206,0.3);cursor:pointer;transition:all 0.2s;
}
.btn-ghost:hover{border-color:rgba(168,213,206,0.7);color:var(--white)}

.hero-photo-wrap{
  position:relative;
  display:flex;
  justify-content:center;
  align-items:flex-start;
  padding-top:1rem;
  opacity:0;animation:fadeRight 0.9s 0.5s ease forwards;
}
.hero-photo{
  width:min(580px,45vw);height:min(580px,45vw);
  object-fit:cover;object-position:top center;
  display:block;
  border-radius:50%;
  border:4px solid rgba(168,213,206,0.4);
  box-shadow:0 24px 60px rgba(0,0,0,0.35),0 0 0 8px rgba(168,213,206,0.1);
}

.hero-card{
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(168,213,206,0.2);
  border-radius:20px;padding:2.2rem;
  opacity:0;animation:fadeRight 0.9s 0.5s ease forwards;
}
.hero-card-title{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--teal-pale);margin-bottom:1.4rem;
}
.price-feature{
  display:flex;align-items:center;gap:12px;
  padding:9px 0;border-bottom:1px solid rgba(168,213,206,0.1);
  color:rgba(255,255,255,0.75);font-size:15px;font-weight:300;
}
.price-feature:last-child{border-bottom:none}
.check{
  width:20px;height:20px;border-radius:50%;
  background:rgba(90,173,160,0.2);
  border:1px solid rgba(168,213,206,0.3);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:10px;color:var(--teal-pale);
}

/* FIRST TIME INFO BANNER */
#first-time-info{
  background:var(--warm-white);
  padding:4rem 2.5rem;
  position:relative;overflow:hidden;
  border-top:1px solid var(--border);
  border-bottom:1px solid var(--border);
}
#first-time-info::before{
  content:'';position:absolute;
  right:-80px;top:-80px;
  width:600px;height:600px;border-radius:50%;
  background:var(--teal-lightest);
  opacity:0.5;
}
.fti-inner{
  max-width:900px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;
}
.fti-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--teal-lightest);
  color:var(--teal-soft);
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  padding:5px 14px;border-radius:20px;margin-bottom:1rem;
  border:1px solid var(--border);
}
#first-time-info h2{
  font-family:'Lora',serif;
  font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;
  color:var(--teal-deep);line-height:1.2;margin-bottom:0.8rem;
}
#first-time-info p{
  font-size:0.95rem;font-weight:300;
  color:var(--text-muted);line-height:1.8;
}
.fti-details{display:flex;flex-direction:column;gap:10px}
.fti-detail{
  display:flex;align-items:flex-start;gap:12px;
  background:var(--white);
  border-radius:12px;padding:14px 16px;
  border:1px solid var(--border);
}
.fti-icon{
  width:32px;height:32px;border-radius:8px;
  background:var(--teal-lightest);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;font-size:14px;color:var(--teal);
}
.fti-detail-text{font-size:13px;font-weight:300;color:var(--text-muted);line-height:1.6}
.fti-detail-title{font-weight:400;color:var(--text-dark);font-size:14px;margin-bottom:2px}

/* CALCULATOR */
#calculator{background:var(--cream);padding:6rem 2.5rem}
.section-inner{max-width:920px;margin:0 auto}
.section-label{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--teal-soft);margin-bottom:0.8rem;
  display:flex;align-items:center;gap:12px;
}
.section-label::before{content:'';display:block;width:28px;height:1px;background:var(--teal-pale)}
.section-title{
  font-family:'Lora',serif;
  font-size:clamp(2.2rem,3.8vw,3.2rem);font-weight:400;
  color:var(--teal-deep);margin-bottom:0.5rem;line-height:1.15;
}
.section-title em{font-style:italic;color:var(--teal-soft)}
.section-sub{font-size:1rem;font-weight:300;color:var(--text-muted);margin-bottom:3rem}

/* CLEANING TYPE TOGGLE */
.cleaning-toggle{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0;border:1.5px solid var(--border);border-radius:14px;
  overflow:hidden;margin-bottom:2rem;background:var(--white);
}
.cleaning-opt{
  padding:1.2rem 1.5rem;cursor:pointer;
  transition:all 0.2s;border:none;background:transparent;
  text-align:left;font-family:'Inter',sans-serif;
}
.cleaning-opt.active{background:var(--teal-deep);color:var(--white)}
.cleaning-opt:not(.active){color:var(--text-mid)}
.cleaning-opt:not(.active):hover{background:var(--teal-lightest)}
.cleaning-opt-title{font-size:15px;font-weight:400;margin-bottom:3px}
.cleaning-opt-price{font-size:12px;opacity:0.7;font-weight:300}
.cleaning-opt.active .cleaning-opt-price{color:var(--teal-pale)}
.cleaning-divider{width:1.5px;background:var(--border)}

.calc-card{
  background:var(--white);border-radius:20px;
  padding:2.5rem;border:1px solid var(--border);
}
.calc-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem}
.calc-right{
  background:var(--teal-deep);border-radius:16px;
  padding:2rem;display:flex;flex-direction:column;justify-content:center;
}

.input-group{margin-bottom:1.8rem}
.input-label{
  display:block;font-family:'Inter',sans-serif;font-size:11px;
  font-weight:500;letter-spacing:0.09em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:10px;
}
.m2-input-wrap{
  display:flex;align-items:center;
  border:1.5px solid var(--border);border-radius:12px;
  overflow:hidden;background:var(--warm-white);
  transition:border-color 0.2s;
}
.m2-input-wrap:focus-within{border-color:var(--teal-soft)}
.m2-input{
  flex:1;border:none;background:transparent;
  padding:14px 18px;
  font-family:'Lora',serif;font-size:1.6rem;font-weight:400;
  color:var(--text-dark);outline:none;
}
.m2-unit{
  padding:0 18px;font-family:'Inter',sans-serif;
  font-size:14px;color:var(--text-muted);font-weight:300;
}

.extras-title{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.09em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:12px;
}
.extras-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.extra-btn{
  display:flex;align-items:center;justify-content:space-between;
  padding:11px 14px;border:1.5px solid var(--border);
  border-radius:10px;background:var(--warm-white);
  cursor:pointer;transition:all 0.15s;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:300;
  color:var(--text-mid);
}
.extra-btn:hover{border-color:var(--teal-soft);background:var(--teal-lightest)}
.extra-btn.selected{border-color:var(--teal);background:var(--teal-lightest);color:var(--teal-deep);font-weight:400}
.extra-price{font-size:11px;font-weight:500;color:var(--teal-soft)}
.extra-btn.selected .extra-price{color:var(--teal)}

.result-label{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.1em;text-transform:uppercase;
  color:var(--teal-pale);margin-bottom:0.4rem;
}
.result-price{
  font-family:'Lora',serif;font-size:4rem;font-weight:300;
  color:var(--white);line-height:1;margin-bottom:0.3rem;
}
.result-price sup{font-size:1.5rem;vertical-align:super}
.result-breakdown{
  font-size:13px;font-weight:300;
  color:rgba(168,213,206,0.5);margin-bottom:0.5rem;line-height:1.7;
}
.first-clean-note{
  font-size:12px;font-weight:300;
  color:var(--gold-light);margin-bottom:1.8rem;
  padding:8px 12px;background:rgba(212,168,67,0.12);
  border-radius:8px;border:1px solid rgba(212,168,67,0.2);
  display:none;
}
.first-clean-note.show{display:block}
.result-cta{
  display:block;width:100%;padding:14px;
  background:var(--white);color:var(--teal-deep);
  font-family:'Inter',sans-serif;font-weight:500;font-size:13px;
  letter-spacing:0.06em;border:none;border-radius:12px;
  cursor:pointer;transition:all 0.2s;text-align:center;text-decoration:none;
}
.result-cta:hover{background:var(--teal-lightest)}

/* REVIEWS */
#reviews{background:var(--white);padding:6rem 2.5rem}
.reviews-header{text-align:center;margin-bottom:3.5rem}
.reviews-super{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.14em;text-transform:uppercase;
  color:var(--teal-soft);margin-bottom:0.8rem;
}
.stars-big{font-size:2rem;color:var(--gold);letter-spacing:5px;margin-bottom:6px}
.reviews-count{font-size:13px;color:var(--text-muted);font-weight:300}
.reviews-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:1.5rem;max-width:1000px;margin:0 auto;
}
.review-card{
  background:var(--warm-white);border-radius:18px;
  padding:1.8rem;border:1px solid var(--border);
  transition:transform 0.2s;
}
.review-card:hover{transform:translateY(-3px)}
.review-stars{color:var(--gold);font-size:12px;margin-bottom:14px;letter-spacing:3px}
.review-text{
  font-family:'Lora',serif;font-size:1.05rem;font-weight:300;
  font-style:italic;color:var(--text-mid);line-height:1.75;margin-bottom:1.2rem;
}
.review-author{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.08em;color:var(--teal-soft);text-transform:uppercase;
}

/* BOOKING */
#booking{
  background:var(--teal-deep);
  padding:6rem 2.5rem;text-align:center;
}
#booking .section-label{color:var(--teal-pale);justify-content:center}
#booking .section-label::before{background:rgba(168,213,206,0.3)}
#booking .section-title{color:var(--white)}
#booking .section-sub{color:rgba(255,255,255,0.75);margin-bottom:2.5rem}
.booking-features{
  display:flex;justify-content:center;gap:2.5rem;
  margin-bottom:3rem;flex-wrap:wrap;
}
.booking-feat{
  display:flex;align-items:center;gap:8px;
  font-size:13px;font-weight:300;color:rgba(255,255,255,0.7);
}
.feat-dot{width:5px;height:5px;border-radius:50%;background:var(--teal-pale)}
.booking-form{
  background:var(--white);border-radius:20px;
  padding:2rem;max-width:680px;margin:0 auto;
  text-align:left;
}
.bf-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}
.bf-field{display:flex;flex-direction:column;gap:6px}
.bf-field.full{grid-column:1/-1}
.bf-label{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:500;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--text-muted);
}
.bf-input{
  border:1.5px solid var(--border);border-radius:10px;
  padding:11px 14px;font-family:'Inter',sans-serif;font-size:14px;
  font-weight:300;color:var(--text-dark);background:var(--warm-white);
  outline:none;transition:border-color 0.2s;width:100%;
}
.bf-input:focus{border-color:var(--teal-soft)}
.bf-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.slot-btn{
  padding:10px 12px;border:1.5px solid var(--border);border-radius:10px;
  background:var(--warm-white);font-family:'Inter',sans-serif;font-size:13px;
  font-weight:300;color:var(--text-mid);cursor:pointer;transition:all 0.15s;
  text-align:center;
}
.slot-btn:hover{border-color:var(--teal-soft);background:var(--teal-lightest)}
.slot-btn.selected{border-color:var(--teal);background:var(--teal-lightest);color:var(--teal-deep);font-weight:400}
.slot-btn:disabled{opacity:0.35;cursor:not-allowed}
.bf-calendar{margin-bottom:1rem}
.cal-nav{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:0.75rem;
}
.cal-nav-btn{
  background:none;border:1.5px solid var(--border);border-radius:8px;
  padding:5px 10px;cursor:pointer;font-size:14px;color:var(--text-mid);
  transition:all 0.15s;font-family:'Inter',sans-serif;
}
.cal-nav-btn:hover{border-color:var(--teal-soft)}
.cal-month{font-family:'Lora',serif;font-size:1.1rem;color:var(--text-dark)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{
  font-size:11px;font-weight:500;letter-spacing:0.05em;text-transform:uppercase;
  color:var(--text-muted);text-align:center;padding:4px 0;
}
.cal-day{
  aspect-ratio:1;display:flex;align-items:center;justify-content:center;
  border-radius:8px;font-size:13px;font-weight:300;color:var(--text-mid);
  cursor:default;transition:all 0.15s;border:1.5px solid transparent;
}
.cal-day.available{
  cursor:pointer;color:var(--teal-deep);font-weight:400;
  background:var(--teal-lightest);border-color:var(--border);
}
.cal-day.available:hover{border-color:var(--teal-soft);background:rgba(90,173,160,0.2)}
.cal-day.selected{background:var(--teal);color:var(--white);border-color:var(--teal)}
.cal-day.booked{opacity:0.4;cursor:not-allowed;background:var(--border);text-decoration:line-through}
.cal-day.past{opacity:0.3}
.cal-day.empty{background:none}
.bf-summary{
  background:var(--teal-lightest);border:1px solid var(--border);
  border-radius:10px;padding:12px 14px;margin-bottom:1rem;
  font-size:13px;color:var(--text-mid);line-height:1.8;font-weight:300;
  display:none;
}
.bf-summary.show{display:block}
.bf-submit{
  width:100%;padding:15px;background:var(--teal);color:var(--white);
  font-family:'Inter',sans-serif;font-weight:500;font-size:15px;
  letter-spacing:0.05em;border:none;border-radius:12px;
  cursor:pointer;transition:all 0.2s;margin-top:0.5rem;
}
.bf-submit:hover{background:var(--teal-dark);transform:translateY(-1px)}
.bf-submit:disabled{opacity:0.5;cursor:not-allowed;transform:none}
.bf-success{
  text-align:center;padding:2rem;display:none;
}
.bf-success.show{display:block}
.bf-success-icon{font-size:3rem;margin-bottom:1rem}
.bf-success h3{font-family:'Lora',serif;font-size:1.6rem;color:var(--teal-deep);margin-bottom:0.5rem}
.bf-success p{font-size:14px;color:var(--text-muted);font-weight:300}
@media(max-width:768px){
  .bf-grid{grid-template-columns:1fr}
  .bf-slots{grid-template-columns:1fr 1fr}
}

/* FAQ */
#faq{background:var(--cream);padding:6rem 2.5rem;border-top:1px solid var(--border)}
#faq .section-inner{max-width:700px}
.faq-list{margin-top:2.5rem}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{
  width:100%;display:flex;align-items:center;
  justify-content:space-between;padding:1.2rem 0;
  background:none;border:none;
  font-family:'Lora',serif;font-size:1.15rem;font-weight:400;
  color:var(--text-dark);cursor:pointer;text-align:left;gap:1rem;
  transition:color 0.2s;
}
.faq-q:hover{color:var(--teal)}
.faq-icon{
  flex-shrink:0;width:22px;height:22px;border-radius:50%;
  border:1px solid var(--border);
  color:var(--teal-soft);display:flex;align-items:center;justify-content:center;
  font-size:16px;line-height:1;transition:all 0.2s;
  font-family:'Inter',sans-serif;font-weight:300;
}
.faq-item.open .faq-icon{transform:rotate(45deg);border-color:var(--teal);color:var(--teal)}
.faq-a{
  font-size:15px;font-weight:300;color:var(--text-muted);
  line-height:1.8;max-height:0;overflow:hidden;
  transition:max-height 0.35s ease,padding 0.3s;
}
.faq-item.open .faq-a{max-height:300px;padding-bottom:1.4rem}

/* FOOTER */
footer{
  background:var(--teal-deep);color:rgba(255,255,255,0.65);
  padding:3.5rem 2.5rem;font-size:13px;font-weight:300;
}
.footer-inner{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr 1fr;gap:2rem;align-items:start}
.footer-brand{font-family:'Lora',serif;font-size:1.6rem;font-weight:400;color:var(--white);margin-bottom:0.5rem}
.footer-brand em{font-style:italic;color:var(--teal-soft)}
.footer-tagline{font-size:13px;color:rgba(168,213,206,0.5);font-weight:300}
.footer-col-title{font-family:'Inter',sans-serif;font-size:11px;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:rgba(168,213,206,0.6);margin-bottom:1rem}
.footer-links{display:flex;flex-direction:column;gap:8px}
.footer-links a{color:rgba(168,213,206,0.4);text-decoration:none;font-size:13px;transition:color 0.2s}
.footer-links a:hover{color:var(--teal-pale)}
.footer-bottom{max-width:1100px;margin:2rem auto 0;padding-top:2rem;border-top:1px solid rgba(168,213,206,0.1);font-size:11px;opacity:0.35;text-align:center}

/* AROMA BUTTONS */
.aroma-btn{
  flex:1;padding:11px 14px;border:1.5px solid var(--border);
  border-radius:10px;background:var(--warm-white);
  cursor:pointer;transition:all 0.15s;
  font-family:'Inter',sans-serif;font-size:13px;font-weight:300;
  color:var(--text-mid);text-align:center;
}
.aroma-btn:hover{border-color:var(--teal-soft);background:var(--teal-lightest)}
.aroma-btn.active{border-color:var(--teal);background:var(--teal-lightest);color:var(--teal-deep);font-weight:400}

/* MODAL */
.modal-overlay{
  position:fixed;inset:0;z-index:1000;
  background:rgba(6,32,32,0.6);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  padding:1.5rem;
  opacity:0;pointer-events:none;transition:opacity 0.25s;
}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{
  background:var(--white);border-radius:20px;
  padding:2rem;width:100%;max-width:520px;
  max-height:90vh;overflow-y:auto;
  transform:translateY(16px);transition:transform 0.25s;
}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-title{
  font-family:'Lora',serif;font-size:1.6rem;font-weight:400;
  color:var(--teal-deep);margin-bottom:0.3rem;
}
.modal-sub{font-size:13px;font-weight:300;color:var(--text-muted);margin-bottom:1.5rem}
.modal-summary{
  background:var(--warm-white);border:1px solid var(--border);
  border-radius:12px;padding:1rem 1.2rem;
  margin-bottom:1.5rem;font-size:13px;
  color:var(--text-mid);line-height:1.9;font-weight:300;
}
.modal-summary strong{color:var(--teal-deep);font-weight:500}
.modal-field{margin-bottom:1.2rem}
.modal-label{
  display:block;font-family:'Inter',sans-serif;font-size:11px;
  font-weight:500;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:8px;
}
.modal-hint{font-size:12px;font-weight:300;color:var(--text-muted);margin-top:5px;line-height:1.5}
.modal textarea{
  width:100%;border:1.5px solid var(--border);border-radius:10px;
  padding:12px 14px;font-family:'Inter',sans-serif;font-size:14px;
  font-weight:300;color:var(--text-dark);background:var(--warm-white);
  outline:none;resize:vertical;min-height:80px;
  transition:border-color 0.2s;line-height:1.6;
}
.modal textarea:focus{border-color:var(--teal-soft)}
.modal-actions{display:flex;gap:10px;margin-top:1.5rem}
.modal-cta{
  flex:1;padding:14px;background:var(--teal);color:var(--white);
  font-family:'Inter',sans-serif;font-weight:500;font-size:14px;
  letter-spacing:0.05em;border:none;border-radius:12px;
  cursor:pointer;transition:all 0.2s;
}
.modal-cta:hover{background:var(--teal-dark)}
.modal-cancel{
  padding:14px 20px;background:transparent;color:var(--text-muted);
  font-family:'Inter',sans-serif;font-weight:300;font-size:14px;
  border:1.5px solid var(--border);border-radius:12px;
  cursor:pointer;transition:all 0.2s;
}
.modal-cancel:hover{border-color:var(--text-muted)}

@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeRight{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}

/* TABLET */
@media(max-width:1024px){
  .hero-inner{gap:3rem}
  .calc-grid{grid-template-columns:1fr 1fr;gap:1.5rem}
  .reviews-grid{grid-template-columns:repeat(2,1fr)}
}

/* MOBILE */
@media(max-width:768px){

  /* Disable custom cursor on touch */
  body{cursor:auto}
  #cursor{display:none}
  .lang-btn,.nav-cta,.cleaning-opt,.extra-btn,.result-cta,
  .btn-primary,.btn-ghost,.faq-q{cursor:pointer}

  /* Nav */
  nav{padding:0.85rem 1.25rem}
  nav.scrolled{padding:0.7rem 1.25rem}
  .logo{font-size:1.2rem}
  .hero-photo-wrap{
    order:-1;
    padding-top:0;
    animation:fadeUp 0.8s 0.3s ease forwards;
  }
  .hero-photo{
    width:min(260px,70vw);height:min(260px,70vw);
    border-width:3px;
  }
  .nav-right{gap:0.75rem}
  .lang-btn{padding:3px 7px;font-size:10px}
  .nav-cta{padding:7px 16px;font-size:12px}

  /* Hero */
  .hero{padding:5.5rem 1.25rem 3.5rem}
  .hero-inner{grid-template-columns:1fr;gap:2rem}
  .hero-card{display:none}
  .hero h1{font-size:2.6rem}
  .hero-sub{font-size:0.95rem;max-width:100%}
  .btns{flex-direction:column;gap:10px}
  .btn-primary,.btn-ghost{text-align:center;padding:13px 28px}

  /* First time info */
  #first-time-info{padding:3rem 1.25rem}
  .fti-inner{grid-template-columns:1fr;gap:1.5rem}

  /* Calculator */
  #calculator{padding:3.5rem 1.25rem}
  .section-title{font-size:1.8rem}
  .cleaning-toggle{grid-template-columns:1fr}
  .cleaning-divider{width:100%;height:1px}
  .cleaning-opt{padding:1rem 1.25rem}
  .calc-card{padding:1.5rem}
  .calc-grid{grid-template-columns:1fr;gap:1.5rem}
  .calc-right{order:-1;padding:1.5rem}
  .result-price{font-size:3rem}
  .extras-grid{grid-template-columns:1fr 1fr;gap:6px}
  .extra-btn{padding:9px 10px;font-size:12px}
  .m2-input{font-size:1.3rem;padding:12px 14px}

  /* Reviews */
  #reviews{padding:3.5rem 1.25rem}
  .reviews-grid{grid-template-columns:1fr;gap:1rem}
  .review-card{padding:1.4rem}

  /* Booking */
  #booking{padding:3.5rem 1.25rem}
  .booking-features{gap:1rem;flex-direction:column;align-items:center}
  .cal-embed{padding:2rem 1.25rem}

  /* FAQ */
  #faq{padding:3.5rem 1.25rem}
  .faq-q{font-size:1rem;padding:1rem 0}

  /* Footer */
  footer{padding:2.5rem 1.25rem}
  .footer-inner{grid-template-columns:1fr;gap:1.5rem}
  .footer-brand{font-size:1.3rem}
}

/* SMALL PHONES */
@media(max-width:380px){
  .hero h1{font-size:2.1rem}
  .extras-grid{grid-template-columns:1fr}
  nav .lang-toggle{display:none}
}

/* FOAM TEXTURE on light sections */
.foam-bg{position:relative;overflow:hidden}
.foam-bg::before{
  content:'';position:absolute;inset:0;
  background-image:url('image-1.webp');
  background-size:cover;background-position:center;
  opacity:0.07;pointer-events:none;z-index:0;
}
.foam-bg > *{position:relative;z-index:1}
body{cursor:auto}button,a{cursor:pointer}input,textarea{cursor:text}#cursor,.spark{display:none!important}:focus-visible{outline:3px solid var(--gold)!important;outline-offset:3px}.skip{position:fixed;top:-5rem;left:1rem;z-index:10000;background:#183b35;color:#fff;padding:.7rem 1rem}.skip:focus{top:0}.nav-links{display:flex;gap:1rem}.nav-links a{color:var(--text-mid);text-decoration:none;font-size:13px}.field-error{display:none;color:#a12622;font-weight:500}.field-error.show{display:block}.m2-input[aria-invalid=true]{border-color:#a12622}.estimate{font-size:12px;color:var(--text-muted);margin-top:.5rem}.modal-overlay[aria-hidden=true]{display:none}.modal-overlay.open[aria-hidden=false]{display:flex}.modal-close{position:absolute;right:.7rem;top:.5rem;border:0;background:none;font-size:1.5rem}.modal{position:relative}.cal-error{display:none;margin:1rem auto;padding:1rem;background:#fff8e7;color:#6b4c2a;border-radius:12px;max-width:600px}.cal-error.show{display:block}.privacy{font-size:14px;line-height:1.7;max-height:60vh;overflow:auto}.footer-legal{margin-top:1rem}.footer-legal button{border:0;background:none;color:inherit;text-decoration:underline}.logo{text-decoration:none}.faq-q[aria-expanded=true] .faq-icon{transform:rotate(45deg)}@media(max-width:900px){.nav-links{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v2: native cursors everywhere — the decorative cursor is intentionally disabled. */
html, body { cursor: auto !important; }
#cursor, .spark { display: none !important; }
a, button, [role="button"], .cleaning-opt, .extra-btn, .aroma-btn,
.result-cta, .faq-q { cursor: pointer !important; }
input, textarea { cursor: text !important; }
button:disabled, [aria-disabled="true"] { cursor: not-allowed !important; }

/* v2: improve contrast and hierarchy inside the dark calculator result card. */
.calc-right { background: #527f70; }
.result-label { color: #eaf6f1; }
.result-price { color: #ffffff; text-shadow: 0 1px 1px rgba(0,0,0,.08); }
.estimate {
  color: #e1f0eb;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.55;
  margin: .35rem 0 .55rem;
}
.result-breakdown { color: #d5e9e2; font-weight: 400; }
.first-clean-note {
  color: #fff0b5;
  background: rgba(92, 67, 8, .22);
  border-color: rgba(255, 225, 128, .38);
  font-weight: 400;
}
.result-cta { color: #285a50; }

.price-warning{margin:14px 0 18px;padding:12px 14px;border:1px solid rgba(255,255,255,.42);border-radius:12px;background:rgba(255,255,255,.14);font-size:12px;line-height:1.55;color:#fff}.price-warning strong{display:block;margin-bottom:2px;color:#fff}.booking-price-notice{margin:16px 0 12px;padding:14px 16px;border:1px solid #e4c66a;border-radius:12px;background:#fff9e8;color:#5b4b1c;font-size:13px;line-height:1.55}.booking-price-notice p{margin:5px 0 0}.price-consent{display:flex;align-items:flex-start;gap:10px;color:var(--text-dark);font-size:13px;line-height:1.5;cursor:pointer}.price-consent input{width:18px;height:18px;flex:0 0 auto;margin-top:1px;accent-color:var(--teal)}.consent-error{display:none;margin:7px 0 0 28px;color:#a32727;font-size:12px;font-weight:600}.consent-error.show{display:block}
