/* Site font: Poppins for headings and body text (replaces the design's Plus Jakarta Sans / Inter).
   Bangla text keeps Hind Siliguri, which is also the fallback for Bangla characters inside Poppins text. */
:root{
  --f-head:"Poppins","Hind Siliguri",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"Poppins","Hind Siliguri",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}

/* ---- Refinement layer: quieter type weights, depth and motion ---------------------------------- */
.display{font-size:clamp(40px,4.9vw,68px);font-weight:700;letter-spacing:-.028em;line-height:1.06}
.h1{font-weight:700;letter-spacing:-.022em}
.h2{font-weight:700;letter-spacing:-.02em;line-height:1.12}
.h3,.dest-body h3{font-weight:600;letter-spacing:-.01em}
.btn{font-weight:600;letter-spacing:0}
.btn-cta,.btn-primary{box-shadow:0 10px 24px -12px rgba(16,49,83,.45)}
.btn-cta:hover,.btn-primary:hover{transform:translateY(-1px)}

/* Hero: softly lit background, deeper photo arch with an outline ring, frosted floating cards */
.hero{background:
  radial-gradient(900px 520px at 88% 8%,rgba(243,167,120,.16),transparent 62%),
  radial-gradient(760px 480px at 4% 0%,rgba(11,118,108,.07),transparent 60%),
  linear-gradient(180deg,#F5F8FC 0%,#fff 100%)}
.hero-visual::before{content:"";position:absolute;inset:-16px -16px -16px 24px;border:1.5px solid rgba(16,49,83,.10);border-radius:300px 300px 44px 44px;pointer-events:none}
.arch{box-shadow:0 48px 90px -36px rgba(16,49,83,.55)}
.arch .ph-img{object-position:62% 88%}
.arch::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,34,61,0) 58%,rgba(10,34,61,.32) 100%);pointer-events:none}
.hero .float{background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:rgba(255,255,255,.7);box-shadow:0 24px 48px -20px rgba(16,49,83,.38)}
@media (max-width:1020px){.hero-visual::before{inset:-12px;border-radius:212px 212px 36px 36px}}
@media (max-width:720px){.hero-visual::before{display:none}}

/* Destination cards: city photography that zooms a little on hover */
.dest-card{box-shadow:0 1px 2px rgba(16,49,83,.04)}
.dest-card:hover{transform:translateY(-4px);box-shadow:0 28px 50px -28px rgba(16,49,83,.45);border-color:transparent}
.dest-photo{object-position:center 50%;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.dest-card:hover .dest-photo{transform:scale(1.06)}
.dest-art.has-photo::after{background:linear-gradient(to top,rgba(10,34,61,.42),rgba(10,34,61,0) 50%)}
.has-photo>.tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(255,255,255,.88)!important}
.c-art.has-photo{box-shadow:0 40px 80px -40px rgba(16,49,83,.5)}
@media (prefers-reduced-motion:reduce){.dest-photo,.dest-card{transition:none}.dest-card:hover,.dest-card:hover .dest-photo{transform:none}}

/* Destination finder: room for "Any destination" in Poppins */
@media (min-width:1280px){.finder{grid-template-columns:minmax(0,1.7fr) minmax(0,1.15fr) minmax(0,1fr) auto}}
@media (min-width:1021px) and (max-width:1279px){.finder{grid-template-columns:repeat(3,minmax(0,1fr))}.finder .btn{grid-column:1/-1}}
.finder select,.finder input{font-size:15px}

/* ---- Header ------------------------------------------------------------------------------------- */
.util{background:linear-gradient(90deg,#0A223D,#103153);font-size:13px;letter-spacing:.01em}
.util .wrap{min-height:40px}
.seg{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1)}
.seg button{font-size:12px;padding:4px 12px;min-height:26px;transition:background .2s,color .2s}
.hdr{background:rgba(255,255,255,.86);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid rgba(16,49,83,.07);transition:box-shadow .25s,background .25s}
.hdr.is-scrolled{background:rgba(255,255,255,.94);box-shadow:0 12px 32px -20px rgba(16,49,83,.38);border-bottom-color:transparent}
@media (min-width:1220px){.hdr-in{min-height:84px;gap:20px}.logo-img{height:46px}}
@media (min-width:1440px){.hdr-in{gap:24px}.logo-img{height:50px}}
.nav{gap:4px}
.nav-a,.nav-b{position:relative;background:none!important;border-radius:0;padding:0 9px;font-weight:500;color:#33465E;transition:color .2s}
@media (min-width:1440px){.nav-a,.nav-b{padding:0 11px}}
@media (min-width:1220px) and (max-width:1339px){.nav-a,.nav-b{padding:0 7px;font-size:14px}.hdr-ctas .btn-cta{padding:0 18px}}
.nav-a::after,.nav-b::after{content:"";position:absolute;left:var(--nav-pad,9px);right:var(--nav-pad,9px);bottom:6px;height:2px;border-radius:2px;background:var(--amber);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.nav-b::after{right:calc(var(--nav-pad,9px) + 20px)}
@media (min-width:1440px){.nav{--nav-pad:11px}}
@media (min-width:1220px) and (max-width:1339px){.nav{--nav-pad:7px}}
.nav-a:hover,.nav-b:hover,.nav-b[aria-expanded="true"]{color:var(--navy)}
.nav-a:hover::after,.nav-b:hover::after,.nav-b[aria-expanded="true"]::after,.nav-cur::after{transform:scaleX(1)}
.nav-cur{color:var(--navy);box-shadow:none}
.hdr-ctas .btn-cta{min-height:48px;padding:0 24px;box-shadow:0 12px 26px -14px rgba(196,104,52,.75)}
.burger{border-color:rgba(16,49,83,.14);transition:border-color .2s,background .2s}
.burger:hover{background:var(--cloud)}

/* Mega menus float under the header as rounded panels */
@media (min-width:1220px){
  .dd{top:calc(100% + 10px);border-radius:22px;border:1px solid rgba(16,49,83,.08);box-shadow:0 40px 80px -30px rgba(16,49,83,.45),0 2px 6px rgba(16,49,83,.05);animation:hic-dd .22s cubic-bezier(.2,.7,.2,1)}
  .dd-mega{padding:28px}
}
/* invisible bridge over the gap, so moving the pointer down into the panel never leaves the header */
.dd::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
@keyframes hic-dd{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.mega-a{transition:background .2s}
.mega-code{width:44px;height:44px;border-radius:50%;background-size:cover!important;background-position:center!important;color:transparent!important;box-shadow:0 0 0 1px rgba(16,49,83,.12),0 4px 10px -4px rgba(16,49,83,.35);transition:transform .2s}
.mega-a:hover .mega-code{transform:scale(1.06)}
.mega-code.t-uk{background:url(../img/flags/gb-1x1.svg)}
.mega-code.t-usa{background:url(../img/flags/us-1x1.svg)}
.mega-code.t-canada{background:url(../img/flags/ca-1x1.svg)}
.mega-code.t-australia{background:url(../img/flags/au-1x1.svg)}
.mega-code.t-malaysia{background:url(../img/flags/my-1x1.svg)}
.mega-code.t-germany{background:url(../img/flags/de-1x1.svg)}
.mega-code.t-new-zealand{background:url(../img/flags/nz-1x1.svg)}
/* mobile drawer: the same flags before each destination link */
.dr-sub a[href^="/study-abroad/"]:not([href="/study-abroad/"])::before{content:"";flex:none;width:24px;height:18px;margin-right:12px;border-radius:4px;background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:0 0 0 1px rgba(16,49,83,.12)}
.dr-sub a[href="/study-abroad/uk/"]::before{background-image:url(../img/flags/gb-4x3.svg)}
.dr-sub a[href="/study-abroad/usa/"]::before{background-image:url(../img/flags/us-4x3.svg)}
.dr-sub a[href="/study-abroad/canada/"]::before{background-image:url(../img/flags/ca-4x3.svg)}
.dr-sub a[href="/study-abroad/australia/"]::before{background-image:url(../img/flags/au-4x3.svg)}
.dr-sub a[href="/study-abroad/malaysia/"]::before{background-image:url(../img/flags/my-4x3.svg)}
.dr-sub a[href="/study-abroad/germany/"]::before{background-image:url(../img/flags/de-4x3.svg)}
.dr-sub a[href="/study-abroad/new-zealand/"]::before{background-image:url(../img/flags/nz-4x3.svg)}
.mega-side{background:linear-gradient(160deg,#F5F8FC,#EAF1F8)}
@media (prefers-reduced-motion:reduce){.dd{animation:none}.nav-a::after,.nav-b::after{transition:none}}

/* ---- Institutions (real logos) ------------------------------------------------------------------ */
.inst-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
@media (max-width:1179px){.inst-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1020px){.inst-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:720px){.inst-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
.inst{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px 18px 18px;text-decoration:none;color:var(--slate);transition:transform .25s,box-shadow .25s,border-color .25s}
.inst:hover{transform:translateY(-3px);border-color:transparent;box-shadow:0 26px 46px -28px rgba(16,49,83,.45)}
.inst[hidden]{display:none}
.inst-logo{height:76px;display:flex;align-items:center;justify-content:center;padding:4px 6px;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:2px}
.inst-img{max-height:56px;max-width:100%;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.78;transition:filter .3s,opacity .3s}
.inst:hover .inst-img,.inst:focus-visible .inst-img{filter:none;opacity:1}
@media (hover:none){.inst-img{filter:none;opacity:1}}
.inst-body{display:flex;flex-direction:column;gap:4px;flex:1}
.inst-name{font-family:var(--f-head);font-weight:600;color:var(--navy);font-size:14.5px;line-height:1.35}
.inst-meta{font-size:12.5px;color:var(--muted);line-height:1.4}
.inst-cta{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--blue)}
.inst-cta .ic{width:15px;height:15px;transition:transform .2s}
.inst:hover .inst-cta .ic{transform:translateX(3px)}
@media (max-width:720px){.inst{padding:16px 14px 14px}.inst-logo{height:64px;padding-bottom:12px}.inst-img{max-height:46px}.inst-cta{display:none}}
.inst-sec{padding-bottom:24px}

/* ---- Request counselling form card -------------------------------------------------------------- */
.formcard{padding:0!important;overflow:hidden;border:0;border-radius:26px;box-shadow:0 40px 80px -40px rgba(16,49,83,.5),0 0 0 1px rgba(16,49,83,.07)}
.formcard>.stack{gap:0!important}
.fc-head{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px 32px 24px;color:#fff;background:
  radial-gradient(420px 180px at 100% 0%,rgba(243,167,120,.28),transparent 70%),linear-gradient(135deg,#0E2B4A,#1B456F)}
.fc-head .h3{color:#fff;font-size:23px;font-weight:700;letter-spacing:-.01em;margin:0}
.fc-head .eyebrow{color:#8FE0D6}
.fc-sub{color:#C9D6E6;font-size:14.5px;line-height:1.55;margin:0}
.fc-perks{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.fc-perk{display:inline-flex;align-items:center;gap:6px;padding:5px 11px 5px 8px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);font-size:12.5px;font-weight:500;color:#fff}
.fc-perk .ic{width:14px;height:14px;color:#F3A778;stroke-width:2.6}
.formcard .form{padding:28px 32px 30px;gap:18px}
.formcard .label{font-size:13.5px;font-weight:600;color:var(--navy);letter-spacing:.005em}
.formcard .input{min-height:52px;border:1px solid #D6E0EB;border-radius:12px;background-color:#F7F9FC;font-size:15.5px;transition:border-color .2s,box-shadow .2s,background-color .2s}
.formcard .input:hover{border-color:#B7C6D7}
.formcard .input:focus{background-color:#fff;border-color:var(--navy);box-shadow:0 0 0 4px rgba(16,49,83,.1)}
.formcard input.input[autocomplete="name"],.formcard input.input[type="tel"],.formcard input.input[type="email"]{padding-left:46px;background-repeat:no-repeat;background-position:15px center;background-size:18px}
.formcard input.input[autocomplete="name"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A8BA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
.formcard input.input[type="tel"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A8BA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='2' width='12' height='20' rx='2.5'/%3E%3Cpath d='M11 18h2'/%3E%3C/svg%3E")}
.formcard input.input[type="email"]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237A8BA0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='M3 7l9 6 9-6'/%3E%3C/svg%3E")}
.formcard .input[aria-invalid="true"]{border-color:var(--error);background-color:var(--error-50)}
.formcard .hint{font-size:12.5px}
.formcard .check{font-size:13.5px;color:#4A5B70;padding:14px 16px;border-radius:12px;background:#F7F9FC;border:1px solid #E3EAF2}
.formcard .check input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1.5px solid #9FB0C4;border-radius:6px;background:#fff center/14px no-repeat;cursor:pointer;transition:background-color .15s,border-color .15s}
.formcard .check input:checked{background-color:var(--navy);border-color:var(--navy);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E")}
.formcard .check input:focus-visible{outline:none;box-shadow:0 0 0 4px rgba(16,49,83,.15)}
.formcard [data-submit]{min-height:58px;border-radius:14px;font-size:16.5px;box-shadow:0 18px 32px -18px rgba(196,104,52,.85)}
.formcard [data-submit] [data-label]::after{content:"";display:inline-block;width:18px;height:18px;margin-left:10px;vertical-align:-3px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.formcard .form>p.tiny.muted{display:flex;gap:8px;align-items:flex-start;line-height:1.5}
.formcard .form>p.tiny.muted::before{content:"";flex:none;width:14px;height:14px;margin-top:2px;background:#7A8BA0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat}
.formcard .steps span{height:6px;border-radius:6px;background:#E3EAF2}
.formcard .steps span.on{background:linear-gradient(90deg,var(--navy),#2B5C8E)}
@media (max-width:720px){.fc-head{padding:22px 20px 20px}.formcard .form{padding:22px 20px 24px}.fc-head .h3{font-size:21px}}

/* ---- Mobile fixes ------------------------------------------------------------------------------- */
/* Some two-column sections set their columns inline, which beat the design's own 1020px collapse rule. */
@media (max-width:1020px){.split[style*="grid-template-columns"]{grid-template-columns:1fr!important}}
/* Touch screens: larger tap areas for small links and controls (padding + matching negative margin keeps the layout). */
@media (pointer:coarse){
  .tlink,.util a,.ftr a:not(.btn),.crumbs a{padding-block:10px;margin-block:-10px}
  .crumbs a{display:inline-block}
  .seg button{min-height:36px;padding:6px 14px}
  .finder select,.finder input{min-height:42px}
  main ul:not([class]) a,main .stack>a:not([class]),aside a:not([class]),.check a,.note a{display:inline-block;padding-block:10px;margin-block:-10px}
  .dot{position:relative}
  .dot::after{content:"";position:absolute;inset:-16px -5px}
}

/* ---- Resource guide cards: photo with the guide number as a badge -------------------------------- */
.res-art.has-photo{padding:0;align-items:flex-end;box-shadow:0 1px 2px rgba(16,49,83,.05)}
.res-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.res-art.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,34,61,.45),rgba(10,34,61,0) 55%)}
.res-art.has-photo b{position:relative;z-index:1;margin:14px;font-size:14px;font-weight:700;letter-spacing:.02em;line-height:1;opacity:1;color:var(--navy);background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:7px 11px;border-radius:999px}
.res:hover .res-photo{transform:scale(1.05)}
@media (prefers-reduced-motion:reduce){.res-photo{transition:none}.res:hover .res-photo{transform:none}}
/* The hero container's own padding shorthand (72px 0 64px) cancelled .wrap's side gutter, so on phones and
   tablets the hero text, buttons and finder ran edge to edge. */
.hero-in{padding-left:var(--gutter);padding-right:var(--gutter)}
/* Narrow phones: grid columns may shrink below their longest word/button, long button labels wrap,
   and the hero's floating "study plan" card stays inside the screen. */
.with-aside>*,.split>*,.c-hero-grid>*{min-width:0}
@media (max-width:720px){.hero .float{right:8px!important;max-width:calc(100% - 16px)}}
@media (max-width:360px){.btn{white-space:normal;text-align:center;height:auto;min-height:48px;padding-top:10px;padding-bottom:10px;line-height:1.3}}
