:root {
  --teal: #1DAAB2;
  --teal-dark: #158A91;
  --teal-light: #E8F8F9;
  --yellow: #F5C32C;
  --coral: #E05245;
  --dark: #1C2340;
  --mid: #4A5568;
  --light: #F7F9FC;
  --white: #FFFFFF;
  --border: #E2E8F0;
  --shadow: 0 4px 24px rgba(28,35,64,0.10);
  --shadow-lg: 0 12px 48px rgba(28,35,64,0.16);
  --radius: 14px;
  --radius-sm: 8px;
  --transition: 0.3s cubic-bezier(0.4,0,0.2,1);
}
* { margin:0; padding:0; box-sizing:border-box; }
html, body { 
  max-width: 100%; 
  overflow-x: hidden; 
}
html { scroll-behavior: smooth; font-size:16px; }
body { font-family:'DM Sans',sans-serif; color:var(--dark); background:var(--white); font-size: clamp(16px, 1.1vw, 22px); }

/* Make sure images never break the layout */
img { max-width: 100%; height: auto; }

/* ── NAV ── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:rgba(255,255,255,0.97);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  transition:var(--transition);
}
.nav-inner {
  max-width: 100%; width: 100%; margin: auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(24px, 8vw, 120px); height:76px;
}
.nav-logo { display:flex; align-items:center; text-decoration:none; height: 100%; }
.nav-logo img { height: clamp(40px, 3.5vw, 60px); width: auto; object-fit: contain; }
.nav-links { display:flex; align-items:center; gap:12px; }
.nav-links a { padding:7px 14px; border-radius:8px; text-decoration:none; font-size:clamp(14px, 1vw, 18px); font-weight:500; color:var(--mid); transition:var(--transition); }
.nav-links a:hover { background:var(--teal-light); color:var(--teal); }
.nav-cta { background:var(--teal)!important; color:var(--white)!important; padding:8px 18px!important; margin-left: 12px; }
.nav-cta:hover { background:var(--teal-dark)!important; }
.burger { display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px; }
.burger span { display:block; width:24px; height:2px; background:var(--dark); border-radius:2px; transition:var(--transition); }
.mobile-menu { display:none; position:fixed; top:76px; left:0; right:0; background:var(--white); border-bottom:1px solid var(--border); z-index:999; padding:16px 24px; flex-direction:column; gap:4px; box-shadow: var(--shadow-lg); }
.mobile-menu.open { display:flex; }
.mobile-menu a { padding:12px 16px; border-radius:8px; text-decoration:none; font-size:15px; font-weight:500; color:var(--dark); transition:var(--transition); }
.mobile-menu a:hover { background:var(--teal-light); color:var(--teal); }

/* ── HERO ── */
#home {
  min-height:90vh; position:relative; overflow:hidden;
  display:flex; align-items:center;
  background: linear-gradient(135deg, rgba(15,26,48,0.95) 0%, rgba(28,35,64,0.95) 100%), url('assets/images/team.jpeg') center/cover;
  padding-top:76px;
}
.hero-inner { 
  max-width: 100%; width: 100%; margin: auto; 
  padding:clamp(60px, 8vh, 120px) clamp(24px, 8vw, 120px); 
  display:grid; grid-template-columns:1.2fr 0.8fr; gap:clamp(40px, 6vw, 100px); 
  align-items:center; position:relative; z-index:2; 
}
.hero-badge { display:inline-flex; align-items:center; gap:8px; background:rgba(29,170,178,.15); border:1px solid rgba(29,170,178,.3); color:var(--teal); font-size:clamp(13px, 0.9vw, 16px); font-weight:600; letter-spacing:.06em; text-transform:uppercase; padding:6px 14px; border-radius:100px; margin-bottom:24px; backdrop-filter: blur(4px); }
.hero-badge i { color: var(--teal); font-size: clamp(10px, 0.8vw, 14px); }
.hero-h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(42px, 5.5vw, 90px); font-weight:700; line-height:1.05; color:var(--white); margin-bottom:22px; }
.hero-h1 em { color:var(--teal); font-style:normal; }
.hero-sub { font-size:clamp(17px, 1.2vw, 24px); font-weight:400; line-height:1.7; color:rgba(255,255,255,.8); margin-bottom:36px; max-width:clamp(540px, 45vw, 800px); }
.hero-btns { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:48px; }
.btn { display:inline-flex; align-items:center; justify-content: center; gap:8px; padding:clamp(13px, 1vw, 18px) clamp(26px, 2vw, 36px); border-radius:10px; font-size:clamp(15px, 1.1vw, 20px); font-weight:600; text-decoration:none; border:none; cursor:pointer; transition:var(--transition); }
.btn-primary { background:var(--teal); color:var(--white); }
.btn-primary:hover { background:var(--teal-dark); transform:translateY(-2px); box-shadow:0 8px 32px rgba(29,170,178,.3); }
.btn-outline { background:transparent; color:var(--white); border:2px solid rgba(255,255,255,.4); }
.btn-outline:hover { background:rgba(255,255,255,.1); border-color:rgba(255,255,255,.7); }
.btn-wa { background:#25D366; color:var(--white); }
.btn-wa:hover { background:#1ebe5d; transform:translateY(-2px); }
.hero-stats { display:flex; gap:32px; flex-wrap: wrap; }
.stat-num { font-family:'Cormorant Garamond',serif; font-size:clamp(34px, 2.5vw, 48px); font-weight:700; color:var(--white); line-height:1; }
.stat-num span { color:var(--teal); }
.stat-label { font-size:clamp(13px, 0.9vw, 18px); color:rgba(255,255,255,.7); margin-top:4px; }

.hero-right { display:flex; justify-content:flex-end; width: 100%; }
.hero-card-wrap { position:relative; width:100%; max-width:clamp(400px, 35vw, 650px); }
.hero-card { background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.15); border-radius:20px; padding:clamp(32px, 2.5vw, 48px); backdrop-filter:blur(16px); }
.hero-card-title { color:var(--white); font-weight:600; font-size:clamp(18px, 1.25vw, 26px); margin-bottom:24px; display:flex; align-items:center; gap:10px; }
.hero-card-title i { color:var(--teal); }
.service-pill { display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); color:rgba(255,255,255,.9); font-size:clamp(14px, 1vw, 18px); padding:10px 16px; border-radius:100px; margin:6px; transition:var(--transition); cursor:default; }
.service-pill:hover { background:rgba(29,170,178,.2); border-color:rgba(29,170,178,.4); }

/* ── SECTIONS ── */
section { padding:clamp(60px, 8vh, 120px) clamp(24px, 8vw, 120px); }
.container { max-width: 100%; width: 100%; margin: auto; }
.section-label { font-size:clamp(12px, 0.9vw, 16px); font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); margin-bottom:10px; }
.section-title { font-family:'Cormorant Garamond',serif; font-size:clamp(32px, 4vw, 64px); font-weight:700; line-height:1.1; color:var(--dark); margin-bottom:16px; }
.section-sub { font-size:clamp(16px, 1.1vw, 22px); line-height:1.7; color:var(--mid); max-width:clamp(600px, 50vw, 1000px); }
.section-header { margin-bottom:clamp(56px, 5vw, 80px); }
.section-header.center { text-align:center; }
.section-header.center .section-sub { margin:auto; }

/* ── ABOUT ── */
#about { background:var(--light); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px, 6vw, 100px); align-items:center; }
.about-visual { position:relative; }
.about-img-main { width:100%; aspect-ratio:4/3; border-radius:20px; background: url('assets/images/team.jpeg') center/cover; position:relative; box-shadow: var(--shadow-lg); }
.about-badge2 { position:absolute; bottom:-20px; right:-20px; background:var(--white); border-radius:14px; padding:20px 24px; box-shadow:var(--shadow-lg); min-width:180px; border: 1px solid var(--border); }
.ab-val { font-family:'Cormorant Garamond',serif; font-size:clamp(36px, 2.5vw, 52px); font-weight:700; color:var(--teal); line-height:1; }
.ab-lbl { font-size:clamp(13px, 0.9vw, 18px); font-weight: 600; color:var(--dark); margin-top:4px; }
.values-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:24px; margin-top:32px; }
.value-card { background:var(--white); border-radius:12px; padding:clamp(20px, 1.5vw, 32px); border:1px solid var(--border); }
.value-icon { font-size:clamp(24px, 1.8vw, 36px); color: var(--teal); margin-bottom:16px; }
.value-title { font-weight:700; font-size:clamp(15px, 1.1vw, 22px); color:var(--dark); margin-bottom:8px; }
.value-desc { font-size:clamp(13.5px, 1vw, 18px); color:var(--mid); line-height:1.6; }
.about-content p { font-size: clamp(16px, 1.1vw, 22px); color: var(--mid); line-height: 1.8; margin-bottom: 16px; }

/* ── SERVICES ── */
#services { background:var(--white); }
.services-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(320px,1fr)); gap:clamp(24px, 2vw, 40px); }
.service-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(32px, 2.5vw, 48px) clamp(24px, 2vw, 40px); transition:var(--transition); position:relative; overflow:hidden; }
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px; background:var(--teal); transform:scaleX(0); transform-origin:left; transition:var(--transition); }
.service-card:hover { box-shadow:var(--shadow-lg); border-color:transparent; }
.service-card:hover::before { transform:scaleX(1); }
.sc-icon { width:clamp(56px, 4vw, 80px); height:clamp(56px, 4vw, 80px); border-radius:12px; background:var(--teal-light); display:flex; align-items:center; justify-content:center; font-size:clamp(24px, 1.8vw, 36px); color: var(--teal-dark); margin-bottom:24px; transition:var(--transition); }
.service-card:hover .sc-icon { background:var(--teal); color: var(--white); }
.sc-name { font-weight:700; font-size:clamp(18px, 1.25vw, 26px); color:var(--dark); margin-bottom:12px; }
.sc-desc { font-size:clamp(14px, 1vw, 18px); color:var(--mid); line-height:1.6; margin-bottom:20px; }
.sc-price { font-size:clamp(13px, 0.9vw, 16px); font-weight:600; color:var(--teal-dark); background:var(--teal-light); padding:8px 16px; border-radius:100px; display:inline-block; }

/* ── CALCULATOR ── */
#estimator { background:var(--light); }
.calc-wrap { background:var(--white); border-radius:24px; box-shadow:var(--shadow-lg); overflow:hidden; border: 1px solid var(--border); }
.calc-header { background:var(--dark); padding:clamp(40px, 3vw, 64px); }
.calc-header h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(32px, 2.5vw, 48px); font-weight:700; color:var(--white); margin-bottom:8px; display: flex; align-items: center; gap: 12px; }
.calc-header p { color:rgba(255,255,255,.7); font-size:clamp(15px, 1.1vw, 20px); }
.calc-body { padding:clamp(32px, 4vw, 64px); }
.calc-step { display:none; }
.calc-step.active { display:block; }
.step-indicator { display:flex; align-items:center; gap:0; margin-bottom:40px; }
.step-dot { width:clamp(32px, 2.5vw, 48px); height:clamp(32px, 2.5vw, 48px); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:clamp(13px, 1vw, 18px); font-weight:700; background:var(--border); color:var(--mid); transition:var(--transition); flex-shrink:0; }
.step-dot.done { background:var(--teal); color:var(--white); }
.step-dot.active { background:var(--teal); color:var(--white); box-shadow:0 0 0 4px rgba(29,170,178,.2); }
.step-line { flex:1; height:2px; background:var(--border); transition:var(--transition); }
.step-line.done { background:var(--teal); }
.calc-label { font-size:clamp(13px, 0.9vw, 16px); font-weight:600; color:var(--mid); text-transform:uppercase; letter-spacing:.06em; margin-bottom:16px; }
.calc-title { font-family:'Cormorant Garamond',serif; font-size:clamp(26px, 2vw, 40px); font-weight:700; color:var(--dark); margin-bottom:32px; }
.options-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; margin-bottom:32px; }
.opt-btn { padding:clamp(16px, 1.2vw, 24px) clamp(12px, 1vw, 20px); border:2px solid var(--border); border-radius:12px; background:var(--white); font-size:clamp(14px, 1vw, 18px); font-weight:600; color:var(--dark); cursor:pointer; transition:var(--transition); text-align:center; line-height:1.4; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.opt-btn i { font-size: clamp(20px, 1.5vw, 32px); color: var(--teal); transition: var(--transition); }
.opt-btn:hover { border-color:var(--teal); background:var(--teal-light); }
.opt-btn.selected { border-color:var(--teal); background:var(--teal); color:var(--white); }
.opt-btn.selected i { color: var(--white); }
.opt-btn small { font-weight: 400; opacity: 0.8; font-size: clamp(12px, 0.8vw, 15px); }

.qty-control { display:flex; align-items:center; gap:20px; }
.qty-btn { width:clamp(44px, 3.5vw, 64px); height:clamp(44px, 3.5vw, 64px); border-radius:10px; border:2px solid var(--border); background:var(--white); font-size:clamp(16px, 1.2vw, 24px); cursor:pointer; transition:var(--transition); display:flex; align-items:center; justify-content:center; color:var(--dark); }
.qty-btn:hover { border-color:var(--teal); color:var(--teal); background: var(--teal-light); }
.qty-val { font-size:clamp(22px, 1.8vw, 32px); font-weight:700; color:var(--dark); min-width:clamp(32px, 2.5vw, 48px); text-align:center; }

.form-row { display:grid; grid-template-columns:1fr 1fr; gap:clamp(20px, 2vw, 32px); margin-bottom:24px; }
.form-row.single { grid-template-columns:1fr; }
.form-group label { display:block; font-size:clamp(13px, 0.9vw, 16px); font-weight:600; color:var(--dark); margin-bottom:10px; }
.form-group input, .form-group select, .form-group textarea {
  width:100%; padding:clamp(14px, 1.1vw, 20px) clamp(16px, 1.2vw, 24px); border:2px solid var(--border); border-radius:10px;
  font-family:'DM Sans',sans-serif; font-size:clamp(15px, 1.1vw, 20px); color:var(--dark);
  background:var(--white); transition:var(--transition); outline:none;
}
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color:var(--teal); box-shadow:0 0 0 4px rgba(29,170,178,.1); }
.form-group textarea { resize:vertical; min-height:160px; }

.calc-result { background:var(--light); border:2px solid var(--border); border-radius:16px; padding:clamp(24px, 3vw, 48px); margin-bottom:32px; }
.result-label { font-size:clamp(13px, 0.9vw, 16px); font-weight:600; color:var(--teal-dark); text-transform:uppercase; letter-spacing:.06em; margin-bottom:12px; }
.result-price { font-family:'Cormorant Garamond',serif; font-size:clamp(40px, 4vw, 72px); font-weight:700; color:var(--dark); line-height:1; margin-bottom:16px; }
.result-price span { font-size:clamp(24px, 2vw, 40px); color:var(--teal); font-weight: 500; }
.result-note { font-size:clamp(14px, 1vw, 18px); color:var(--mid); line-height: 1.6;}
.result-breakdown { margin-top:32px; border-top:1px solid var(--border); padding-top:32px; }
.rb-row { display:flex; justify-content:space-between; align-items:center; padding:10px 0; font-size:clamp(15px, 1.1vw, 20px); }
.rb-row.total { font-weight:700; font-size:clamp(18px, 1.4vw, 26px); color:var(--dark); border-top:2px solid var(--border); padding-top:20px; margin-top:12px; }

.calc-btns { display:flex; gap:16px; justify-content:flex-end; flex-wrap:wrap; margin-top: 40px; }
.btn-ghost { background:var(--white); color:var(--dark); border:2px solid var(--border); }
.btn-ghost:hover { border-color:var(--dark); background: var(--light); }
.urgency-opts { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:20px; margin-bottom:40px; }

/* ── BOOKING ── */
#booking { background:var(--white); }
.booking-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:clamp(40px, 6vw, 120px); align-items:start; }
.booking-features { margin-top:40px; display:flex; flex-direction:column; gap:32px; }
.bf-item { display:flex; align-items:flex-start; gap:20px; }
.bf-item-icon { width:clamp(48px, 3.5vw, 64px); height:clamp(48px, 3.5vw, 64px); border-radius:12px; background:var(--teal-light); color: var(--teal); display:flex; align-items:center; justify-content:center; font-size:clamp(20px, 1.5vw, 28px); flex-shrink:0; }
.bf-item-text strong { display:block; font-size:clamp(15px, 1.1vw, 22px); font-weight:700; color:var(--dark); margin-bottom:8px; }
.bf-item-text span { font-size:clamp(14px, 1vw, 18px); color:var(--mid); line-height: 1.6; }

.booking-form { background:var(--light); border: 1px solid var(--border); border-radius:24px; padding:clamp(32px, 4vw, 64px); box-shadow: var(--shadow); }
.booking-form h3 { font-family:'Cormorant Garamond',serif; font-size:clamp(28px, 2.5vw, 42px); font-weight:700; color:var(--dark); margin-bottom:32px; }
.upload-area { border:2px dashed var(--border); border-radius:12px; padding:40px; text-align:center; cursor:pointer; transition:var(--transition); background: var(--white); }
.upload-area:hover { border-color:var(--teal); background:var(--teal-light); }
.upload-area input[type=file] { display:none; }
.upload-icon { font-size:clamp(32px, 2.5vw, 48px); color: var(--teal); margin-bottom:16px; }
.upload-text { font-size:clamp(14px, 1vw, 18px); color:var(--mid); line-height: 1.6; }
.upload-text strong { color:var(--dark); }
.uploaded-files { margin-top:16px; display:flex; flex-wrap:wrap; gap:10px; }
.file-chip { background:var(--teal-light); color:var(--teal-dark); border: 1px solid rgba(29,170,178,.2); font-size:clamp(13px, 0.9vw, 16px); font-weight: 500; padding:8px 16px; border-radius:100px; display:inline-flex; align-items:center; gap:10px; }
.file-chip button { background:none; border:none; color:var(--coral); cursor:pointer; font-size:clamp(16px, 1.2vw, 20px); line-height:1; }
.form-submit { display:flex; gap:16px; flex-wrap:wrap; margin-top:24px; }

/* ── GALLERY ── */
#gallery { background:var(--light); }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(360px, 1fr)); grid-auto-rows:350px; gap:32px; }

/* Gallery Image Overlap Hover Effect */
.gallery-item { 
  border-radius:16px; 
  overflow:hidden; 
  position:relative; 
  cursor:pointer; 
  box-shadow: var(--shadow);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.4s ease, z-index 0s; 
  z-index: 1; 
}
.gallery-item.tall { grid-row:span 2; }
.gallery-item.wide { grid-column:span 2; }

.gallery-item:hover { 
  transform: scale(1.08); 
  z-index: 10; 
  box-shadow: 0 24px 48px rgba(28,35,64,0.25); 
}

.gallery-thumb { 
  width:100%; height:100%; 
  background-position: center; 
  background-size: cover; 
  display:flex; 
  align-items:flex-end; 
  padding: 32px; 
  transition:transform 0.5s ease; 
}

.gallery-item:hover .gallery-thumb { 
  transform:scale(1.03); 
}

.gallery-overlay-grad { position:absolute; inset:0; background:linear-gradient(to top, rgba(28,35,64,0.9) 0%, rgba(28,35,64,0.2) 50%, transparent 100%); pointer-events: none; }

.gallery-content { position: relative; z-index: 2; display: flex; align-items: center; gap: 16px; }
.gallery-icon { width: clamp(40px, 3vw, 56px); height: clamp(40px, 3vw, 56px); background: rgba(255,255,255,0.2); backdrop-filter: blur(8px); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: var(--white); font-size: clamp(16px, 1.2vw, 24px); }
.gallery-lbl { font-size:clamp(15px, 1.1vw, 22px); font-weight:600; color:var(--white); }

/* ── TESTIMONIALS ── */
#reviews { background:var(--white); }
.reviews-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(400px,1fr)); gap:40px; }
.review-card { background:var(--white); border-radius:var(--radius); padding:clamp(32px, 3vw, 56px); border:1px solid var(--border); transition:var(--transition); }
.review-card:hover { box-shadow:var(--shadow-lg); border-color: transparent; }
.stars { color:var(--yellow); font-size:clamp(14px, 1vw, 18px); margin-bottom:20px; letter-spacing:3px; }
.review-text { font-size:clamp(16px, 1.1vw, 22px); line-height:1.7; color:var(--mid); margin-bottom:32px; font-style:italic; }
.reviewer { display:flex; align-items:center; gap:20px; }
.reviewer-avatar { width:clamp(48px, 3.5vw, 64px); height:clamp(48px, 3.5vw, 64px); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:clamp(18px, 1.4vw, 26px); font-weight:700; color:var(--white); }
.reviewer-name { font-weight:700; font-size:clamp(16px, 1.1vw, 22px); color:var(--dark); }
.reviewer-loc { font-size:clamp(14px, 1vw, 18px); color:var(--mid); margin-top: 6px; }
.google-badge { display:inline-flex; align-items:center; gap:12px; background:#fff; border:1px solid var(--border); border-radius:12px; padding:16px 32px; font-size:clamp(15px, 1.1vw, 20px); font-weight:600; color:var(--dark); margin-top:56px; text-decoration:none; transition: var(--transition); }
.google-badge:hover { background: var(--light); border-color: var(--teal); }
.google-badge i { color: #25D366; font-size: clamp(20px, 1.5vw, 28px); }

/* ── CONTACT ── */
#contact { background:var(--light); }
.contact-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:clamp(40px, 6vw, 120px); }
.contact-cards { display:flex; flex-direction:column; gap:24px; margin-top:48px; }
.contact-card { background:var(--white); border-radius:16px; padding:clamp(24px, 2vw, 40px); border:1px solid var(--border); display:flex; align-items:center; gap:24px; }
.cc-icon { width:clamp(52px, 4vw, 72px); height:clamp(52px, 4vw, 72px); border-radius:12px; display:flex; align-items:center; justify-content:center; font-size:clamp(22px, 1.6vw, 32px); flex-shrink:0; }
.cc-label { font-size:clamp(12px, 0.9vw, 16px); font-weight:700; color:var(--mid); text-transform:uppercase; letter-spacing:.06em; margin-bottom: 8px; }
.cc-value { font-size:clamp(16px, 1.1vw, 22px); font-weight:600; color:var(--dark); }
.cc-value a { color:var(--dark); text-decoration:none; transition: var(--transition); }
.cc-value a:hover { color:var(--teal); }
.social-row { display:flex; gap:16px; margin-top:48px; }
.social-btn { width:clamp(48px, 3.5vw, 64px); height:clamp(48px, 3.5vw, 64px); border-radius:12px; border:1px solid var(--border); background: var(--white); color: var(--dark); display:flex; align-items:center; justify-content:center; font-size:clamp(20px, 1.5vw, 28px); text-decoration:none; transition:var(--transition); }
.social-btn:hover { background:var(--teal); border-color:var(--teal); color: var(--white); }
.map-embed { border-radius:24px; overflow:hidden; border:1px solid var(--border); box-shadow: var(--shadow); }
.map-embed iframe { width:100%; height:100%; min-height: clamp(400px, 35vw, 600px); border:none; display:block; }

/* ── FOOTER ── */
footer { background:var(--dark); color:rgba(255,255,255,.6); padding:clamp(80px, 6vw, 120px) clamp(24px, 8vw, 120px) 40px; }
.footer-inner { max-width: 100%; width: 100%; margin: auto; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1.5fr; gap:clamp(48px, 5vw, 80px); margin-bottom:clamp(60px, 6vw, 100px); }

.footer-logo-area .nav-logo img { height: clamp(60px, 4.5vw, 90px); margin-bottom: 32px; border-radius: 8px; }

.footer-tagline { font-size:clamp(16px, 1.1vw, 22px); line-height:1.7; max-width:clamp(320px, 30vw, 550px); }
.footer-col h4 { color:var(--white); font-size:clamp(16px, 1.1vw, 22px); font-weight:700; margin-bottom:32px; text-transform:uppercase; letter-spacing:.05em; }
.footer-col ul { list-style:none; display:flex; flex-direction:column; gap:20px; }
.footer-col ul li a { color:rgba(255,255,255,.6); text-decoration:none; font-size:clamp(15px, 1vw, 20px); transition:var(--transition); display: inline-block; }
.footer-col ul li a:hover { color:var(--white); padding-left: 6px; }
.footer-col ul li i { width: clamp(20px, 1.5vw, 28px); color: var(--teal); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); padding-top:40px; display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px; }
.footer-bottom p { font-size:clamp(14px, 1vw, 18px); }

/* ── FLOATING BTNS ── */
.float-wa { position:fixed; bottom:clamp(32px, 3vw, 48px); right:clamp(32px, 3vw, 48px); z-index:900; width:clamp(64px, 5vw, 88px); height:clamp(64px, 5vw, 88px); border-radius:50%; background:#25D366; color:var(--white); display:flex; align-items:center; justify-content:center; font-size:clamp(28px, 2vw, 40px); box-shadow:0 8px 32px rgba(37,211,102,.4); text-decoration:none; transition:var(--transition); }
.float-wa:hover { transform:scale(1.05); box-shadow:0 12px 40px rgba(37,211,102,.5); }
.float-wa-tooltip { position:absolute; right:110%; background:var(--dark); color:var(--white); font-size:clamp(13px, 0.9vw, 18px); font-weight:600; padding:12px 24px; border-radius:8px; white-space:nowrap; opacity:0; pointer-events:none; transition:var(--transition); }
.float-wa:hover .float-wa-tooltip { opacity:1; }

/* ── CHAT WIDGET ── */
.chat-widget { position:fixed; bottom:clamp(110px, 9vw, 160px); right:clamp(32px, 3vw, 48px); z-index:900; }
.chat-bubble { background:var(--white); border-radius:24px 24px 6px 24px; padding:clamp(20px, 2vw, 32px); max-width:clamp(300px, 25vw, 450px); box-shadow:var(--shadow-lg); border:1px solid var(--border); font-size:clamp(14px, 1vw, 18px); line-height:1.6; color:var(--dark); position:relative; }
.chat-bubble::after { content:''; position:absolute; bottom:-16px; right:clamp(20px, 2vw, 32px); width:0; height:0; border-left:16px solid transparent; border-top:16px solid var(--white); }
.chat-avatar { display:flex; align-items:center; gap:16px; margin-bottom:20px; }
.chat-av-img { width:clamp(40px, 3vw, 56px); height:clamp(40px, 3vw, 56px); border-radius:50%; background:var(--teal-light); color: var(--teal); display:flex; align-items:center; justify-content:center; font-size:clamp(16px, 1.2vw, 22px); }
.chat-av-name { font-weight:700; font-size:clamp(14px, 1vw, 18px); color:var(--dark); }
.chat-av-status { font-size:clamp(12px, 0.8vw, 16px); font-weight: 500; color:#25D366; display: flex; align-items: center; gap: 6px;}
.chat-av-status::before { content: ''; width: 8px; height: 8px; background: #25D366; border-radius: 50%; display: block; }
.chat-close { position:absolute; top:16px; right:16px; background:var(--light); border:none; border-radius:50%; width:clamp(28px, 2vw, 40px); height:clamp(28px, 2vw, 40px); cursor:pointer; font-size:clamp(14px, 1vw, 18px); display:flex; align-items:center; justify-content:center; color: var(--mid); transition: var(--transition); }
.chat-close:hover { background:var(--border); color:var(--dark); }
.chat-reply-btn { display:block; width:100%; margin-top:24px; background:var(--teal); color:var(--white); border:none; border-radius:10px; padding:clamp(12px, 1vw, 18px); font-size:clamp(14px, 1vw, 18px); font-weight:600; cursor:pointer; transition:var(--transition); text-align:center; text-decoration:none; }
.chat-reply-btn:hover { background:var(--teal-dark); }

/* ── RESPONSIVE ── */
@media(max-width:1200px) {
  .hero-inner { gap: 40px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:48px; }
}
@media(max-width:1024px) {
  .hero-inner { grid-template-columns:1fr; text-align:center; }
  .hero-btns { justify-content:center; }
  .hero-stats { justify-content:center; }
  .hero-right { justify-content: center; }
  .about-grid { grid-template-columns:1fr; }
  .about-visual { display:none; }
  .contact-grid { grid-template-columns:1fr; }
  .booking-grid { grid-template-columns:1fr; }
  .booking-left { display:none; }
  .gallery-grid { grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); }
  .gallery-item.wide { grid-column:span 1; }
}
@media(max-width:768px) {
  .footer-grid { grid-template-columns:1fr; gap:40px; }
  section { padding: clamp(40px, 6vh, 80px) clamp(20px, 5vw, 40px); }
  .nav-inner { padding: 0 clamp(20px, 5vw, 40px); }
  .hero-inner { padding: clamp(40px, 6vh, 80px) clamp(20px, 5vw, 40px); }
  footer { padding: 60px clamp(20px, 5vw, 40px) 32px; }
}
@media(max-width:640px) {
  .nav-links { display:none; }
  .burger { display:flex; }
  .form-row { grid-template-columns:1fr; gap: 16px; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-item.tall { grid-row:span 1; }
  .footer-bottom { flex-direction:column; text-align:left; gap: 16px; }
  .calc-btns { justify-content:stretch; }
  .calc-btns .btn { flex:1; justify-content:center; }
}