:root {
  --site-navy: #111a2e;
  --site-navy-2: #1f2b45;
  --site-header: #1c1d20;
  --site-orange: #df8614;
  --site-orange-dark: #b86606;
  --site-ink: #172033;
  --site-muted: #596579;
  --site-line: #dfe5ee;
  --site-surface: #ffffff;
  --site-focus: #f2a529;
  --site-shadow: 0 12px 34px rgba(17, 26, 46, 0.12);
}

html {
  min-width: 320px;
  scroll-padding-top: 96px;
  text-size-adjust: 100%;
}

body {
  min-width: 320px;
  color: var(--site-ink);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img,
svg,
video,
canvas {
  max-width: 100%;
}

main :where(h1, h2, h3) {
  text-wrap: balance;
}

main :where(p, li) {
  text-wrap: pretty;
}

::selection {
  color: var(--site-navy);
  background: #f7cf92;
}

.site-skip-link {
  position: fixed;
  top: 10px;
  left: 10px;
  z-index: 100000;
  padding: 12px 16px;
  border-radius: 10px;
  color: #ffffff;
  background: var(--site-navy);
  box-shadow: var(--site-shadow);
  font: 700 0.95rem/1.2 Inter, system-ui, sans-serif;
  text-decoration: none;
  transform: translateY(-160%);
  transition: transform 180ms ease;
}

.site-skip-link:focus {
  color: #ffffff;
  transform: translateY(0);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--site-focus) !important;
  outline-offset: 3px !important;
}

:where(button, input, select, textarea) {
  font: inherit;
}

:where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]), select, textarea) {
  min-height: 46px;
}

:where(button, [role="button"], .cmn-btn, .ad-btn) {
  touch-action: manipulation;
}

:where(.cmn-btn, .ad-btn, .btn, button) {
  transition-duration: 180ms !important;
}

/* One dependable marketing-site header across legacy page families. */
body:not(.home-page) .header-section {
  position: sticky;
  top: 0;
  z-index: 1000;
  min-height: 84px;
}

body:not(.home-page) .header-section .one__header {
  min-height: 84px;
  padding: 0 !important;
  background: var(--site-header) !important;
}

body:not(.home-page) .header-section .one__header.header-fixed {
  top: 0;
  position: static !important;
  background: rgba(28, 29, 32, 0.97) !important;
  box-shadow: 0 10px 32px rgba(7, 20, 49, 0.2);
  backdrop-filter: blur(14px);
}

/* Optional lead context stays available without making the first step feel long. */
.ad-form-more {
  border: 1px solid var(--site-line);
  border-radius: 14px;
  background: #f8fafc;
}

.ad-form-more > summary {
  display: flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  color: var(--site-ink);
  font-size: 0.9rem;
  font-weight: 750;
  list-style: none;
  cursor: pointer;
}

.ad-form-more > summary::-webkit-details-marker {
  display: none;
}

.ad-form-more > summary::after {
  color: var(--site-orange-dark);
  content: "+";
  font-size: 1.25rem;
  line-height: 1;
}

.ad-form-more[open] > summary::after {
  content: "−";
}

.ad-form-more > summary span {
  margin-left: auto;
  color: var(--site-muted);
  font-size: 0.74rem;
  font-weight: 650;
  text-transform: uppercase;
}

.ad-form-more__fields {
  display: grid;
  gap: 10px;
  border-top: 1px solid var(--site-line);
  padding: 14px;
}

/* Search-answer trust block used on research and admissions guides. */
.ae-source-note {
  margin: clamp(28px, 5vw, 52px) 0;
  padding: clamp(20px, 4vw, 30px);
  border: 1px solid #d7dfeb;
  border-left: 4px solid #d06a00;
  border-radius: 16px;
  background: #f8fafc;
  color: #24344d;
}

.ae-source-note h2 {
  margin: 0 0 10px;
  color: #0f1f3a;
  font-size: clamp(1.25rem, 2.6vw, 1.6rem);
}

.ae-source-note p {
  margin: 0 0 12px;
}

.ae-source-note ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 1.2rem;
}

.ae-source-note a {
  color: #9a4d00;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

body:not(.home-page) .header-section .navbar-custom,
body:not(.home-page) .header-section .navbar-toggle-item > div {
  min-height: 84px;
}

body:not(.home-page) .header-section .navbar-brand.logo,
body:not(.home-page) .header-section .main-navbar .nav-brand {
  flex: 0 0 auto;
}

body:not(.home-page) .header-section .navbar-brand.logo img,
body:not(.home-page) .header-section .main-navbar .nav-brand img {
  display: block;
  width: auto !important;
  height: 48px;
  object-fit: contain;
}

body:not(.home-page) .header-section .custom-nav > .menu-item > :is(a, button) {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: #ffffff;
  line-height: 1.25;
}

body:not(.home-page) .header-section .custom-nav > .menu-item > :is(a, button):hover,
body:not(.home-page) .header-section .custom-nav > .menu-item > :is(a, button):focus-visible,
body:not(.home-page) .header-section .custom-nav > .menu-item > :is(a, button).active {
  color: #f4a12f !important;
}

body:not(.home-page) .header-section .sub-menu {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: var(--site-header) !important;
  box-shadow: var(--site-shadow);
}

body:not(.home-page) .header-section .custom-nav > li:last-child .sub-menu {
  right: 0 !important;
  left: auto !important;
}

body:not(.home-page) > header.one__header,
body:not(.home-page) .guide-header,
body:not(.home-page) .site-head,
.site-mini-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  border-bottom: 1px solid var(--site-line);
  background: rgba(255, 255, 255, 0.96) !important;
  box-shadow: 0 6px 22px rgba(17, 26, 46, 0.08);
  backdrop-filter: blur(14px);
}

body:not(.home-page) > header.one__header .navbar-brand img,
body:not(.home-page) .guide-header img {
  display: block;
  width: auto !important;
  height: 52px;
  object-fit: contain;
}

body:not(.home-page) .guide-header {
  min-height: 76px;
  padding: 10px max(18px, calc((100vw - 1180px) / 2));
}

body:not(.home-page) .guide-header nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  color: var(--site-navy);
  font-weight: 700;
}

body:not(.home-page) .site-head {
  background: rgba(28, 29, 32, 0.98) !important;
}

.site-head > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.site-simple-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}

.site-simple-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border-radius: 999px;
  padding: 8px 12px;
  color: var(--site-navy);
  font-weight: 700;
  text-decoration: none;
}

.site-simple-nav a:hover {
  color: var(--site-orange-dark);
  background: #f4f6f9;
}

.site-head .site-simple-nav a {
  color: #ffffff;
}

.site-head .site-simple-nav a:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, 0.12);
}

.hub-hero :where(h1, p) {
  color: #ffffff !important;
}

.guide-meta a {
  color: #174ea6 !important;
}

.stats-band .big-num.stat-word {
  font-size: clamp(1.1rem, 2vw, 1.65rem) !important;
  line-height: 1.15 !important;
}

.tool-page .trust-strip,
.tool-page .trust-strip span {
  color: #ffffff !important;
}

.tool-page #geo-tool-module h2 {
  font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
  line-height: 1.1 !important;
}

.tool-page #geo-tool-module {
  margin: 1.25rem 0 2rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid #dbe4f0;
  border-radius: 1.25rem;
  background: #f8fafc;
}

.tool-page #geo-tool-module p {
  margin: 0 0 .8rem;
  color: #475569;
}

.tool-page #geo-tool-module ol {
  display: grid;
  gap: .45rem;
  margin: 0;
  padding-left: 1.35rem;
  list-style: decimal;
}

.tool-page #geo-tool-module li {
  padding-left: .2rem;
}

.ielts-speaking-guide-page .chapter-nav .container,
.ielts-speaking-guide-page .chapter-tabs {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.ielts-speaking-guide-page .chapter-nav .container {
  overflow: hidden;
}

.ielts-speaking-guide-page .chapter-tabs {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.ielts-speaking-guide-page .chapter-tab {
  min-height: 44px;
}

.ielts-speaking-guide-page .header-section {
  overflow-x: clip;
}

@media (min-width: 992px) and (max-width: 1100px) {
  .ielts-speaking-guide-page .header-section .custom-nav {
    gap: 8px !important;
  }

  .ielts-speaking-guide-page .header-section .custom-nav > li:has(> a[href*="about"]),
  .ielts-speaking-guide-page .header-section .custom-nav > li:has(> a[href*="blog"]) {
    display: none !important;
  }
}

.site-mini-header {
  display: flex;
  min-height: 76px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 10px max(18px, calc((100vw - 1140px) / 2));
}

.site-mini-header__brand {
  display: inline-flex;
  align-items: center;
}

.site-mini-header__brand img {
  width: auto;
  height: 50px;
}

.site-mini-header__nav {
  display: flex;
  align-items: center;
  gap: 6px;
}

.site-mini-header__nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  border-radius: 999px;
  padding: 8px 13px;
  color: var(--site-navy);
  font-weight: 750;
  text-decoration: none;
}

.site-mini-header__nav a:last-child {
  color: #15110a;
  background: var(--site-orange);
}

.site-mini-header__nav a:hover {
  background: #f3f5f8;
}

.site-mini-header__nav a:last-child:hover {
  background: #ef9a2a;
}

:where(.card, .post, .course-v8item, .ad-card, .hub-section) {
  transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

@media (hover: hover) and (pointer: fine) {
  :where(.card, .post, .course-v8item, .ad-card, .hub-section):hover {
    transform: translateY(-2px);
  }
}

.site-intro {
  animation: site-intro-rise 560ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes site-intro-rise {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (min-width: 992px) {
  body:not(.home-page) .header-section .header__topone {
    display: none !important;
  }

  body:not(.home-page) .header-section .navbar-toggle-item > div {
    gap: clamp(18px, 2vw, 34px) !important;
    margin-top: 0 !important;
  }

  body:not(.home-page) .header-section .navbar-brand.logo {
    display: block !important;
    width: 118px;
    min-width: 118px;
  }

  body:not(.home-page) .header-section .custom-nav {
    gap: clamp(10px, 1.25vw, 22px) !important;
  }

  body:not(.home-page) .header-section .custom-nav > .menu-item > :is(a, button) {
    padding: 6px 0;
    font-size: clamp(0.78rem, 0.9vw, 0.94rem);
  }
}

@media (min-width: 992px) and (max-width: 1499px) {
  body:not(.home-page) .header-section .custom-nav > li:has(> a[href="/careers"]),
  body:not(.home-page) .header-section .custom-nav > li:has(> a[href$="careers.html"]) {
    display: none !important;
  }
}

@media (min-width: 992px) and (max-width: 1199px) {
  body:not(.home-page) .header-section .custom-nav > li:has(> a[href="/student-stories"]),
  body:not(.home-page) .header-section .custom-nav > li:has(> a[href$="student-stories.html"]),
  body:not(.home-page) .header-section .custom-nav > li:has(> a[href="/blog/"]) {
    display: none !important;
  }
}

@media (max-width: 991px) {
  body:not(.home-page) .header-section {
    min-height: 78px;
  }

  body:not(.home-page) .header-section .header__topone {
    display: none !important;
  }

  body:not(.home-page) .header-section .one__header {
    min-height: 78px;
    padding: 13px 0 !important;
  }

  body:not(.home-page) .header-section .main-navbar,
  body:not(.home-page) .header-section .navbar-custom {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  body:not(.home-page) .header-section .navbar-custom {
    min-height: 52px;
  }

  body:not(.home-page) .header-section .main-navbar .nav-brand img {
    height: 48px;
  }

  body:not(.home-page) .header-section .navbar-toggle-btn {
    width: 48px;
    min-width: 48px;
    height: 48px;
  }

  body:not(.home-page) .header-section .navbar-toggle-item {
    max-height: calc(100dvh - 78px);
    background: var(--site-header) !important;
    box-shadow: 0 18px 34px rgba(7, 20, 49, 0.22);
  }

  .site-mini-header {
    min-height: 70px;
    padding: 9px 14px;
  }

  .site-mini-header__brand img {
    height: 44px;
  }

  .site-mini-header__nav a:not(:last-child) {
    display: none;
  }
}

@media (max-width: 767px) {
  .site-simple-nav {
    display: none;
  }
}

@media (max-width: 560px) {
  main :where(p, li) {
    font-size: max(1rem, 16px);
  }

  :where(.ad-button-row, .d-flex.flex-wrap) > :where(.ad-btn, .cmn-btn) {
    min-height: 48px;
  }

  .bottom-fixbar {
    bottom: max(12px, env(safe-area-inset-bottom)) !important;
  }

  .tool-page .trust-strip {
    display: grid !important;
    gap: 2px !important;
    padding: 8px 14px !important;
    text-align: center;
  }

  .tool-page .header-section > .container > .d-flex {
    gap: 8px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
  }

  .tool-page .header-section a[href*="wa.me"] {
    padding: 8px 11px !important;
    font-size: 0.78rem !important;
    line-height: 1.2 !important;
  }

  .tool-page .header-section a[href*="contact-us"] {
    display: none !important;
  }

  .tool-page #geo-tool-module {
    padding: 20px !important;
  }

  .tool-page #geo-tool-module h2 {
    font-size: 1.75rem !important;
  }

  .aidmap-page .topbar {
    padding: 10px 0 !important;
  }

  .aidmap-page .topbar-inner {
    gap: 10px !important;
  }

  .aidmap-page .topbar-actions {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 8px !important;
    width: 100%;
  }

  .aidmap-page .topbar-actions :where(a, button) {
    min-height: 46px;
    padding: 9px 12px !important;
  }

  .aidmap-page .topbar-actions .pill {
    display: none !important;
  }

  .aidmap-page .modal-close {
    display: inline-flex;
    min-width: 64px;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 8px 12px !important;
  }

  .ap-psych-diagnostic-page .topbar {
    display: grid !important;
    grid-template-columns: 1fr;
    position: static;
    gap: 10px;
    align-items: flex-start;
  }

  .ap-psych-diagnostic-page .topbar .brand {
    width: 100%;
  }

  .ap-psych-diagnostic-page .brand-copy p {
    display: none;
  }

  .ap-psych-diagnostic-page .topbar-right {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
  }

  .ap-psych-diagnostic-page .topbar-right .pill {
    width: auto !important;
    min-width: 0 !important;
    min-height: 44px;
    justify-content: center;
    padding: 7px !important;
    font-size: .75rem;
    text-align: center;
  }

  .ap-psych-diagnostic-page .topbar-right .pill span {
    display: none;
  }

  .ap-psych-diagnostic-page #geo-tool-module {
    margin-top: 16px;
    padding: 20px !important;
    border: 1px solid #dbe4f0;
    border-radius: 18px;
    background: #f8fafc !important;
    text-align: left;
  }

  .ap-psych-diagnostic-page #geo-tool-module ol {
    padding-left: 1.4rem;
    text-align: left !important;
  }

  .mini-gre-diagnostic-page .brand-bar {
    grid-template-columns: 74px 1fr !important;
    gap: 10px !important;
  }

  .mini-gre-diagnostic-page .brand-logo img {
    width: 74px !important;
    height: auto !important;
  }

  .mini-gre-diagnostic-page .header-actions {
    grid-column: 1 / -1;
    display: flex !important;
    gap: 8px;
  }

  .gre-gmat-diagnostic-page header.hero {
    padding-top: 34px !important;
    padding-bottom: 34px !important;
  }

  .gre-gmat-diagnostic-page header.hero h1 {
    font-size: clamp(1.8rem, 8vw, 2.25rem);
  }
}

@media (pointer: coarse) {
  header :where(a, button),
  footer :where(a, button) {
    min-height: 44px;
  }
}

footer button,
footer [role="button"],
.footer__four button {
  min-width: 44px;
  min-height: 44px;
}

.footer__four .btn__v4 {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
}

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

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  .site-intro {
    animation: none !important;
  }
}
