/* ============================================================
   RankPro Academy — shared stylesheet (v2 redesign)
   Look: soft sky-to-mint backgrounds, deep teal + signal green,
   rounded pill buttons, wave divider under the hero.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=Noto+Sans+Malayalam:wght@500;700&display=swap');

:root{
  --teal-950:#06303d;
  --teal-900:#08475a;   /* buttons, headings */
  --teal-800:#0b5a70;
  --teal-700:#10708a;
  --green-700:#0e8a58;
  --green-600:#13a06a;  /* accent */
  --green-500:#1db57a;
  --green-100:#dff3ea;
  --mint-50:#f1f9f6;
  --sky-100:#dcecef;
  --sky-50:#eef6f7;
  --paper:#fbfdfd;
  --card:#ffffff;
  --ink:#10303c;
  --muted:#53707b;
  --line:#dbe8e8;
  --on-dark:#bcd7dd;

  --max:1200px;
  --radius-xl:36px;
  --radius-lg:24px;
  --radius-md:16px;
  --radius-sm:10px;

  --font:'Plus Jakarta Sans','Noto Sans Malayalam',system-ui,sans-serif;
  --font-ml:'Noto Sans Malayalam','Plus Jakarta Sans',sans-serif;

  --shadow-soft:0 24px 48px -28px rgba(8,71,90,.35);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:96px; }
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  background:var(--paper);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5{
  font-family:var(--font);
  margin:0;
  color:var(--teal-900);
  line-height:1.1;
  font-weight:800;
  letter-spacing:-0.02em;
}
p{ margin:0; }
:focus-visible{ outline:3px solid var(--green-500); outline-offset:3px; border-radius:6px; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .wrap{ padding:0 20px; } }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:15px 30px;
  border-radius:999px;
  font-family:var(--font);
  font-weight:600; font-size:15px;
  cursor:pointer;
  border:1.5px solid transparent;
  transition:transform .15s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn:active{ transform:scale(.97); }
.btn svg{ width:18px; height:18px; flex:none; }
.btn-primary{ background:var(--teal-900); color:#fff; }
.btn-primary:hover{ background:var(--teal-800); }
.btn-green{ background:var(--green-600); color:#fff; }
.btn-green:hover{ background:var(--green-700); }
.btn-outline{ background:transparent; color:var(--teal-900); border-color:var(--teal-900); }
.btn-outline:hover{ background:var(--teal-900); color:#fff; }
.btn-light{ background:#fff; color:var(--teal-900); }
.btn-light:hover{ background:var(--green-100); }
.btn-ghost{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.btn-ghost:hover{ border-color:#fff; background:rgba(255,255,255,.08); }

/* ---------- nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:60;
  background:rgba(251,253,253,.86);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(8,71,90,.08);
}
.site-nav .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height:84px; gap:24px;
}
.brand img{ height:44px; width:auto; }
.nav-links{ display:flex; align-items:center; gap:34px; }
.nav-links a{
  font-weight:500; font-size:15px; color:var(--teal-900);
  position:relative; padding:8px 0;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--green-600); border-radius:2px;
  transform:scaleX(0); transform-origin:left; transition:transform .2s ease;
}
.nav-links a:hover::after,
.nav-links a.active::after{ transform:scaleX(1); }
.nav-cta{ display:flex; align-items:center; gap:18px; }
.nav-call{ font-weight:600; font-size:14px; color:var(--teal-900); }
.nav-toggle{ display:none; }

@media (max-width:1020px){
  .nav-call{ display:none; }
}
@media (max-width:900px){
  .site-nav{
    position:sticky;
    top:0;
    z-index:60;
    background:#fff;
  }
  .site-nav .wrap{ height:72px; }
  .brand img{ height:38px; }
  .nav-links{
    display:none;
    position:absolute;
    inset:100% 0 auto 0;
    height:auto;
    max-height:calc(100dvh - 72px);
    overflow-y:auto;
    z-index:61;
    background:#fff;
    box-shadow:0 12px 24px rgba(8,71,90,.12);
    flex-direction:column;
    align-items:stretch;
    margin:0;
    padding:20px 24px;
    gap:8px;
    opacity:1;
    pointer-events:auto;
    transform:none;
  }
  .nav-links.open{ display:flex; }
  .nav-links a{
    display:block;
    font-size:20px;
    font-weight:600;
    padding:12px 0;
  }
  .nav-toggle{
    display:flex; flex-direction:column; justify-content:center; gap:5px;
    width:40px; height:40px; background:none; border:none; cursor:pointer; padding:8px;
  }
  .nav-toggle span{ height:2px; background:var(--teal-900); border-radius:2px; }
  .nav-cta .btn{ padding:12px 20px; font-size:14px; ;display:none }
}
/* ---------- eyebrow / headings ---------- */
.eyebrow{
  display:flex; align-items:center; gap:16px;
  font-weight:700; font-size:13px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--teal-900);
  margin-bottom:18px;
}
.eyebrow::before{ content:""; width:48px; height:2px; background:var(--green-600); flex:none; }
.eyebrow.plain::before{ display:none; }

.title{
  font-size:clamp(32px,4.6vw,54px);
}
.title .g{ color:var(--green-600); display:block; }
.lede{ color:var(--muted); font-size:17px; max-width:54ch; }

/* ---------- hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(60% 55% at 78% 8%, rgba(255,255,255,.95) 0, rgba(255,255,255,0) 70%),
    radial-gradient(40% 40% at 98% 38%, rgba(44,150,96,.38) 0, rgba(44,150,96,0) 70%),
    radial-gradient(50% 45% at 100% 62%, rgba(31,125,84,.28) 0, rgba(31,125,84,0) 72%),
    linear-gradient(180deg, #cfe5ea 0%, #e3f1ef 38%, #f3faf7 78%, #fbfdfd 100%);
}
.hero-main{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);
  align-items:end;
  gap:0;
  padding-top:72px;
}
.hero-copy{ position:relative; z-index:2; padding-bottom:40px; align-self:center; }
.hero-copy .kicker-line{
  display:block; font-weight:700; font-size:14px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--teal-900); margin-bottom:10px;
}
.hero-copy .streams{
  display:block; font-size:clamp(34px,4.2vw,50px); font-weight:800; color:var(--green-600);
  letter-spacing:.01em; margin-bottom:34px; line-height:1;
}
.hero h1{
  font-size:clamp(46px,6.4vw,84px);
  line-height:.98;
  letter-spacing:-0.035em;
}
.hero h1 .g{ color:var(--green-600); display:block; }
.hero-ml{
  display:block; margin-top:20px;
  font-family:var(--font-ml); font-weight:700; font-size:clamp(20px,2.2vw,26px);
  color:var(--teal-800);
}
.hero-copy .sub{
  margin-top:22px; font-size:clamp(18px,1.7vw,22px); font-weight:500;
  color:var(--teal-800); max-width:30ch; line-height:1.4;
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:34px; }

.hero-photo{
  position:relative; z-index:1;
  margin-left:-8%;
  align-self:end;
}
.hero-photo img{
  width:100%; height:auto;
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 74%,transparent 100%);
          mask-image:linear-gradient(to bottom,#000 0,#000 74%,transparent 100%);
}

.hero-features{
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr);
  max-width:760px;
  padding:34px 0 96px;
}
.hero-features .f{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:12px;
  padding:0 14px;
  border-left:1px solid rgba(8,71,90,.18);
  font-weight:500; font-size:15px; color:var(--teal-900); line-height:1.35;
}
.hero-features .f:first-child{ border-left:none; }
.hero-features .ic{
  width:60px; height:60px; border-radius:50%;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(19,160,106,.25);
  display:flex; align-items:center; justify-content:center;
  color:var(--teal-900);
}
.hero-features .ic svg{ width:28px; height:28px; }

/* wave divider */
.wave{ position:absolute; left:0; right:0; bottom:-1px; line-height:0; z-index:3; pointer-events:none; }
.wave svg{ width:100%; height:clamp(70px,9vw,130px); display:block; }

@media (max-width:980px){
  .hero-main{ grid-template-columns:1fr; padding-top:48px; }
  .hero-copy{ padding-bottom:0; }
  .hero-photo{ margin:8px -8% 0; order:2; }
  .hero-features{ max-width:none; padding:0 0 90px; grid-template-columns:repeat(2,1fr); row-gap:26px; }
  .hero-features .f:nth-child(3){ border-left:none; }
}
@media (max-width:520px){
  .hero-actions .btn{ flex:1 1 100%; }
}

/* inner-page hero */
.page-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(50% 80% at 85% 0%, rgba(255,255,255,.9) 0, rgba(255,255,255,0) 70%),
    radial-gradient(40% 70% at 100% 60%, rgba(44,150,96,.28) 0, rgba(44,150,96,0) 70%),
    linear-gradient(180deg,#cfe5ea 0%, #e6f3f0 70%, #f3faf7 100%);
  padding:72px 0 150px;
}
.page-hero .crumb{
  display:block; font-weight:600; font-size:14px; color:var(--teal-700); margin-bottom:18px;
}
.page-hero h1{ font-size:clamp(36px,5.2vw,64px); max-width:18ch; }
.page-hero h1 .g{ color:var(--green-600); display:block; }
.page-hero p{ margin-top:22px; max-width:58ch; color:var(--teal-800); font-size:18px; font-weight:500; }

/* ---------- sections ---------- */
.section{ padding:104px 0; }
.section-mint{ background:var(--mint-50); }
.section-sky{ background:var(--sky-50); }
.section-teal{
  background:
    radial-gradient(50% 70% at 100% 0%, rgba(29,181,122,.22) 0, rgba(29,181,122,0) 70%),
    var(--teal-950);
  color:#fff;
}
.section-teal h2,.section-teal h3,.section-teal h4{ color:#fff; }
.section-teal .eyebrow{ color:var(--on-dark); }
.section-teal .lede{ color:var(--on-dark); }
@media (max-width:640px){ .section{ padding:68px 0; } }

.section-head{
  display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:end;
  margin-bottom:56px;
}
.section-head .lede{ justify-self:end; }
@media (max-width:860px){
  .section-head{ grid-template-columns:1fr; gap:18px; }
  .section-head .lede{ justify-self:start; }
}

.two-col{
  display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;
}
@media (max-width:860px){ .two-col{ grid-template-columns:1fr; gap:36px; } }

/* ---------- course cards ---------- */
.course-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:960px){ .course-grid{ grid-template-columns:1fr; } }
.course-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius-lg);
  padding:34px 30px 30px;
  display:flex; flex-direction:column;
  transition:box-shadow .2s ease, border-color .2s ease;
}
.course-card:hover{ box-shadow:var(--shadow-soft); border-color:rgba(19,160,106,.45); }
.course-card .ic{
  width:56px; height:56px; border-radius:16px;
  background:var(--green-100); color:var(--green-700);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
}
.course-card .ic svg{ width:28px; height:28px; }
.course-card .org{ font-size:13px; font-weight:600; color:var(--green-700); margin-bottom:6px; }
.course-card h3{ font-size:26px; margin-bottom:18px; }
.course-card li{
  display:flex; gap:12px; padding:11px 0; border-top:1px solid var(--line);
  font-size:15px; color:var(--ink);
}
.course-card li::before{
  content:""; width:7px; height:7px; border-radius:50%; background:var(--green-600);
  margin-top:9px; flex:none;
}
.course-card .foot{ margin-top:auto; padding-top:20px; font-size:14px; color:var(--muted); }
.course-card ul{ margin-bottom:6px; }

.center-cta{ text-align:center; margin-top:44px; }

/* ---------- 6+6 program ---------- */
.program{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
}
@media (max-width:760px){ .program{ grid-template-columns:1fr; } }
.program .half{
  border-radius:var(--radius-xl);
  padding:40px 38px;
  position:relative; overflow:hidden;
}
.program .half.one{ background:var(--sky-100); }
.program .half.two{ background:var(--teal-900); color:#fff; }
.program .big{
  font-size:clamp(56px,7vw,92px); font-weight:800; line-height:.9; letter-spacing:-0.04em;
  color:var(--teal-900);
}
.program .half.two .big{ color:var(--green-500); }
.program .big small{ font-size:.3em; letter-spacing:0; font-weight:700; margin-left:8px; }
.program h3{ margin:16px 0 18px; font-size:24px; }
.program .half.two h3{ color:#fff; }
.program li{ display:flex; gap:12px; padding:7px 0; font-size:15.5px; }
.program li::before{ content:"✓"; font-weight:800; color:var(--green-600); flex:none; }
.program .half.two li::before{ color:var(--green-500); }
.program .half.two li{ color:var(--on-dark); }

/* ---------- method / phases ---------- */
.phase-row{
  display:grid; grid-template-columns:repeat(5,1fr); gap:0;
  counter-reset:ph;
}
.phase{
  padding:8px 24px 8px 0; position:relative;
  counter-increment:ph;
}
.phase::before{
  content:counter(ph);
  width:44px; height:44px; border-radius:50%;
  background:var(--green-600); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:17px; margin-bottom:20px; position:relative; z-index:1;
}
.phase::after{
  content:""; position:absolute; top:30px; left:44px; right:0; height:2px;
  background:rgba(255,255,255,.2);
}
.phase:last-child::after{ display:none; }
.phase h4{ font-size:22px; margin-bottom:10px; }
.phase p{ color:var(--on-dark); font-size:15px; max-width:26ch; }
@media (max-width:980px){
  .phase-row{ grid-template-columns:1fr; gap:6px; }
  .phase{ padding:0 0 28px 64px; }
  .phase::before{ position:absolute; left:0; top:0; margin:0; }
  .phase::after{ top:44px; bottom:0; left:21px; right:auto; width:2px; height:auto; }
}

/* ---------- facilities / feature lists ---------- */
.facility-grid{ display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
@media (max-width:860px){ .facility-grid{ grid-template-columns:1fr; gap:36px; } }

.photo-stack{ display:grid; grid-template-columns:1.1fr .9fr; gap:16px; }
.photo-stack img{
  width:100%; height:100%; object-fit:cover;
  border-radius:var(--radius-lg);
}
.photo-stack .tall{ grid-row:span 2; aspect-ratio:3/4; }
.photo-stack .sq{ aspect-ratio:1/1; }

.feature-list li{
  display:grid; grid-template-columns:52px 1fr; gap:18px;
  padding:20px 0; border-top:1px solid var(--line);
}
.feature-list li:first-child{ border-top:none; padding-top:0; }
.feature-list .ic{
  width:52px; height:52px; border-radius:50%;
  background:var(--green-100); color:var(--green-700);
  display:flex; align-items:center; justify-content:center;
}
.feature-list .ic svg{ width:24px; height:24px; }
.feature-list h4{ font-size:18px; margin-bottom:4px; }
.feature-list p{ color:var(--muted); font-size:15px; }
.feature-list a{ color:var(--teal-800); font-weight:600; }
.feature-list a:hover{ color:var(--green-700); }

/* ---------- team ---------- */
.team-panel{
  position:relative; overflow:hidden;
  border-radius:var(--radius-xl);
  background:
    radial-gradient(60% 70% at 80% 0%, rgba(255,255,255,.9) 0, rgba(255,255,255,0) 70%),
    radial-gradient(45% 60% at 100% 70%, rgba(44,150,96,.3) 0, rgba(44,150,96,0) 70%),
    linear-gradient(180deg,#d3e8ec,#eaf5f3);
  padding:48px 48px 0;
  display:grid; grid-template-columns:.9fr 1.1fr; gap:24px; align-items:end;
}
.team-panel .copy{ padding-bottom:56px; align-self:center; }
.team-panel img{ width:100%; height:auto; }
@media (max-width:860px){
  .team-panel{ grid-template-columns:1fr; padding:36px 24px 0; }
  .team-panel .copy{ padding-bottom:0; }
}
.tag-row{ display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.tag-pill{
  border:1px solid rgba(8,71,90,.22);
  background:rgba(255,255,255,.6);
  border-radius:999px; padding:8px 16px; font-size:13.5px; font-weight:500; color:var(--teal-900);
}

/* ---------- exam blocks (courses page) ---------- */
.exam{
  display:grid; grid-template-columns:.8fr 1.2fr; gap:56px; align-items:start;
  padding:48px 0; border-top:1px solid var(--line);
}
.exam-list > .exam:first-child{ border-top:none; padding-top:0; }
@media (max-width:860px){ .exam{ grid-template-columns:1fr; gap:24px; } }
.exam .tagline{
  display:inline-block; font-size:13px; font-weight:600; color:var(--green-700);
  background:var(--green-100); padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
.exam h3{ font-size:clamp(28px,3.4vw,40px); }
.exam p{ color:var(--muted); font-size:16px; margin-bottom:22px; max-width:60ch; }
.chips{ display:flex; flex-wrap:wrap; gap:10px; }
.chips li{
  background:var(--card); border:1px solid var(--line);
  border-radius:999px; padding:10px 18px; font-size:14.5px; font-weight:500; color:var(--teal-900);
}

/* ---------- schedule / timing ---------- */
.schedule-grid{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
@media (max-width:760px){ .schedule-grid{ grid-template-columns:1fr; } }
.schedule-card{
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-lg); padding:34px;
}
.schedule-card .time{
  display:inline-block; font-weight:700; font-size:14px; color:var(--teal-900);
  background:var(--sky-100); padding:7px 16px; border-radius:999px; margin-bottom:18px;
}
.schedule-card h4{ font-size:24px; margin-bottom:14px; }
.schedule-card li{ display:flex; gap:12px; padding:7px 0; color:var(--muted); font-size:15.5px; }
.schedule-card li::before{ content:"✓"; font-weight:800; color:var(--green-600); flex:none; }

.timing-table{
  width:100%; border-collapse:separate; border-spacing:0;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;
}
.timing-table th,.timing-table td{ text-align:left; padding:18px 26px; font-size:16px; border-top:1px solid var(--line); }
.timing-table thead th{ background:var(--teal-900); color:#fff; border-top:none; font-weight:600; font-size:14.5px; }

/* ---------- why grid ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:860px){ .why-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .why-grid{ grid-template-columns:1fr; } }
.why-item{
  display:flex; gap:14px; align-items:center;
  background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius-md); padding:20px 22px;
  font-weight:600; font-size:15.5px; color:var(--teal-900);
}
.why-item .check{
  width:30px; height:30px; border-radius:50%; flex:none;
  background:var(--green-600); color:#fff; font-size:14px;
  display:flex; align-items:center; justify-content:center;
}

/* ---------- CTA band ---------- */
.cta-band{
  position:relative; overflow:hidden;
  background:
    radial-gradient(50% 120% at 100% 0%, rgba(29,181,122,.45) 0, rgba(29,181,122,0) 65%),
    var(--teal-900);
  border-radius:var(--radius-xl);
  color:#fff; padding:60px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.cta-band h3{ color:#fff; font-size:clamp(26px,3.4vw,40px); max-width:20ch; }
.cta-band p{ color:var(--on-dark); margin-top:14px; font-size:17px; max-width:48ch; }
.cta-actions{ display:flex; gap:14px; flex-wrap:wrap; }
@media (max-width:640px){ .cta-band{ padding:40px 28px; } }

.logo-tile{
  border-radius:var(--radius-xl);
  background:linear-gradient(160deg,var(--sky-100),var(--green-100));
  aspect-ratio:1/1; display:flex; align-items:center; justify-content:center;
}
.logo-tile img{ width:38%; height:auto; }

/* ---------- footer ---------- */
.site-footer{ background:var(--teal-950); color:var(--on-dark); padding:72px 0 28px; }
.footer-grid{
  display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px;
  padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.12);
}
@media (max-width:820px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:520px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h5{ color:#fff; font-size:15px; margin-bottom:18px; letter-spacing:0; }
.footer-grid li{ margin-bottom:11px; font-size:15px; }
.footer-grid a:hover{ color:#fff; }
.footer-brand .logo-on-dark{
  display:inline-block; background:#fff; border-radius:14px; padding:10px 16px; margin-bottom:18px;
}
.footer-brand .logo-on-dark img{ height:36px; width:auto; }
.footer-brand p{ font-size:15px; max-width:36ch; }
.footer-brand .tag-pill{ background:transparent; border-color:rgba(255,255,255,.25); color:var(--on-dark); }
.footer-bottom{
  padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:13.5px; color:#7fa3ad;
}

/* ---------- contact popup ---------- */
body.contact-open{ overflow:hidden; }
.contact-modal{
  position:fixed; inset:0; z-index:100;
  display:flex; align-items:center; justify-content:center;
  padding:20px; background:rgba(6,48,61,.62);
}
.contact-modal[hidden]{ display:none; }
.contact-dialog{
  position:relative; width:min(100%,520px); max-height:calc(100dvh - 40px); overflow:auto;
  padding:40px; background:#fff; border-radius:var(--radius-md); box-shadow:0 24px 70px rgba(6,48,61,.28);
}
.contact-close{
  position:absolute; top:12px; right:14px;
  width:40px; height:40px; border:0; background:transparent;
  color:var(--teal-900); font:400 30px/1 var(--font); cursor:pointer;
}
.contact-dialog .eyebrow{ margin:0 0 14px; }
.contact-dialog h2{ max-width:15ch; font-size:30px; }
.contact-dialog > p{ margin-top:12px; color:var(--muted); font-size:15px; }
.contact-dialog form{ display:grid; gap:9px; margin-top:24px; }
.contact-dialog label{ color:var(--teal-900); font-size:14px; font-weight:600; }
.contact-dialog input,.contact-dialog select{
  width:100%; min-height:48px; margin-bottom:8px; padding:10px 12px;
  border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff;
  color:var(--ink); font:500 15px var(--font);
}
.contact-dialog input:focus,.contact-dialog select:focus{ outline:3px solid rgba(29,181,122,.28); border-color:var(--green-600); }
.contact-dialog form .btn{ width:100%; margin-top:8px; }
@media (max-width:520px){
  .contact-dialog{ padding:36px 24px 24px; }
  .contact-dialog h2{ font-size:26px; }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *{ transition:none !important; }
}


.whatsapp-float {
  position: fixed;
  right: calc(30px + env(safe-area-inset-right, 0px));
  bottom: calc(35px + env(safe-area-inset-bottom, 0px));
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: #25d366;
  color: #fff;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
}

.whatsapp-float svg {
  width: 32px;
  height: 32px;
}

.whatsapp-float:hover {
  background: #128c4a;
}

.whatsapp-float:focus-visible {
  outline: 3px solid #08475a;
  outline-offset: 4px;
}

body.contact-open .whatsapp-float {
  visibility: hidden;
}