:root{
  --navy:#0B2B45;
  --navy-2:#123A5C;
  --teal:#2E9E96;
  --teal-deep:#1F7B74;
  --teal-tint:#EAF5F4;
  --bg:#FFFFFF;
  --bg-soft:#F7F9FB;
  /* Metin renkleri: okunabilirlik için nötr koyu gri kullanılır.
     Not: --text rengini marka mavisi gibi doygun bir tona çevirmeyin,
     gövde metninde kontrast/uyum sorununa yol açar. */
  --text:#1F2937;
  --text-soft:#6B7280;
  --heading:#123A5C;
  --border:#E4E9EE;
  --gold:#C7A24B;
  --r-s:6px;
  --r-m:12px;
  --shadow-s:0 2px 10px rgba(11,43,69,.06);
  --shadow-m:0 12px 32px rgba(11,43,69,.10);
  --font-head:'Plus Jakarta Sans', 'Inter', sans-serif;
  --font-body:'Inter', sans-serif;
  --container:1240px;
  --ease:cubic-bezier(.22,.61,.36,1);
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg:#0E1A22;
    --bg-soft:#122029;
    --text:#EAF0F3;
    --text-soft:#9FB0B9;
    --border:#223038;
    --navy:#0B2B45;
    --navy-2:#0F3350;
    --teal-tint:#132A2A;
    --heading:#EAF5F4;
  }
}
:root[data-theme="dark"]{
  --bg:#0E1A22;
  --bg-soft:#122029;
  --text:#EAF0F3;
  --text-soft:#9FB0B9;
  --border:#223038;
  --navy:#0B2B45;
  --navy-2:#0F3350;
  --teal-tint:#132A2A;
  --heading:#EAF5F4;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important;}
}
body{
  font-family:var(--font-body);
  color:var(--text);
  background:var(--bg);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none;}
button{font:inherit; cursor:pointer; border:none; background:none; color:inherit;}

/* Başlıklar: tüm site genelinde TEK bir koyu lacivert tonu kullanılır.
   Bölüm bazlı renk override'ları (ör. açık turkuaz) kaldırıldı; bunlar
   beyaz/açık gri zeminlerde kontrastı düşürüp metni okunmaz hale getiriyordu. */
h1,h2,h3,h4{font-family:var(--font-head); color:var(--heading); font-weight:700; line-height:1.2;}
.container{max-width:var(--container); margin:0 auto; padding:0 28px;}
section{padding:96px 0;}
@media (max-width:768px){ section{padding:64px 0;} }
:focus-visible{outline:2px solid var(--teal); outline-offset:3px;}

/* ---------- Eyebrow / section head ---------- */
.eyebrow{color:var(--teal-deep); font-weight:600; font-size:14px; letter-spacing:.02em; margin-bottom:10px;}
.section-head .eyebrow::after, .about-text .eyebrow::after, .contact-grid .eyebrow::after{content:''; display:block; width:0; height:2px; border-radius:2px; background:var(--teal); margin-top:9px; transition:width .7s var(--ease) .15s;}
.reveal-el.in .eyebrow::after{width:38px;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head.center{margin-left:auto; margin-right:auto; text-align:center;}
.section-head.center .eyebrow::after{margin-left:auto; margin-right:auto;}
.section-head h2{color:var(--heading); font-size:clamp(28px,3.4vw,40px); margin-bottom:14px;}
.section-head p{color:var(--text-soft); font-size:17px;}

/* Görsellerde kurumsal "wipe" (kaydırmalı) açılma efekti */
.img-wipe{clip-path:none;}
.img-wipe.in{clip-path:none;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:14px 26px; border-radius:var(--r-s); font-weight:600; font-size:15px; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; white-space:nowrap;}
.btn-primary{background:var(--navy); color:#fff;}
.btn-primary:hover{background:var(--navy-2); box-shadow:var(--shadow-m); transform:translateY(-1px);}
.btn-outline{background:transparent; color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy);}
:root[data-theme="dark"] .btn-outline{color:#fff; box-shadow:inset 0 0 0 1.5px #fff;}
.btn-outline:hover{background:var(--navy); color:#fff;}
.btn-outline.on-dark{color:#fff; box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.9);}
.btn-outline.on-dark:hover{background:#fff; color:var(--navy); box-shadow:inset 0 0 0 1.5px var(--navy);}
.btn-teal{background:var(--teal); color:#fff;}
.btn-teal:hover{background:var(--teal-deep); box-shadow:var(--shadow-m); transform:translateY(-1px);}
.btn-sm{padding:10px 18px; font-size:14px;}

/* ---------- Header ---------- */
header{position:fixed; top:0; left:0; width:100%; z-index:1000; padding:22px 0; transition:background .35s ease, box-shadow .35s ease, padding .3s ease; background:transparent; box-shadow:none;}
header.scrolled{background:rgba(255,255,255,.94); backdrop-filter:blur(10px); box-shadow:var(--shadow-s); padding:12px 0;}

/* Sayfa kaydırma ilerleme çubuğu */
.scroll-progress{position:absolute; left:0; bottom:-2px; height:2px; width:0%; background:linear-gradient(90deg, var(--teal), var(--teal-deep)); transition:width .1s linear; z-index:1001;}

/* Logo giriş animasyonu (sayfa yüklenince bir kez oynar) */
.brand-logo{animation:logoIn .7s var(--ease) both; filter:brightness(0) invert(1); transition:filter .35s ease;}
header.scrolled .brand-logo{filter:none;}
@keyframes logoIn{
  from{opacity:0; transform:translateY(-8px);}
  to{opacity:1; transform:translateY(0);}
}
.nav-wrap{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.brand{display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:800; font-size:20px; color:#fff; transition:color .35s ease;}
header.scrolled .brand{color:var(--heading);}
.brand-mark{display:none;}
.brand-logo{width:178px; height:auto; max-height:48px; object-fit:contain; object-position:left center;}
.nav-links{display:flex; align-items:center; gap:32px;}
.nav-links a{font-size:15px; font-weight:500; color:#fff; position:relative; padding:4px 0; transition:color .35s ease;}
header.scrolled .nav-links a{color:var(--navy);}
.nav-links a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--teal); transition:width .25s var(--ease);}
.nav-links a:hover::after{width:100%;}
.nav-links a.active{color:#8FD8D1;}
header.scrolled .nav-links a.active{color:var(--teal-deep);}
.nav-links a.active::after{width:100%;}
.nav-cta{display:flex; align-items:center; gap:14px;}
.hamburger{display:none; flex-direction:column; gap:5px; width:26px; z-index:1100;}
.hamburger span{height:2px; width:100%; background:#fff; transition:background .35s ease;}
header.scrolled .hamburger span{background:var(--navy);}

@media (max-width:960px){
  header{padding:18px 0;}
  header.scrolled{padding:10px 0;}
  .brand-logo{width:160px; max-height:42px;}
  .hamburger{width:24px;}
  .nav-links{position:fixed; top:0; right:-100%; height:100vh; width:min(320px,80vw); background:var(--bg); flex-direction:column; justify-content:flex-start; align-items:flex-start; padding:100px 32px 32px; gap:26px; transition:right .3s var(--ease); box-shadow:-10px 0 30px rgba(0,0,0,.08);}
  :root[data-theme="dark"] .nav-links{background:#101c24;}
  .nav-links.open{right:0;}
  .nav-links a{color:var(--text) !important; font-size:17px;}
  .hamburger{display:flex;}
}
.menu-overlay{position:fixed; inset:0; background:rgba(11,43,69,.4); opacity:0; pointer-events:none; transition:opacity .3s ease; z-index:999;}
.menu-overlay.open{opacity:1; pointer-events:auto;}

/* ---------- Hero Slider ---------- */
.hero{position:relative; height:92vh; min-height:620px; overflow:hidden; background:var(--navy);}
.slide{position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .9s ease; display:flex; align-items:center;}
.slide.active{opacity:1; visibility:visible;}
.slide-bg{position:absolute; inset:0; z-index:0;}
.slide-bg img{width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.06); transition:transform 7s linear;}
.slide.active .slide-bg img{transform:scale(1);}
.slide-scrim{position:absolute; inset:0; background:linear-gradient(100deg, rgba(8,30,48,.92) 0%, rgba(8,30,48,.74) 42%, rgba(8,30,48,.34) 75%); z-index:1;}
.slide-content{position:relative; z-index:2; color:#fff; max-width:640px; padding:0 28px; margin:0 auto; width:100%;}
.slide-content .eyebrow{color:#8FD8D1; font-size:15px; text-transform:none;}
.slide-content h1{color:#fff; font-size:clamp(34px,5vw,58px); margin:14px 0 20px; letter-spacing:-.01em;}
.slide-content p{color:rgba(255,255,255,.88); font-size:18px; max-width:520px; margin-bottom:34px;}
.slide-ctas{display:flex; gap:16px; flex-wrap:wrap;}
.hero-container{max-width:var(--container); margin:0 auto; width:100%; position:relative;}

.slider-arrows{position:absolute; bottom:36px; right:calc(50% - (var(--container)/2) + 28px); display:flex; gap:12px; z-index:3;}
.arrow-btn{width:46px; height:46px; border-radius:50%; border:1.5px solid rgba(255,255,255,.4); color:#fff; display:flex; align-items:center; justify-content:center; transition:.2s;}
.arrow-btn svg{width:22px; height:22px; flex:none;}
.arrow-btn:hover{background:#fff; color:var(--navy); border-color:#fff; transform:scale(1.06);}
.slider-dots{position:absolute; left:28px; bottom:40px; display:flex; gap:10px; z-index:3;}
@media (min-width:961px){ .slider-dots{left:calc(50% - (var(--container)/2) + 28px);} }
.dot{width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.4); transition:.25s;}
.dot.active{background:#fff; width:26px; border-radius:6px;}
@media (max-width:960px){
  .slider-arrows{display:none;}
  .hero{height:auto; min-height:0; padding:150px 0 96px;}
  .slide{position:relative; height:auto;}
  .slide:not(.active){display:none;}
  .slide-content p{font-size:16px;}
  .slide-content > p:not(.eyebrow){margin-bottom:18px;}
  .slide-ctas{margin-top:0;}
}

/* Hero'da yumuşak, dikkat dağıtmayan yüzen dekoratif şekiller */
.hero-float{position:absolute; z-index:1; border-radius:50%; filter:blur(2px); pointer-events:none; opacity:.35; mix-blend-mode:screen;}
.hero-float-1{width:220px; height:220px; right:8%; top:14%; background:radial-gradient(circle, rgba(46,158,150,.55), transparent 70%); animation:floatY 9s ease-in-out infinite;}
.hero-float-2{width:140px; height:140px; right:22%; bottom:16%; background:radial-gradient(circle, rgba(143,216,209,.5), transparent 70%); animation:floatY 7s ease-in-out infinite .8s;}
@keyframes floatY{
  0%,100%{transform:translateY(0) translateX(0);}
  50%{transform:translateY(-22px) translateX(10px);}
}
@media (max-width:960px){ .hero-float{display:none;} }

/* Buton tıklama dalga (ripple) efekti */
.btn{position:relative; overflow:hidden;}
.btn .ripple{position:absolute; border-radius:50%; transform:scale(0); background:rgba(255,255,255,.55); pointer-events:none; animation:rippleAnim .6s ease-out forwards;}
@keyframes rippleAnim{ to{ transform:scale(2.6); opacity:0; } }

/* Hero metin giriş animasyonu — her slayt geçişinde yeniden tetiklenir */
.slide-content.reveal-play .eyebrow{animation:heroUp .6s var(--ease) both;}
.slide-content.reveal-play h1{animation:heroUp .7s var(--ease) .08s both;}
.slide-content.reveal-play p{animation:heroUp .7s var(--ease) .16s both;}
.slide-content.reveal-play .slide-ctas{animation:heroUp .7s var(--ease) .24s both;}
@keyframes heroUp{
  from{opacity:0; transform:translateY(18px);}
  to{opacity:1; transform:translateY(0);}
}

/* ---------- Scroll reveal (genel) ---------- */
.reveal-el{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal-el.in{opacity:1; transform:translateY(0);}

/* ---------- Trust strip ---------- */
.trust{background:var(--bg-soft); border-bottom:1px solid var(--border);}
.trust .container{padding-top:44px; padding-bottom:44px;}
.trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:28px;}
@media (max-width:900px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .trust-grid{grid-template-columns:1fr;} }
.trust-item{display:flex; gap:14px; align-items:flex-start;}
.trust-icon{width:44px; height:44px; border-radius:var(--r-s); background:var(--teal-tint); color:var(--teal-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.trust-icon svg{width:22px; height:22px;}
.trust-item h4{color:var(--heading); font-size:15.5px; margin-bottom:3px;}
.trust-item p{font-size:14px; color:var(--text-soft);}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:0.95fr 1.05fr; gap:64px; align-items:center;}
@media (max-width:900px){ .about-grid{grid-template-columns:1fr; gap:40px;} }
.about-visual{position:relative; border-radius:var(--r-m); overflow:hidden; aspect-ratio:4/4.6; background:var(--teal-tint);}
.about-visual img{width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .6s var(--ease);}
.about-visual:hover img{transform:scale(1.03);}
.about-badge{position:absolute; left:20px; bottom:20px; background:#fff; border-radius:var(--r-s); padding:16px 20px; box-shadow:var(--shadow-m); display:flex; gap:14px; align-items:center;}
.about-badge strong{display:block; font-family:var(--font-head); font-size:22px; color:var(--heading);}
.about-badge span{font-size:13px; color:var(--text-soft);}
.about-text p{color:var(--text-soft); margin-bottom:16px; font-size:16px;}
.about-list{margin:22px 0 30px; display:grid; gap:14px;}
.about-list li{display:flex; gap:12px; align-items:flex-start; font-size:15px; color:var(--text-soft);}
.about-list svg{width:20px; height:20px; color:var(--teal-deep); flex-shrink:0; margin-top:2px;}

/* ---------- Treatments ---------- */
.treat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
@media (max-width:1080px){ .treat-grid{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .treat-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:480px){ .treat-grid{grid-template-columns:1fr;} }
.treat-card{border:1px solid var(--border); border-radius:var(--r-m); padding:28px 24px; transition:border-color .2s ease, transform .2s ease, box-shadow .2s ease; background:var(--bg);}
.treat-card:hover{border-color:var(--teal); transform:translateY(-4px); box-shadow:var(--shadow-m);}
.treat-icon{width:48px; height:48px; border-radius:var(--r-s); background:var(--teal-tint); color:var(--teal-deep); display:flex; align-items:center; justify-content:center; margin-bottom:18px; transition:background .2s ease, color .2s ease;}
.treat-icon svg{width:24px; height:24px;}
.treat-card:hover .treat-icon{background:var(--teal-deep); color:#fff;}
.treat-card h3{color:var(--heading); font-size:17.5px; margin-bottom:8px;}
.treat-card p{font-size:14.5px; color:var(--text-soft); margin-bottom:16px;}
.treat-link{font-size:14px; font-weight:600; color:var(--teal-deep); display:inline-flex; align-items:center; gap:6px;}
.treat-link svg{width:15px; height:15px; transition:transform .2s;}
.treat-card:hover .treat-link svg{transform:translateX(3px);}

/* ---------- Why us ---------- */
.why{background:var(--navy); color:#fff; position:relative; overflow:hidden;}
.why::before{content:''; position:absolute; top:-120px; right:-120px; width:420px; height:420px; border-radius:50%; background:radial-gradient(circle,rgba(46,158,150,.25),transparent 70%);}
.why .section-head h2, .why .section-head p{color:#fff;}
.why .section-head p{color:rgba(255,255,255,.7);}
.why .eyebrow{color:#8FD8D1;}
.why-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); border-radius:var(--r-m); overflow:hidden; position:relative;}
@media (max-width:860px){ .why-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .why-grid{grid-template-columns:1fr;} }
.why-item{background:var(--navy-2); padding:34px 28px; transition:background .2s ease;}
.why-item:hover{background:#164468;}
.why-item svg{width:26px; height:26px; color:#8FD8D1; margin-bottom:16px;}
.why-item h4{color:#fff; font-size:16.5px; margin-bottom:8px;}
.why-item p{color:rgba(255,255,255,.68); font-size:14px;}

/* ---------- Doctors ---------- */
.doctor-scroll{display:flex; flex-wrap:wrap; justify-content:center; gap:24px;}
.doctor-card{flex:0 1 calc(25% - 18px); min-width:230px;}
@media (max-width:1080px){ .doctor-card{flex-basis:calc(50% - 12px);} }
@media (max-width:640px){
  .doctor-scroll{flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; scroll-snap-type:x mandatory; gap:18px; margin:0 -28px; padding:4px 28px 12px;}
  .doctor-scroll::-webkit-scrollbar{display:none;}
  .doctor-card{flex:0 0 78%; min-width:0; scroll-snap-align:start;}
}
.doctor-card{border:1px solid var(--border); border-radius:var(--r-m); overflow:hidden; text-align:center; padding:34px 22px 28px; transition:box-shadow .2s ease, transform .2s ease;}
.doctor-card:hover{box-shadow:var(--shadow-m); transform:translateY(-4px);}
.doctor-avatar{width:96px; height:96px; border-radius:50%; margin:0 auto 18px; display:flex; align-items:center; justify-content:center; font-family:var(--font-head); font-weight:700; font-size:26px; color:#fff; transition:transform .3s var(--ease);}
.doctor-card:hover .doctor-avatar{transform:scale(1.06);}
.doctor-card h3{color:var(--heading); font-size:17px; margin-bottom:4px;}
.doctor-title{color:var(--teal-deep); font-size:13.5px; font-weight:600; margin-bottom:10px;}
.doctor-card p.desc{font-size:13.5px; color:var(--text-soft);}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
@media (max-width:860px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .gallery-grid{grid-template-columns:1fr;} }
.gallery-item{position:relative; border-radius:var(--r-m); overflow:hidden; aspect-ratio:4/3; cursor:zoom-in; border:1px solid var(--border);}
.gallery-item img{width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .4s ease;}
.gallery-item:hover img{transform:scale(1.05);}
.gallery-caption{position:absolute; left:0; right:0; bottom:0; padding:14px 16px; background:linear-gradient(to top, rgba(11,43,69,.75), transparent); color:#fff; font-size:14.5px; font-weight:600;}
.lightbox{position:fixed; inset:0; background:rgba(8,20,30,.92); display:flex; align-items:center; justify-content:center; z-index:2000; opacity:0; pointer-events:none; transition:opacity .25s ease; padding:40px 20px;}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox-inner{max-width:820px; width:100%;}
.lightbox-inner img{width:100%; border-radius:var(--r-m); max-height:70vh; object-fit:contain;}
.lightbox-caption{color:#fff; text-align:center; margin-top:16px; font-size:15px;}
.lightbox-close{position:absolute; top:24px; right:28px; color:#fff; width:42px; height:42px; border:1.5px solid rgba(255,255,255,.4); border-radius:50%; display:flex; align-items:center; justify-content:center;}
.lightbox-nav{position:absolute; top:50%; transform:translateY(-50%); color:#fff; width:46px; height:46px; border:1.5px solid rgba(255,255,255,.4); border-radius:50%; display:flex; align-items:center; justify-content:center;}
.lightbox-nav.prev{left:24px;} .lightbox-nav.next{right:24px;}
@media (max-width:600px){ .lightbox-nav{display:none;} }

/* ---------- Testimonials ---------- */
.test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
@media (max-width:900px){ .test-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .test-grid{grid-template-columns:1fr;} }
.test-card{background:var(--bg-soft); border-radius:var(--r-m); padding:28px 26px; border:1px solid var(--border);}
.stars{display:flex; gap:3px; margin-bottom:14px; color:var(--gold);}
.stars svg{width:16px; height:16px;}
.test-card p.quote{font-size:15px; color:var(--text); margin-bottom:18px;}
.test-name{font-weight:600; font-size:14.5px; color:var(--heading);}
.test-role{font-size:13px; color:var(--text-soft);}

/* ---------- FAQ ---------- */
.faq-wrap{max-width:820px; margin:0 auto;}
.faq-item{border-bottom:1px solid var(--border);}
.faq-q{width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 4px; text-align:left; font-family:var(--font-head); font-weight:600; font-size:16.5px; color:var(--heading);}
.faq-q svg{width:20px; height:20px; flex-shrink:0; transition:transform .25s ease; color:var(--teal-deep);}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.faq-a p{padding:0 4px 22px; color:var(--text-soft); font-size:15px; max-width:680px;}

/* ---------- CTA ---------- */
.cta-section{background:linear-gradient(120deg, var(--teal-deep), var(--navy)); color:#fff; text-align:center;}
.cta-section h2{color:#fff; font-size:clamp(26px,3.6vw,38px); margin-bottom:16px;}
.cta-section p{color:rgba(255,255,255,.85); max-width:600px; margin:0 auto 32px; font-size:16.5px;}
.cta-buttons{display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:22px;}
.cta-phone{font-family:var(--font-head); font-size:20px; font-weight:700; color:#fff; white-space:nowrap;}
.cta-phone span{display:block; font-family:var(--font-body); font-weight:400; font-size:13px; color:rgba(255,255,255,.72); margin-bottom:4px;}
.btn-teal.pulse{animation:pulse 2.4s ease-in-out infinite;}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(255,255,255,.35);}
  50%{box-shadow:0 0 0 10px rgba(255,255,255,0);}
}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:60px;}
@media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:36px;} }
.contact-list{display:grid; gap:22px; margin-top:26px;}
.contact-row{display:flex; gap:16px; align-items:flex-start;}
.contact-icon{width:44px; height:44px; border-radius:var(--r-s); background:var(--teal-tint); color:var(--teal-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .2s ease, color .2s ease, transform .2s ease;}
.contact-row:hover .contact-icon{background:var(--teal-deep); color:#fff; transform:translateY(-2px);}
.contact-icon svg{width:21px; height:21px;}
.contact-row h4{color:var(--heading); font-size:14.5px; margin-bottom:4px; font-weight:700;}
.contact-row a, .contact-row p{font-size:15px; color:var(--text-soft);}
.contact-row a[href^="tel:"]{white-space:nowrap; display:inline-block;}
.contact-row a:hover{color:var(--teal-deep);}
.map-box{border-radius:var(--r-m); overflow:hidden; border:1px solid var(--border); height:440px; position:relative; background:var(--teal-tint);}
@media (max-width:768px){ .map-box{height:320px;} }
.map-box svg{width:100%; height:100%;}
.map-pin{position:absolute; top:50%; left:50%; transform:translate(-50%,-100%); text-align:center; animation:pinBob 2.6s ease-in-out infinite;}
@keyframes pinBob{
  0%,100%{transform:translate(-50%,-100%);}
  50%{transform:translate(-50%,-108%);}
}
.map-cta{position:absolute; left:16px; bottom:16px; right:16px; display:flex; justify-content:flex-end;}

/* ---------- Footer ---------- */
footer{background:linear-gradient(120deg, var(--teal-deep), var(--navy)); color:rgba(255,255,255,.8); padding:72px 0 0;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:52px; border-bottom:1px solid rgba(255,255,255,.14);}
@media (max-width:860px){ .footer-grid{grid-template-columns:1fr 1fr; row-gap:36px;} }
@media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
.footer-brand{display:flex; align-items:center; gap:10px; font-family:var(--font-head); font-weight:800; font-size:19px; color:#fff; margin-bottom:14px;}
.footer-brand svg{display:none;}
.footer-brand img{width:190px; height:auto; max-height:52px; object-fit:contain; object-position:left center;}
.footer-col h4{color:#fff; font-size:14.5px; margin-bottom:18px; font-family:var(--font-head);}
.footer-col ul{display:grid; gap:11px; font-size:14.5px;}
.footer-col a[href^="tel:"]{white-space:nowrap; display:inline-block;}
.footer-col a:hover{color:#fff;}
.social-row{display:flex; gap:12px; margin-top:18px;}
.social-row a{width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.35); display:flex; align-items:center; justify-content:center; transition:.2s ease;}
.social-row a:hover{background:#fff; color:var(--teal-deep); transform:translateY(-2px);}
.social-row svg{width:17px; height:17px;}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; padding:26px 0; font-size:13px; flex-wrap:wrap; gap:12px; color:rgba(255,255,255,.65);}
.footer-legal{display:flex; gap:22px; flex-wrap:wrap;}
.footer-legal a:hover{color:#fff;}

---------- Mobile bottom bar ----------
.mobile-bar{display:none;}
@media (max-width:760px){
  .mobile-bar{display:flex; position:fixed; bottom:0; left:0; width:100%; z-index:900; background:#fff; border-top:1px solid var(--border); box-shadow:0 -6px 20px rgba(0,0,0,.06); padding:10px 8px calc(10px + env(safe-area-inset-bottom));}
  :root[data-theme="dark"] .mobile-bar{background:#0E1A22;}
  .mobile-bar a{flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; font-size:11.5px; font-weight:600; color:var(--text-soft); padding:6px 0; transition:color .2s ease, transform .2s ease;}
  .mobile-bar a:active{transform:scale(.92);}
  .mobile-bar a svg{width:20px; height:20px;}
  .mobile-bar a.primary{color:var(--teal-deep);}
  body{padding-bottom:64px;}
}