/* ============================================================
   Cotton India — Reusable UI components
   Buttons · Navbar · Cards · Testimonials · Forms · Footer
   ============================================================ */

/* ============================================================
   Buttons
   ============================================================ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  padding:14px 28px;
  border:1.5px solid transparent;border-radius:var(--radius-pill);
  font-size:var(--step--1);font-weight:600;letter-spacing:.02em;
  cursor:pointer;white-space:nowrap;position:relative;overflow:hidden;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease),
             border-color var(--dur) var(--ease), transform var(--dur) var(--ease),
             box-shadow var(--dur) var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn--sm{padding:10px 20px}

.btn--primary{background:var(--maroon);color:var(--white)}
.btn--primary:hover{background:var(--maroon-dark);box-shadow:0 12px 24px -12px rgba(122,31,42,.7)}

.btn--gold{background:var(--gold);color:#33260A}
.btn--gold:hover{background:var(--gold-soft);box-shadow:0 12px 24px -12px rgba(200,155,60,.7)}

.btn--ghost{background:transparent;color:var(--maroon);border-color:var(--maroon)}
.btn--ghost:hover{background:var(--maroon);color:var(--white)}

.btn--light{background:transparent;color:var(--white);border-color:rgba(255,255,255,.75)}
.btn--light:hover{background:var(--white);color:var(--maroon)}

/* Subtle ripple on press */
.btn::after{
  content:"";position:absolute;inset:0;margin:auto;
  width:0;height:0;border-radius:50%;
  background:currentColor;opacity:0;
}
.btn:active::after{
  width:220%;height:220%;opacity:.12;
  transition:width .5s var(--ease), height .5s var(--ease), opacity .5s var(--ease);
}

/* Text link with arrow */
.link-arrow{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--maroon);font-weight:600;font-size:var(--step--1);
  transition:gap var(--dur) var(--ease);
}
.link-arrow::after{content:"→";transition:transform var(--dur) var(--ease)}
.link-arrow:hover{gap:12px}

/* ============================================================
   Sticky navigation
   ============================================================ */
/* The injected wrapper must not box the nav in — sticky positions against the
   nearest scroll container, so a wrapping div would cap how far the bar sticks. */
#site-header{display:contents}

/* Transparent over the hero, solid once the page moves. */
.nav{
  position:sticky;top:0;z-index:60;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background var(--dur) var(--ease), box-shadow var(--dur) var(--ease),
             border-color var(--dur) var(--ease), backdrop-filter var(--dur) var(--ease);
}
.nav.is-scrolled{
  background:rgba(250,249,246,.97);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  box-shadow:0 6px 22px -18px rgba(64,36,24,.7);
}

/* While transparent the bar sits on the dark hero, so its contents go light. */
.nav:not(.is-scrolled) .brand__name{color:var(--white)}
.nav:not(.is-scrolled) .brand__tag{color:rgba(255,255,255,.72)}
.nav:not(.is-scrolled) .nav__link{color:rgba(255,255,255,.92)}
.nav:not(.is-scrolled) .nav__link:hover,
.nav:not(.is-scrolled) .nav__link.is-active{color:var(--white)}
.nav:not(.is-scrolled) .nav__toggle span{background:var(--white)}
.nav__inner{
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);
  min-height:var(--header-h);
}

.brand{display:flex;align-items:center;gap:12px;flex:none}
.brand__mark{
  width:46px;height:46px;flex:none;
  display:grid;place-items:center;overflow:hidden;
  background:var(--white);border-radius:var(--radius);
  box-shadow:inset 0 0 0 1.5px rgba(200,155,60,.5);
}
/* The logo file is a full lockup (emblem + wordmark); zoom so the tile shows
   the emblem alone — the wordmark is set beside it as live text. */
.brand__mark img{width:100%;height:100%;object-fit:contain;transform:scale(1.32) translateY(13%)}
.brand__text{display:flex;flex-direction:column;line-height:1.2}
.brand__name{
  font-family:var(--font-head);font-weight:600;font-size:1.2rem;
  color:var(--ink);white-space:nowrap;
}
.brand__tag{
  font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-soft);white-space:nowrap;
}
.brand--light .brand__name{color:var(--white)}
.brand--light .brand__tag{color:rgba(255,255,255,.65)}

.nav__links{display:flex;align-self:stretch;align-items:stretch;gap:2px}
.nav__link{
  position:relative;display:flex;align-items:center;padding:10px 12px;
  font-size:var(--step--1);font-weight:500;color:#4A3F38;
  border-radius:8px;white-space:nowrap;
  transition:color .2s var(--ease);
}
.nav__link::after{
  content:"";position:absolute;left:12px;right:12px;bottom:4px;height:2px;
  background:var(--gold);border-radius:2px;
  transform:scaleX(0);transform-origin:left;
  transition:transform var(--dur) var(--ease);
}
.nav__link:hover{color:var(--maroon)}
.nav__link:hover::after,
.nav__link.is-active::after,
.has-dropdown:hover .nav__link::after,
.has-dropdown:focus-within .nav__link::after{transform:scaleX(1)}
.nav__link.is-active{color:var(--maroon)}

/* Chevron on the four items that open a menu */
.nav__caret{
  width:10px;height:10px;flex:none;margin-left:6px;
  opacity:.65;transition:transform .22s var(--ease), opacity .22s var(--ease);
}
.has-dropdown:hover .nav__caret,
.has-dropdown:focus-within .nav__caret{transform:rotate(180deg);opacity:1}

/* ---------- Category dropdown ---------- */
/* The trigger stretches the full bar height so the panel opens flush against
   the nav edge — no dead gap for the pointer to fall through on its way down. */
.has-dropdown{position:relative;display:flex;align-items:center}
.dropdown{
  position:absolute;top:100%;left:50%;z-index:5;
  min-width:max-content;padding:var(--sp-2);
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow);
  opacity:0;visibility:hidden;
  transform:translateX(-50%) translateY(8px);
  transition:opacity .22s var(--ease), transform .22s var(--ease), visibility .22s;
}
.has-dropdown:hover .dropdown,
.has-dropdown:focus-within .dropdown{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);
}

/* `columns` fills the first column before the second, so the source order
   reads straight down the left column and then down the right. */
.dropdown__list{columns:2;column-gap:var(--sp-3)}
.dropdown__list li{break-inside:avoid}
.dropdown__list a{
  display:block;padding:9px 14px;border-radius:8px;
  font-size:var(--step--1);font-weight:500;color:#4A3F38;white-space:nowrap;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.dropdown__list a:hover{background:var(--ivory);color:var(--maroon)}

.dropdown__all{
  display:block;margin-top:var(--sp-1);padding:10px 14px 4px;
  border-top:1px solid var(--line);
  font-size:var(--step--1);font-weight:600;color:var(--maroon);white-space:nowrap;
}
.dropdown__all:hover{text-decoration:underline}

/* Mobile toggle + drawer */
.nav__actions{display:flex;align-items:center;gap:12px;flex:none}
.nav__toggle{
  display:none;flex-direction:column;gap:5px;
  width:44px;height:44px;align-items:center;justify-content:center;
  background:none;border:none;cursor:pointer;
}
.nav__toggle span{
  width:24px;height:2px;background:var(--ink);border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s;
}
.nav__toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav__toggle.is-open span:nth-child(2){opacity:0}
.nav__toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.drawer{
  display:flex;flex-direction:column;
  max-height:0;overflow:hidden;visibility:hidden;
  background:var(--white);border-bottom:1px solid var(--line);
  padding-inline:var(--gutter);
  transition:max-height .4s var(--ease), padding .4s var(--ease), visibility .4s;
}
/* visibility (not just max-height) so collapsed links leave the tab order */
.drawer.is-open{max-height:640px;visibility:visible;padding-block:var(--sp-2) var(--sp-3)}
.drawer a{
  padding:14px 4px;font-weight:500;color:#4A3F38;
  border-bottom:1px solid var(--line);
}
.drawer a.btn{border:none;justify-content:center;margin-top:var(--sp-2)}

/* ============================================================
   Category card (image + caption overlay)
   ============================================================ */
.card-cat{
  position:relative;display:block;overflow:hidden;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  background:var(--white);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.card-cat:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-cat__media{position:relative;aspect-ratio:4/5;overflow:hidden}
.card-cat__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card-cat:hover .card-cat__media img{transform:scale(1.06)}
.card-cat__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(transparent 38%, rgba(var(--overlay)/.86));
}
.card-cat__body{position:absolute;inset:auto 0 0 0;padding:var(--sp-3);color:var(--white);z-index:1}
.card-cat__body h3{color:var(--white);font-size:var(--step-2);margin-bottom:4px}
.card-cat__body p{color:rgba(255,255,255,.85);font-size:var(--step--1);margin-bottom:8px}
.card-cat__cta{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--gold-soft);font-weight:600;font-size:var(--step--1);
  transition:gap var(--dur) var(--ease);
}
.card-cat__cta::after{content:"→"}
.card-cat:hover .card-cat__cta{gap:12px}

/* ============================================================
   Product card — 4:5, white, soft shadow, hover zoom
   ============================================================ */
.card-product{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.card-product:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
/* 5:4 landscape — the product sheets are wide, with the colour swatches
   sitting to the right of the model. A portrait frame cropped them off. */
.card-product__media{position:relative;aspect-ratio:5/4;overflow:hidden;background:var(--ivory)}
/* Anchored to the top: landscape sheets are uncropped either way, but a
   portrait one would otherwise lose the model's head to a centred crop. */
.card-product__media img{width:100%;height:100%;object-fit:cover;object-position:center top;transition:transform .6s var(--ease)}
/* For wide shots whose subject or burnt-in label sits hard against the left
   edge — a centred crop would shave it off. The hover zoom grows rightward
   here too, so it does not eat back into that same edge. */
.card-product__media--pan-left img{object-position:25% top;transform-origin:left center}
/* Portrait window for full-length model shots. In the 5:4 frame above, a
   standing figure is cut at the hip — which loses the garment on a trouser,
   dhoti or shorts card. */
.card-product__media--tall{aspect-ratio:4/5}
/* Taller again, for full-length shots where the garment runs all the way to
   the hem — anarkalis, draped sarees, maxi dresses. 4:5 clips the hemline. */
.card-product__media--portrait{aspect-ratio:2/3}
/* For waist-down shots — trousers, jeans, dhotis. The top of the frame is
   filler, the hem and footwear are the product, so crop from the top instead. */
.card-product__media--pan-bottom img{object-position:center bottom}
.card-product:hover .card-product__media img{transform:scale(1.07)}
.card-product__tag{
  position:absolute;top:12px;left:12px;z-index:1;
  padding:5px 12px;border-radius:var(--radius-pill);
  background:var(--gold);color:#33260A;
  font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}
.card-product__tag--trend{background:var(--maroon);color:var(--white)}
.card-product__body{padding:var(--sp-2) var(--sp-2) var(--sp-3)}
.card-product__body h3{font-size:var(--step-1);margin-bottom:2px}
.card-product__body p{color:var(--ink-soft);font-size:var(--step--1)}
.card-product__note{
  display:block;margin-top:8px;
  color:var(--maroon);font-weight:600;font-size:var(--step--1);
}

/* ============================================================
   WhatsApp enquiry link — added to every product card and offer
   ticket by components.js, so it is styled once here.
   ============================================================ */
.card-enquire{
  display:flex;align-items:center;gap:8px;width:fit-content;
  align-self:flex-start;margin-top:12px;padding-bottom:3px;
  color:#128C4A;
  font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  border-bottom:1px solid rgba(18,140,74,.4);
  transition:color var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.card-enquire svg{width:16px;height:16px;flex:none}
.card-enquire:hover{color:var(--maroon);border-color:var(--maroon)}
/* On the dark ticket the green goes muddy — carry the gold instead. */
.offer-card--featured .card-enquire{
  color:var(--gold-soft);border-bottom-color:rgba(221,183,101,.45);
}
.offer-card--featured .card-enquire:hover{color:var(--white);border-bottom-color:var(--white)}

/* ============================================================
   Collection card (wide, editorial)
   ============================================================ */
.card-collection{
  position:relative;display:block;overflow:hidden;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.card-collection:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-collection__media{position:relative;aspect-ratio:3/2;overflow:hidden}
.card-collection--tall .card-collection__media{aspect-ratio:3/4}
.card-collection--boxy .card-collection__media{aspect-ratio:5/4}
.card-collection__media img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
/* Poster-style artwork that already carries its own headline and captions.
   Show it whole — contain, not cover — and drop the scrim + overlay label so
   nothing sits on top of the baked-in text. Leftover space fills with ivory,
   which these posters are already matted on. */
.card-collection--poster .card-collection__media{background:var(--ivory)}
.card-collection--poster .card-collection__media img{object-fit:contain}
.card-collection--poster .card-collection__media::after{display:none}
/* .sr-only on the body loses its padding:0 to .card-collection__body (same specificity, later file) */
.card-collection--poster .card-collection__body{padding:0}
.card-collection:hover .card-collection__media img{transform:scale(1.05)}
.card-collection__media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(transparent 40%, rgba(var(--overlay)/.85));
}
.card-collection__body{position:absolute;inset:auto 0 0 0;padding:var(--sp-3);color:var(--white);z-index:1}
.card-collection__body h3{color:var(--white);font-size:var(--step-2)}
.card-collection__body p{color:rgba(255,255,255,.85);font-size:var(--step--1)}

/* ============================================================
   Feature card (icon + copy)
   ============================================================ */
.card-feature{
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius);padding:var(--sp-4) var(--sp-3);
  box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.card-feature:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.card-feature__icon{
  width:56px;height:56px;margin-bottom:var(--sp-2);
  display:grid;place-items:center;border-radius:14px;
  background:var(--gold-tint);
}
.card-feature__icon svg{width:28px;height:28px;color:var(--maroon)}
.card-feature h3{font-size:var(--step-1);margin-bottom:6px}
.card-feature p{color:var(--ink-soft);font-size:var(--step--1)}

/* ============================================================
   Offer card (promo ticket)
   ============================================================ */
.offer-card{
  position:relative;display:flex;flex-direction:column;
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:var(--sp-4) var(--sp-3) var(--sp-3);
  box-shadow:var(--shadow-sm);overflow:hidden;
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
/* gold rule across the top — the "ticket" cue */
.offer-card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:4px;
  background:linear-gradient(90deg, var(--gold), var(--gold-soft));
}
.offer-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.offer-card__badge{
  align-self:flex-start;
  padding:5px 12px;border-radius:var(--radius-pill);
  background:var(--gold-tint);color:var(--maroon);
  font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  margin-bottom:var(--sp-2);
}
/* Stepped down from --step-4: these values are phrases ("5 for ₹1,000",
   "Lucky Draw"), not the one or two words the larger size was set for. */
.offer-card__value{
  font-family:var(--font-head);font-weight:700;line-height:1.1;
  font-size:var(--step-3);color:var(--maroon);margin-bottom:6px;
}
.offer-card__title{font-size:var(--step-1);margin-bottom:6px}
.offer-card__text{color:var(--ink-soft);font-size:var(--step--1);flex:1}
.offer-card__note{
  display:inline-block;align-self:flex-start;margin-top:var(--sp-2);
  font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-soft);
}

/* Featured — dark maroon ticket that anchors the board */
.offer-card--featured{
  background:linear-gradient(150deg, var(--maroon), var(--maroon-dark));
  border-color:transparent;
}
.offer-card--featured::before{background:linear-gradient(90deg, var(--gold-soft), var(--gold))}
.offer-card--featured .offer-card__badge{background:rgba(255,255,255,.16);color:var(--gold-soft)}
.offer-card--featured .offer-card__value{color:var(--gold-soft)}
.offer-card--featured .offer-card__title{color:var(--white)}
.offer-card--featured .offer-card__text{color:rgba(255,255,255,.82)}
.offer-card--featured .offer-card__note{color:rgba(255,255,255,.7)}

/* ============================================================
   Testimonials
   ============================================================ */
.testimonials{position:relative;max-width:820px;margin-inline:auto;overflow:hidden}
.testimonials__track{display:flex;transition:transform .6s var(--ease)}
.testimonial{min-width:100%;padding:4px}
.testimonial__card{
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:var(--sp-5) var(--sp-4);
  box-shadow:var(--shadow-sm);text-align:center;
}
.testimonial__stars{color:var(--gold);letter-spacing:.14em;margin-bottom:var(--sp-2)}
.testimonial blockquote{
  font-family:var(--font-head);font-style:italic;
  font-size:var(--step-2);line-height:1.5;color:var(--ink);
  margin-bottom:var(--sp-3);
}
.testimonial figcaption{display:flex;align-items:center;justify-content:center;gap:12px}
.testimonial figcaption img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.testimonial figcaption strong{display:block;color:var(--ink)}
.testimonial figcaption span{font-size:var(--step--1);color:var(--ink-soft)}
.testimonials__dots{display:flex;justify-content:center;gap:8px;margin-top:var(--sp-3)}
.testimonials__dots button{
  width:11px;height:11px;padding:0;border-radius:50%;cursor:pointer;
  background:transparent;border:1.5px solid var(--maroon);
  transition:background var(--dur), transform var(--dur);
}
.testimonials__dots button.is-active{background:var(--maroon);transform:scale(1.2)}

/* ============================================================
   Enquiry form
   ============================================================ */
.form{
  display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2);
  background:var(--white);border:1px solid var(--line);
  border-radius:var(--radius-lg);padding:var(--sp-4);box-shadow:var(--shadow-sm);
}
/* min-width:0 stops a long <option> label from stretching the grid column */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field--full{grid-column:1/-1}
.field label{font-size:var(--step--1);font-weight:600;color:#4A3F38}
.field input,.field select,.field textarea{
  width:100%;min-width:0;
  padding:13px 16px;font-size:var(--step-0);
  background:var(--cotton);border:1.5px solid var(--line);border-radius:10px;
  transition:border-color .2s, box-shadow .2s, background .2s;
}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;background:var(--white);
  border-color:var(--maroon);box-shadow:0 0 0 3px rgba(122,31,42,.14);
}
.field textarea{resize:vertical}
.form__note{margin-top:12px;font-size:var(--step--1);font-weight:500}
.form__note--ok{color:#1A7A3C}
.form__note--error{color:var(--maroon)}

/* ============================================================
   CTA band
   ============================================================ */
.cta-band{
  display:flex;align-items:center;justify-content:space-between;
  gap:var(--sp-4);flex-wrap:wrap;
  background:var(--white);border:1px solid var(--line);
  border-left:5px solid var(--gold);border-radius:var(--radius-lg);
  padding:var(--sp-5);box-shadow:var(--shadow-sm);
}
.cta-band h2{font-size:var(--step-3);margin-bottom:8px}
.cta-band p{color:var(--ink-soft);max-width:48ch}
.cta-band__actions{display:flex;gap:12px;flex-wrap:wrap}

/* ============================================================
   Footer
   ============================================================ */
.footer{background:#2A1C18;color:rgba(255,255,255,.75)}
.footer__grid{
  display:grid;grid-template-columns:1.6fr 1fr 1fr 1.2fr;gap:var(--sp-4);
  padding-block:var(--sp-8) var(--sp-5);
}
.footer__brand .brand{margin-bottom:var(--sp-2)}
.footer__brand p{font-size:var(--step--1);max-width:36ch;line-height:1.8}
.footer__social{display:flex;gap:10px;margin-top:var(--sp-2)}
.footer__social a{
  width:40px;height:40px;display:grid;place-items:center;
  border-radius:10px;background:rgba(255,255,255,.09);color:var(--white);
  transition:background var(--dur), color var(--dur), transform var(--dur);
}
.footer__social a:hover{background:var(--gold);color:#33260A;transform:translateY(-3px)}
.footer__col h4{
  color:var(--white);font-family:var(--font-body);
  font-size:var(--step--1);font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:var(--sp-2);
}
.footer__col a,.footer__col p{
  display:block;padding-block:5px;
  color:rgba(255,255,255,.72);font-size:var(--step--1);
  transition:color .25s;
}
.footer__col a:hover{color:var(--gold-soft)}
.footer__col--contact a{display:inline;padding:0}
.footer__bar{border-top:1px solid rgba(255,255,255,.12)}
.footer__bar-inner{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-2);
  padding-block:var(--sp-2);font-size:var(--step--1);color:rgba(255,255,255,.55);
}

/* ============================================================
   Floating WhatsApp
   ============================================================ */
.fab-whatsapp{
  position:fixed;right:20px;bottom:20px;z-index:70;
  width:56px;height:56px;display:grid;place-items:center;
  border-radius:50%;background:#25D366;color:var(--white);
  box-shadow:0 12px 28px -10px rgba(37,211,102,.75);
  transition:transform var(--dur) var(--ease);
}
.fab-whatsapp:hover{transform:scale(1.08)}

/* ============================================================
   Component responsive rules
   ============================================================ */
@media (max-width:1180px){
  .brand__tag{display:none}
  .nav__link{padding:10px 8px}
  .nav__link::after{left:8px;right:8px}
}
@media (min-width:1025px){
  .drawer{display:none}
}
@media (max-width:1024px){
  .nav__links{display:none}
  .nav__toggle{display:flex}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  /* Brand + CTA + burger no longer fit on one row — the drawer and the
     floating WhatsApp button both still offer a way through. */
  .nav__actions .btn{display:none}
}
@media (max-width:640px){
  .form{grid-template-columns:1fr;padding:var(--sp-3)}
  .cta-band{padding:var(--sp-3)}
  .footer__grid{grid-template-columns:1fr;gap:var(--sp-3)}
  .footer__bar-inner{justify-content:center;text-align:center}
  .testimonial__card{padding:var(--sp-3) var(--sp-2)}
  .testimonial blockquote{font-size:var(--step-1)}
}
