/* ==========================================================================
   INVEST TELANGANA — Global Summit 2026
   Loaded after main.css. Scoped .gs-* so the shared system (header, footer,
   buttons, type scale, .rv motion, the quote Swiper) carries over untouched.

   Palette sampled off the Invest Telangana logo.
   Sections alternate light paper and deep brand grounds so the page has a
   rhythm rather than one long column of cards.
   --------------------------------------------------------------------------
   01  Tokens
   02  Hero (photographic, dark)
   03  Leadership (paper)
   04  2025 proof (navy gradient, dark)
   05  Three zones (paper, interactive map)
   06  Flagship projects (image cards)
   07  Focus sectors (green-navy gradient, dark)
   08  Programme (paper, expandable)
   09  Why Hyderabad (paper + imagery)
   10  Register (brand gradient, dark)
   11  Responsive
   ========================================================================== */

.gs{
  --lg-blue:#0060E0;
  --lg-navy:#0024B4;
  --lg-green:#007028;
  --lg-green-2:#40B060;
  --lg-lime:#98D048;
  --lg-yellow:#F8C828;
  --lg-amber:#E0A800;
  --lg-red:#E80000;
  --gs-ink:#061034;
}

/* Optional blocks: several section heads and the Why-Hyderabad photo strip can
   be emptied or hidden. When they are, the grid must not keep holding a column
   open for them — that was leaving ~470px of dead space beside the reasons and
   an empty half beside the leadership heading. */
/* :has() may not be nested inside :has(), so this is written as "no element
   anywhere in the aside" rather than "an aside that is empty" */
.gs .sec-head:not(:has(> .sec-head__a > *)){grid-template-columns:minmax(0,1fr)}
.gs-why__lay:not(:has(> .gs-strip)),
.gs-why__lay:has(> .gs-strip[style*="none"]){grid-template-columns:minmax(0,1fr)}

/* Six cards in a two-column grid is right inside a ~780px column, but runs to
   a 76-character measure once the block has the full shell to itself. Three
   across brings it back to ~48. */
@media (min-width:1081px){
  .gs-why__lay:not(:has(> .gs-strip)) .gs-whys,
  .gs-why__lay:has(> .gs-strip[style*="none"]) .gs-whys{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

/* shared: a section label that sits above each heading */
.gs-tag{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--f-head);font-size:.64rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--lg-blue);
}
.gs-tag::before{content:"";width:22px;height:1px;background:currentColor;opacity:.6}
.gs-tag--on{color:var(--lg-yellow)}

/* 02 ── HERO ──────────────────────────────────────────────────────────── */

.gs-hero{
  position:relative;overflow:hidden;
  min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-top:calc(var(--hdr-h) + var(--util-h) + clamp(1.6rem,4vw,2.8rem));
  background:var(--gs-ink);
}
.gs-hero__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.gs-hero__media img{
  position:absolute;inset:0;width:100%;height:112%;
  object-fit:cover;object-position:50% 42%;
  filter:saturate(1.05) contrast(1.04);
  will-change:transform;
}
/* the wash: deep at the bottom where the type sits, clear at the top */
.gs-hero__wash{
  position:absolute;inset:0;z-index:1;pointer-events:none;
 /* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#000000+0,000000+100&0+0,0.65+100 */
background: linear-gradient(to bottom,  rgba(0,0,0,0) 0%,rgba(0,0,0,0.65) 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */

}
.gs-hero__grid{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background-image:linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%;
  mask-image:linear-gradient(180deg,#000,transparent 72%);
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 72%);
}
.gs-hero__in{
  position:relative;z-index:3;
  width:var(--shell);margin-inline:auto;
  display:grid;gap:clamp(.9rem,1.8vw,1.3rem);justify-items:start;
  padding-bottom:clamp(1.4rem,2.6vw,2.2rem);
}
.gs-hero__kicker{
  display:inline-flex;align-items:center;gap:.7rem;
  padding:.5rem 1.05rem;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  font-family:var(--f-head);font-size:.65rem;letter-spacing:.18em;
  text-transform:uppercase;color:#fff;font-weight:500;
}
.gs-hero__kicker i{
  width:7px;height:7px;border-radius:50%;background:var(--lg-yellow);
  box-shadow:0 0 0 4px rgba(248,200,40,.26);
}
.gs-hero__h{
  font-size:clamp(2.5rem,5.6vw,5.5rem);line-height:.95;letter-spacing:-.042em;
  color:#fff; 
}
/* main.css parks .mask-l > span at translateY(110%) and only the home page's
   hero timeline pulls it back — that timeline never runs here, so the line sat
   outside its own clipping box. Its overflow:hidden also shaved Ubuntu's
   ascenders and descenders against the .95 leading. Own both:
   the resting state is visible, and the clip box is padded out to clear the
   glyphs while staying in the same place on the page. */
.gs-hero__h .mask-l{
  overflow:hidden;
  padding-block:.12em;margin-block:-.12em;
}
html.js .gs-hero__h .mask-l > *,
html.no-motion .gs-hero__h .mask-l > *{
  transform:none;opacity:1;
}
.gs-hero__h em{
  font-style:normal;display:block;
  background:linear-gradient(96deg,#7FC4FF,#FFFFFF 42%,var(--lg-lime));
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.gs-hero__p{
  max-width:66ch;color:rgba(255,255,255,.86);
  font-size:clamp(.98rem,.4vw + .88rem,1.1rem);line-height:1.58;
}
.gs-hero__cta{display:flex;gap:.75rem;flex-wrap:wrap;padding-top:.4rem}
.gs-hero .btn--out{color:#fff;border-color:rgba(255,255,255,.36);background:rgba(255,255,255,.08)}
.gs-hero .btn--out:hover{background:#fff;color:var(--gs-ink);border-color:#fff}

/* countdown */
.gs-count{display:grid;grid-auto-flow:column;gap:clamp(.4rem,1vw,.7rem);justify-content:start}
.gs-count__u{
  min-width:clamp(60px,8vw,92px);
  display:grid;gap:.25rem;justify-items:center;
  padding:clamp(.6rem,1.2vw,.85rem) clamp(.4rem,.9vw,.8rem);
  border:1px solid rgba(255,255,255,.22);border-radius:var(--r);
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.gs-count__n{
  font-family:var(--f-head);font-weight:400;
  font-size:clamp(1.4rem,2.8vw,2.2rem) !important;line-height:1;letter-spacing:-.045em;
  color:#fff;font-variant-numeric:tabular-nums;
}
.gs-count__l{
  font-family:var(--f-head);font-size:.55rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.62);
}

/* venue strip along the bottom of the hero */
.gs-facts{
  position:relative;z-index:3;
  border-top:1px solid rgba(255,255,255,.18);
  background:rgba(6,16,52,.5);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
}
.gs-facts__in{
  align-items: center;
  width:var(--shell);margin-inline:auto;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
}
.gs-fact{
  position:relative;padding:clamp(1rem,2vw,1.5rem) clamp(.6rem,1.4vw,1.4rem)
          clamp(1rem,2vw,1.5rem) 0;display:grid;gap:.3rem;
}
.gs-fact + .gs-fact{padding-left:clamp(.9rem,2vw,2rem)}
/* a rule of fixed height, centred — the cells are centre-aligned and no longer
   equal height, so a percentage rule would come out a different length in each */
.gs-fact + .gs-fact::before{
  content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  height:2.6rem;width:1px;background:rgba(255,255,255,.2);
}
/* child combinators, not descendant: the countdown lives in the third cell,
   and as a descendant rule this styled its digits mono, 60%-white and tracked
   out by 5px */
.gs-fact > b{
  font-family:var(--f-head);font-weight:400;
  font-size:clamp(1.1rem,2vw,1.2rem);line-height:1.1;letter-spacing:-.032em;color:#fff;
}
.gs-fact > span{
  font-family:var(--f-head);font-size:.6rem;letter-spacing:.15em;
  text-transform:uppercase;color:rgba(255,255,255,.6);
}

/* 03 ── LEADERSHIP ───────────────────────────────────────────────────── */

.gs-lead{background:var(--paper);overflow:hidden}
.gs-lead .quote{--q-gold:var(--lg-yellow)}
.gs-lead .quote__t{color:var(--lg-navy); font-size:clamp(1.1rem,1.9vw,1.55rem)}
.gs-lead .quote__a b{color:var(--lg-navy)}

/* 04 ── 2025 PROOF (dark) ────────────────────────────────────────────── */

.gs-proof{
  position:relative;overflow:hidden;color:#fff;
  padding-bottom:2rem;
  background:linear-gradient(155deg,var(--gs-ink) 0%,#06246E 46%,#003C9B 100%);
  isolation:isolate;
}
.gs-proof::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(50% 55% at 88% 8%,rgba(0,96,224,.42),transparent 62%),
    radial-gradient(44% 50% at 6% 94%,rgba(64,176,96,.28),transparent 64%);
}
.gs-proof__grid{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%;
}
.gs-proof .shell{position:relative;z-index:1}
.gs-proof h2{color:#fff}
.gs-proof__line{
  font-family:var(--f-head);font-weight:300;font-style:italic;
  font-size:clamp(1.1rem,2vw,1.6rem);line-height:1.45;letter-spacing:-.024em;
  color:rgba(255,255,255,.9);max-width:56ch;
  padding-left:1.3rem;border-left:2px solid var(--lg-yellow);
}
.gs-proof__line b{font-style:normal;font-weight:700;color:#fff}

/* The 2025 record — one grid of six metrics, two of them lead.
   This replaces a headline pair sitting above a six-card list, which repeated
   two of the same figures: ₹5.65 L Cr and 1,000+ were each stated twice.
   The panels are the same glass treatment as the sector cards, so the two dark
   sections read as one family. */
.gs-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.7rem,1.4vw,1.15rem);
  margin-top:clamp(2.2rem,4vw,3.2rem);
}
.gs-stat{
  position:relative;overflow:hidden;isolation:isolate;
  padding:clamp(1.3rem,2.3vw,2rem);
  border-radius:var(--r-lg);
  border:1px solid rgba(6,16,52,.1);
  background:#fff;
  box-shadow:0 12px 34px rgba(6,16,52,.09);
  display:grid;gap:.45rem;align-content:start;
  transition:transform .5s var(--e-out),border-color .4s,box-shadow .4s;
}
/* the accent rule along the top. Always drawn: the panel already animates in
   with .rv-c, so gating this on a second observer only added a way for it to
   never appear. */
.gs-stat::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:1;
  background:linear-gradient(90deg,var(--c,var(--lg-yellow)),transparent);
}
/* a soft wash of the accent colour behind the figure */
.gs-stat::after{
  content:"";position:absolute;z-index:-1;left:-18%;top:-52%;width:72%;aspect-ratio:1;
  border-radius:50%;background:var(--c,var(--lg-yellow));
  opacity:.13;filter:blur(38px);transition:opacity .5s var(--e-out);
}
.gs-stat:hover{
  transform:translateY(-5px);border-color:rgba(6,16,52,.18);
  box-shadow:0 20px 44px rgba(6,16,52,.16);
}
.gs-stat:hover::after{opacity:.24}

.gs-stat--lead{grid-column:auto}

.gs-stat__n{
  font-family:var(--f-head);font-weight:700;
  font-size:clamp(2.2rem,4vw,3.3rem);line-height:1;letter-spacing:-.05em;
  color:var(--c,var(--lg-yellow));font-variant-numeric:tabular-nums;
}
.gs-stat__t{
  font-family:var(--f-head);font-weight:700;font-size:clamp(1.02rem,1.3vw,1.18rem);
  letter-spacing:-.02em;line-height:1.25;color:var(--gs-ink);margin-top:.35rem;
}
.gs-stat__p{font-size:.9rem;line-height:1.6;color:#536078}

/* three photographs from the 2025 summit */
.gs-shots{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(.6rem,1.2vw,1rem);margin-top:clamp(2.4rem,4.5vw,3.6rem);
}
.gs-shot{
  position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;
  border:1px solid rgba(255,255,255,.16);
}
.gs-shot img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.1s var(--e-out);
}
.gs-shot:hover img{transform:scale(1.05)}
.gs-shot figcaption{
  position:absolute;left:0;right:0;bottom:0;z-index:1;
  padding:1.4rem .95rem .8rem;
  font-family:var(--f-head);font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(6,16,52,.86));
}

/* The gallery remains part of the 2025 recap, but breaks out of its dark
   shell into a full-width white stage like the supplied reference. */
.gs-gallery{
  position:relative;z-index:1;margin-top:clamp(3rem,6vw,5rem);
  padding:clamp(1.25rem,2.8vw,2.25rem) 0 clamp(2rem,4vw,3rem);
  overflow:hidden;color:inherit;background:transparent;
}
.gs-gallery::before{
  content:"";position:absolute;left:50%;top:47%;width:min(42vw,570px);aspect-ratio:1;
  border-radius:50%;background:rgba(45,48,143,.055);filter:blur(38px);
  transform:translate(-50%,-50%);pointer-events:none;
}
.gs-gallery__group{margin:0}
.gs-gallery__swiper{position:relative;z-index:1;overflow:visible;padding-block:0}
.gs-gallery__swiper .swiper-wrapper{
  align-items:center;padding-block:clamp(3.75rem,5.5vw,5.25rem);
  transition-timing-function:cubic-bezier(.22,.61,.36,1) !important;
  will-change:transform;
}
.gs-gallery__swiper .swiper-slide{
  position:relative;width:min(31vw,420px);z-index:1;
  transform:scale(.62);opacity:.9;
  backface-visibility:hidden;will-change:transform,opacity;
  transition:transform .42s cubic-bezier(.22,.61,.36,1),opacity .42s ease;
}
.gs-gallery__swiper .swiper-slide-prev,.gs-gallery__swiper .swiper-slide-next{
  z-index:3;transform:scale(.8);opacity:1;
}
.gs-gallery__swiper .swiper-slide-active{z-index:5;transform:scale(1.25);opacity:1}
.gs-gallery__swiper .swiper-slide-prev:hover,.gs-gallery__swiper .swiper-slide-next:hover{transform:scale(.83)}
.gs-gallery__swiper .swiper-slide-active:hover{transform:scale(1.28) translateY(-4px)}
.gs-gallery__item{
  aspect-ratio:4/5;border:0;border-radius:clamp(15px,1.6vw,22px);
  box-shadow:0 16px 34px rgba(14,22,55,.17);
  transition:box-shadow .4s var(--e-out),translate .4s var(--e-out);
}
.gs-gallery__item img{backface-visibility:hidden;transform:translateZ(0)}
.gs-gallery__swiper .swiper-slide-active .gs-gallery__item{box-shadow:0 26px 58px rgba(14,22,55,.28)}
.gs-gallery__item::after{display:none}
.gs-gallery__item:hover,.gs-gallery__item:focus-visible{translate:0;box-shadow:0 21px 44px rgba(14,22,55,.25)}
.gs-gallery__item:hover img,.gs-gallery__item:focus-visible img{transform:scale(1.035)}
.gs-gallery .gl-item__cap{display:none}
.gs-gallery__controls{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:clamp(1.4rem,2.6vw,2rem)}
.gs-gallery__prev,.gs-gallery__next{
  display:grid;place-items:center;width:48px;height:48px;padding:0;
  border:2px solid var(--ink);border-radius:50%;cursor:pointer;
  background:#fff;color:var(--ink);box-shadow:0 7px 18px rgba(14,22,55,.08);
  transition:transform .2s var(--e-out),background .2s var(--e-out),color .2s var(--e-out),box-shadow .2s var(--e-out);
}
.gs-gallery__prev:hover,.gs-gallery__next:hover{transform:scale(1.09);background:var(--ink);color:#fff;box-shadow:0 10px 24px rgba(14,22,55,.2)}
.gs-gallery__prev:active,.gs-gallery__next:active{transform:scale(.94)}
.gs-gallery__prev:focus-visible,.gs-gallery__next:focus-visible{outline:2px solid var(--lg-blue);outline-offset:3px}
.gs-gallery__prev svg,.gs-gallery__next svg{width:18px;height:18px;transition:transform .2s var(--e-out)}
.gs-gallery__prev:hover svg{transform:translateX(-2px)}
.gs-gallery__next:hover svg{transform:translateX(2px)}

/* 05 ── THREE ZONES ──────────────────────────────────────────────────── */

.gs-zones{
  background:
    radial-gradient(60% 50% at 88% 6%,rgba(0,96,224,.08),transparent 62%),
    linear-gradient(180deg,var(--paper) 0%,var(--paper-2) 100%);
  overflow:hidden;
}
.gs-zones__lay{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.86fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:center;
}
.gs-zone{
  position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1rem,2.4vw,1.8rem);align-items:start;
  padding:clamp(1.2rem,2.2vw,1.7rem) 0;
  border-top:1px solid var(--line);
  text-align:left;width:100%;
  transition:transform .45s var(--e-out);
}
.gs-zone:last-child{border-bottom:1px solid var(--line)}
.gs-zone::after{
  content:"";position:absolute;left:0;right:0;top:-1px;height:2px;
  background:var(--zc);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .6s var(--e-out);
}
.gs-zone:hover,.gs-zone.is-on{transform:translateX(5px)}
.gs-zone:hover::after,.gs-zone.is-on::after{transform:scaleX(1)}
.gs-zone__k{
  font-family:var(--f-head);font-weight:700;font-size:clamp(1.3rem,2.2vw,1.8rem);
  letter-spacing:-.03em;color:var(--zc);line-height:1;min-width:4.6ch;
}
.gs-zone__b{display:grid;gap:.3rem}
.gs-zone__b b{font-family:var(--f-head);font-size:.98rem;font-weight:500;color:var(--ink);letter-spacing:-.014em}
.gs-zone__b p{font-size:.885rem;line-height:1.58;color:var(--ink-3)}

.gs-zones__map{position:relative;width:100%;aspect-ratio:1004 / 1024}
.gs-zones__map canvas{position:absolute;inset:0;width:100%;height:100%}
.gs-zones__hint{
  text-align:center;font-family:var(--f-head);font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-4);margin-top:.7rem;
}

/* 06 ── FLAGSHIP PROJECTS — split viewer + accordion ────────────────── */

.gs-fs{background:var(--paper-2)}
.gs-fs__stage{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);
  gap:clamp(1.2rem,2.6vw,2rem);align-items:stretch;
}

/* ── the picture viewer: one frame per project, crossfaded and Ken-Burns'd */
.gs-fs__view{
  position:relative;isolation:isolate;overflow:hidden;
  border-radius:var(--r-lg);box-shadow:var(--sh-3);
  background:var(--gs-ink);min-height:420px;
}
.gs-fs__frames{position:absolute;inset:0}
.gs-fs__frame{
  position:absolute;inset:0;margin:0;
  opacity:0;transform:scale(1.06);
  transition:opacity 1s var(--e-out),transform 1.4s var(--e-out);
}
.gs-fs__frame[data-open="1"]{opacity:1;transform:scale(1);transition-duration:1.1s,9s}
.gs-fs__frame img{width:100%;height:100%;object-fit:cover;display:block}
.gs-fs__scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(6,16,52,.5) 0%,rgba(6,16,52,0) 30%,rgba(6,16,52,.15) 58%,rgba(6,16,52,.86) 100%);
}

.gs-fs__count{
  position:absolute;z-index:2;top:clamp(1.3rem,2.6vw,2rem);left:clamp(1.3rem,2.6vw,2rem);
  display:flex;align-items:baseline;gap:.3rem;
  font-family:var(--f-head);color:#fff;font-size:.95rem;letter-spacing:.02em;
}
.gs-fs__count b{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums}
.gs-fs__count i{font-style:normal;opacity:.55}
.gs-fs__prog{
  position:absolute;z-index:2;top:clamp(3.1rem,5.4vw,3.9rem);left:clamp(1.3rem,2.6vw,2rem);
  display:flex;gap:.4rem;
}
.gs-fs__prog i{
  width:26px;height:3px;border-radius:3px;background:rgba(255,255,255,.28);
  overflow:hidden;position:relative;
}
.gs-fs__prog i::after{
  content:"";position:absolute;inset:0;background:#fff;
  transform:scaleX(0);transform-origin:0 50%;transition:transform .6s var(--e-out);
}
.gs-fs__prog i.is-on::after{transform:scaleX(1)}

.gs-fs__cap{
  position:absolute;z-index:2;left:clamp(1.3rem,2.6vw,2rem);right:clamp(1.3rem,2.6vw,2rem);
  bottom:clamp(1.3rem,2.6vw,2rem);
  display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;
}
.gs-fs__capt{
  font-family:var(--f-head);font-weight:700;color:#fff;
  font-size:clamp(1.3rem,2.6vw,2rem);line-height:1.08;letter-spacing:-.026em;
  max-width:26ch;
}

/* ── the accordion list ───────────────────────────────────────────────── */
.gs-fs__list{
  list-style:none;margin:0;padding:0;
  display:grid;gap:clamp(.55rem,1.2vw,.8rem);align-content:start;
}
.gs-fs__row{
  position:relative;isolation:isolate;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow:hidden;box-shadow:var(--sh-1);
  transition:box-shadow .5s var(--e-out),border-color .5s var(--e-out),background .5s var(--e-out);
}
.gs-fs__row[data-open="1"]{background:#fff;border-color:transparent;box-shadow:var(--sh-3)}
/* a hairline accent that only lights up on the open card */
.gs-fs__row::before{
  content:"";position:absolute;inset:0 auto 0 0;width:3px;
  background:var(--ac,var(--lg-blue));
  transform:scaleY(0);transform-origin:50% 0;
  transition:transform .5s var(--e-out);
}
.gs-fs__row[data-open="1"]::before{transform:scaleY(1)}

.gs-fs__hd{
  all:unset;box-sizing:border-box;cursor:pointer;width:100%;position:relative;
  display:grid;grid-template-columns:auto minmax(0,1fr);
  align-items:center;gap:clamp(1rem,2.2vw,1.7rem);
  padding:clamp(1.05rem,2.2vw,1.55rem) clamp(1.2rem,2.6vw,1.9rem);
  padding-right:clamp(3.6rem,6vw,4.4rem);
}
.gs-fs__n b{
  font-family:var(--f-head);font-weight:800;font-variant-numeric:tabular-nums;
  font-size:clamp(1.9rem,3.4vw,2.5rem);line-height:1;letter-spacing:-.04em;
  color:var(--line-3);transition:color .5s var(--e-out);
}
.gs-fs__row[data-open="1"] .gs-fs__n b{color:var(--ac,var(--lg-blue))}
.gs-fs__hb{display:grid;gap:.35rem;justify-items:start;text-align:left;min-width:0}
.gs-fs__t{
  font-family:var(--f-head);font-weight:700;
  font-size:clamp(1.04rem,1.4vw,1.28rem);line-height:1.16;letter-spacing:-.022em;color:var(--ink);
}
/* collapsed: eyebrow + heading only. open: the description grows in via a
   0fr → 1fr row track, which animates smoothly without any JS measuring */
.gs-fs__pwrap{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .5s var(--e-out);
}
.gs-fs__row[data-open="1"] .gs-fs__pwrap{grid-template-rows:1fr}
.gs-fs__p{
  min-height:0;overflow:hidden;padding-top:.3rem;
  font-size:.87rem;line-height:1.58;color:var(--ink-3);max-width:52ch;
}

.gs-fs__x{
  position:absolute;top:clamp(1.05rem,2.2vw,1.55rem);right:clamp(1.2rem,2.6vw,1.9rem);
  width:40px;height:40px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  border:1px solid var(--line-3);color:var(--ink-3);background:var(--paper);
  transition:background .4s var(--e-out),color .4s var(--e-out),
             border-color .4s var(--e-out),transform .5s var(--e-spring);
}
.gs-fs__x svg{width:15px;height:15px;transition:transform .5s var(--e-spring)}
.gs-fs__row[data-open="1"] .gs-fs__x{
  background:var(--gs-ink);border-color:transparent;color:#fff;transform:rotate(180deg);
}
.gs-fs__row[data-open="1"] .gs-fs__x svg{transform:rotate(45deg)}
.gs-fs__row:not([data-open="1"]):hover .gs-fs__x{border-color:var(--ac,var(--lg-blue));color:var(--ac,var(--lg-blue))}
.gs-fs__row:not([data-open="1"]):hover{border-color:color-mix(in srgb,var(--ac,var(--lg-blue)) 38%,var(--line))}

@media (prefers-reduced-motion:reduce){
  .gs-fs__frame,.gs-fs__prog i::after,.gs-fs__row,.gs-fs__row::before,
  .gs-fs__n b,.gs-fs__pwrap,.gs-fs__x,.gs-fs__x svg{transition:none}
}

/* 07 ── FOCUS SECTORS (dark) ─────────────────────────────────────────── */

.gs-sectors{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(160deg,#03301A 0%,#04283F 44%,var(--gs-ink) 100%);
  isolation:isolate;
}
.gs-sectors::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(46% 50% at 12% 8%,rgba(64,176,96,.34),transparent 62%),
    radial-gradient(46% 52% at 90% 92%,rgba(0,96,224,.32),transparent 64%);
}
.gs-sectors .shell{position:relative;z-index:1}
.gs-sectors h2{color:#fff}

/* Eight sectors, four across: two full rows, every card the same shape. */
.gs-secs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.7rem,1.4vw,1.1rem)}
.gs-sec{
  position:relative;overflow:hidden;
  border-radius:var(--r-lg);
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.05);
  display:grid;grid-template-rows:auto 1fr;
  transition:transform .5s var(--e-out),border-color .4s,background .4s;
}
.gs-sec:hover{transform:translateY(-5px);border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.09)}
/* Seven cards in a three-column grid used to leave the last one spanning two
   columns with an empty third beside it. The first sector leads instead, as a
   full-width horizontal feature — 1 + 6 fills the grid exactly. */
.gs-sec--wide{
  grid-column:1 / -1;
  grid-template-rows:none;
  grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);
  align-items:stretch;
}
.gs-sec__fig{position:relative;aspect-ratio:16/7;overflow:hidden}
.gs-sec--wide .gs-sec__fig{aspect-ratio:auto;min-height:clamp(230px,25vw,320px)}
/* the wash runs sideways on the feature, so it fades into the copy, not under it */
.gs-sec--wide .gs-sec__fig::after{
  background:linear-gradient(90deg,rgba(6,16,52,.08) 40%,rgba(6,16,52,.55));
}
.gs-sec--wide .gs-sec__b{align-content:center;padding:clamp(1.4rem,3vw,2.6rem);gap:.7rem}
.gs-sec--wide .gs-sec__t{font-size:clamp(1.35rem,2.4vw,2rem);line-height:1.08}
.gs-sec__fig img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.9) brightness(.9);
  transition:transform 1.1s var(--e-out),filter .6s;
}
.gs-sec:hover .gs-sec__fig img{transform:scale(1.06);filter:saturate(1.05) brightness(1)}
.gs-sec__fig::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,16,52,.1),rgba(6,16,52,.72));
}
.gs-sec__b{padding:clamp(1.1rem,2vw,1.6rem);display:grid;gap:.5rem;align-content:start}
.gs-sec__i{font-family:var(--f-head);font-size:.63rem;letter-spacing:.16em;color:var(--lg-lime)}
.gs-sec__t{
  font-family:var(--f-head);font-weight:700;
  font-size:clamp(1.08rem,1.8vw,1.42rem);letter-spacing:-.024em;line-height:1.16;color:#fff;
}

/* the revised copy gives each sector its figures as points and then names the
   anchor companies, so the card carries a short list and a footing line */
.gs-sec__l{
  display:grid;gap:.34rem;margin:0;padding:0;list-style:none;
  font-size:.885rem;line-height:1.5;color:rgba(255,255,255,.74);
}
.gs-sec__l li{position:relative;padding-left:1rem}
.gs-sec__l li::before{
  content:"";position:absolute;left:0;top:.56em;
  width:5px;height:5px;border-radius:50%;background:var(--lg-lime);
}
.gs-sec__l b{color:var(--lg-yellow);font-weight:700}
.gs-sec--wide .gs-sec__l{font-size:clamp(.93rem,.45vw + .84rem,1.05rem);max-width:46ch}

/* 08 ── PROGRAMME ────────────────────────────────────────────────────── */

.gs-prog{
  background:
    radial-gradient(52% 46% at 6% 4%,rgba(30,66,193,.09),transparent 62%),
    radial-gradient(46% 44% at 96% 92%,rgba(0,112,40,.07),transparent 64%),
    linear-gradient(180deg,var(--paper-2) 0%,var(--paper) 58%,var(--paper-2) 100%);
  overflow:hidden;
}
/* Ten tracks settle into two balanced rows of five. Flex keeps the cards
   centred cleanly at every responsive breakpoint. */
.gs-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(.6rem,1.2vw,1rem)}
.gs-item{flex:0 0 calc(20% - clamp(.6rem,1.2vw,1rem) * 4 / 5)}

.gs-item{
  --gs-icon:#1E42C1;
  position:relative;overflow:hidden;
  display:grid;grid-template-rows:auto auto 1fr;
  gap:clamp(.75rem,1.4vw,1rem);align-content:start;
  padding:clamp(1.25rem,2.1vw,1.65rem);
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:rgba(255,255,255,.8);
  transition:transform .45s var(--e-out),box-shadow .45s var(--e-out),
             border-color .35s,background .35s;
}
/* the cursor spotlight */
.gs-item::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,0%),
             rgba(30,66,193,.10),transparent 64%);
  opacity:0;transition:opacity .4s;
}
/* the rule that draws in along the foot */
.gs-item::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--gs-icon),var(--lg-lime));
  transform:scaleX(0);transform-origin:0 50%;transition:transform .5s var(--e-out);
}
.gs-item:hover{
  transform:translateY(-5px);box-shadow:var(--sh-2);
  background:#fff;border-color:transparent;
}
/* a card that is a link: keep the card look, drop the link look */
a.gs-item{color:inherit;text-decoration:none;cursor:pointer}
a.gs-item:focus-visible{outline:2px solid var(--gs-icon);outline-offset:3px}
.gs-item:hover::before{opacity:1}
.gs-item:hover::after{transform:scaleX(1)}

/* The icon is its own plate: a fixed square box means the twelve marks — whose
   viewBoxes range from 32 to 1265 units and include one 4:3 landscape — all
   occupy the same footprint, so every title in a row starts on the same line.
   The svg element is the plate, so no wrapper element is needed. */
.gs-item__ic{
  box-sizing:border-box;
  /* no plate any more — just the mark itself, sized to the same footprint
     so every title in a row still starts on the same line */
  width:clamp(66px,6vw,84px);height:clamp(66px,6vw,84px);
  padding:clamp(9px,.85vw,12px);
  color:var(--gs-icon);
  transition:color .35s,transform .45s var(--e-out);
}
/* the icons were authored with hard-coded fills; those are stripped in the
   markup so everything inherits from here */
.gs-item__ic,
.gs-item__ic path,
.gs-item__ic circle,
.gs-item__ic rect,
.gs-item__ic polygon,
.gs-item__ic ellipse,
.gs-item__ic g{fill:currentColor}
.gs-item__ic [stroke]{stroke:currentColor}
/* one icon carries a near-white knockout that punches detail out of the shape;
   it has to stay light or those holes fill in */
.gs-item__ic [fill="#f9f8f8"]{fill:#fff}
.gs-item__ic [stroke="#f9f8f8"]{stroke:#fff}

/* IndiaJoy's supplied lock-up contains a white wordmark. A dark brand plate
   preserves the complete artwork while keeping its visual weight aligned
   with the line icons used by the other programme cards. */
.gs-item__ic--indiajoy{
  width:clamp(118px,10vw,150px);object-fit:contain;
  padding:clamp(12px,1vw,15px) clamp(9px,.9vw,12px);
  border-radius:14px; 
}

.gs-item:hover .gs-item__ic{transform:translateY(-2px)}

.gs-item__t{
  font-family:var(--f-head);font-size:1.02rem;font-weight:700;
  letter-spacing:-.018em;line-height:1.22;color:var(--ink);
  transition:color .35s;
}
.gs-item:hover .gs-item__t{color:var(--gs-icon)}
.gs-item__p{font-size:.855rem;line-height:1.56;color:var(--ink-3)}

/* 09 ── WHY HYDERABAD ────────────────────────────────────────────────── */

.gs-why{background:var(--paper-3);overflow:hidden}
.gs-why__lay{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(2rem,4vw,3.4rem);align-items:start;
}
.gs-whys{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.8rem)}
.gs-why__c{
  position:relative;display:grid;gap:.55rem;align-content:start;
  padding-top:1.2rem;border-top:2px solid var(--c,var(--lg-blue));
}
.gs-why__i{font-family:var(--f-head);font-size:.65rem;letter-spacing:.16em;color:var(--c,var(--lg-blue));}
.gs-why__ic{
  width:60px;height:60px;margin-bottom:.15rem;
  color:var(--c,var(--lg-blue));
}
.gs-why__t{
  font-family:var(--f-head);font-weight:700;
  font-size:clamp(1.02rem,1.6vw,1.28rem);letter-spacing:-.024em;line-height:1.18;color:var(--ink);
}
.gs-why__p{font-size:.875rem;line-height:1.6;color:var(--ink-3)}

/* a stacked column of Hyderabad photographs */
.gs-strip{display:grid;gap:clamp(.6rem,1.2vw,1rem)}
.gs-strip figure{
  position:relative;border-radius:var(--r);overflow:hidden;
  aspect-ratio:4/3;box-shadow:var(--sh-1);
}
.gs-strip img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--e-out)}
.gs-strip figure:hover img{transform:scale(1.05)}
.gs-strip figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:1.3rem .9rem .75rem;
  font-family:var(--f-head);font-size:.6rem;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,transparent,rgba(6,16,52,.84));
}

/* 10 ── REGISTER ─────────────────────────────────────────────────────── */

.gs-reg{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,var(--lg-navy) 0%,#0742B8 44%,var(--lg-blue) 100%);
  isolation:isolate;
}
.gs-reg::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(50% 60% at 84% 12%,rgba(248,200,40,.26),transparent 62%),
    radial-gradient(46% 56% at 10% 92%,rgba(64,176,96,.28),transparent 64%);
}
.gs-reg__grid{
  position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:calc(100% / 6) 100%;
}
.gs-reg__lay{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr);
  gap:clamp(2rem,5vw,4.5rem);align-items:start;
}
.gs-reg__h{font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;letter-spacing:-.036em;color:#fff}
.gs-reg__h em{font-style:normal;color:var(--lg-yellow)}
.gs-reg__p{color:rgba(255,255,255,.84);max-width:48ch;font-size:clamp(1rem,.5vw + .9rem,1.14rem);line-height:1.62}
.gs-reg__cta{display:flex;gap:.75rem;flex-wrap:wrap;padding-top:.5rem}
.gs-reg .btn--out{color:#fff;border-color:rgba(255,255,255,.34);background:rgba(255,255,255,.07)}
.gs-reg .btn--out:hover{background:#fff;color:var(--lg-navy);border-color:#fff}

.gs-rows{display:grid;border-top:1px solid rgba(255,255,255,.2)}
.gs-row{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:1rem;
  padding:clamp(1rem,1.8vw,1.4rem) 0;
  border-bottom:1px solid rgba(255,255,255,.2);
  text-decoration:none;color:inherit;
}
.gs-row::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;
  background:var(--lg-yellow);transform:scaleX(0);transform-origin:0 50%;
  transition:transform .55s var(--e-out);
}
.gs-row:hover::after{transform:scaleX(1)}
.gs-row__k{
  font-family:var(--f-head);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(255,255,255,.6);display:block;margin-bottom:.28rem;
  transition:color .35s;
}
.gs-row:hover .gs-row__k{color:var(--lg-yellow)}
.gs-row__v{
  font-family:var(--f-head);font-weight:500;
  font-size:clamp(.98rem,1.4vw,1.22rem);letter-spacing:-.02em;color:#fff;word-break:break-word;
}
.gs-row__go{
  width:40px;height:40px;border-radius:50%;flex:0 0 auto;
  border:1px solid rgba(255,255,255,.3);display:grid;place-items:center;
  color:#fff;transition:background .35s,transform .45s var(--e-out),color .35s;
}
.gs-row__go svg{width:14px;height:14px}
.gs-row:hover .gs-row__go{background:#fff;color:var(--lg-navy);transform:translateX(4px)}

.tg-gs26-logo{display: flex; justify-content: end;}
.tg-gs26-logo img{max-width: 300px;}

/* 11 ── RESPONSIVE ───────────────────────────────────────────────────── */

@media (max-width:1080px){
  .gs-zones__lay{grid-template-columns:1fr}
  .gs-zones__map{max-width:440px;margin-inline:auto;width:100%;order:-1}
  .gs-fs__capt{font-size:clamp(1.1rem,2.6vw,1.6rem)}
  .gs-item{flex-basis:calc(33.333% - clamp(.6rem,1.2vw,1rem) * 2 / 3)}
  .gs-reg__lay{grid-template-columns:1fr}
  .gs-why__lay{grid-template-columns:1fr}
  .gs-strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .gs-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gs-secs{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:860px){
  .gs-hero{min-height:auto;padding-bottom:0}
  .gs-hero__h{max-width:none}
  .gs-secs{grid-template-columns:1fr}
  .gs-sec--wide{grid-column:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .gs-sec--wide .gs-sec__fig{aspect-ratio:16/7;min-height:0}
  .gs-sec--wide .gs-sec__fig::after{background:linear-gradient(180deg,rgba(6,16,52,.1),rgba(6,16,52,.72))}
  .gs-sec--wide .gs-sec__b{align-content:start}
  .gs-shots{grid-template-columns:1fr}
  .gs-gallery__swiper .swiper-slide{width:min(40vw,360px)}
  .gs-facts__in{grid-template-columns:1fr}
  .gs-fact{padding-left:0 !important}
  .gs-fact::before{display:none !important}
  .gs-fact + .gs-fact{border-top:1px solid rgba(255,255,255,.16)}
  .tg-gs26-logo{display: block; justify-content: start;}
  /* the viewer stacks above the list once there's no room to sit side by side */
  .gs-fs__stage{grid-template-columns:1fr}
  .gs-fs__view{min-height:320px}
}

@media (max-width:640px){
  .gs-item{flex-basis:calc(50% - clamp(.6rem,1.2vw,1rem) / 2)}
  .gs-whys{grid-template-columns:1fr}
  .gs-strip{grid-template-columns:1fr}
  .gs-count__u{min-width:0;padding:.55rem .35rem}
  .gs-count{gap:.35rem}
  .gs-gallery{padding-top:1rem}
  .gs-gallery__swiper .swiper-slide{width:72vw;transform:scale(.72);opacity:.78}
  .gs-gallery__swiper .swiper-slide-prev,.gs-gallery__swiper .swiper-slide-next{transform:scale(.84);opacity:1}
  .gs-gallery__swiper .swiper-slide-active{transform:scale(1.14)}
  .gs-gallery__swiper .swiper-slide-active:hover{transform:scale(1.17) translateY(-3px)}
  .gs-gallery__prev,.gs-gallery__next{width:44px;height:44px}

  .gs-fs__view{min-height:260px}
  .gs-fs__capt{font-size:clamp(1.05rem,4.4vw,1.3rem)}
}

/* the six stat cards: two across until the screen is too narrow for two */
@media (max-width:520px){
  .gs-stats{grid-template-columns:1fr}
  .gs-stat{padding:1.2rem 1.25rem}
}

@media (max-width:420px){
  .gs-item{flex-basis:100%}
}

html.no-motion .gs-zone{transform:none}
html.no-motion .gs-hero__media img{transform:none !important}
