/* ==========================================================================
   KalakritTranslations.com
   Legal translation for Indian law firms and legal teams.

   Visual direction, from the content brief: formal and restrained. Deep navy
   with one muted accent, a serif for headings, a clean sans for body text,
   generous white space. No stock legal imagery anywhere: no gavels, no
   scales, no handshakes.
   ========================================================================== */

:root {
  /* Surfaces */
  --ink:        #121A2E;   /* deep navy, headings and dark sections */
  --ink-2:      #1B2540;   /* raised panels on dark */
  --ink-soft:   #4A5265;   /* body text */
  --ink-faint:  #7C8498;   /* captions, meta */
  --paper:      #F6F7F4;   /* page background */
  --white:      #FFFFFF;
  --rule:       #DFE1DA;   /* hairlines */
  --rule-soft:  #EDEEE9;

  /* The one accent: a muted brass, the colour of a seal on an affidavit */
  --accent:     #8C6D2F;
  --accent-soft:#EFE7D6;
  --accent-deep:#6B5223;

  --danger:     #93261C;
  --focus:      #8C6D2F;

  /* Type */
  --serif: "Spectral", Georgia, "Times New Roman", serif;
  --sans: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --scripts: "Noto Sans Devanagari", "Noto Sans Bengali", "Noto Sans Tamil", "Noto Sans Telugu",
    "Noto Sans Gujarati", "Noto Sans Kannada", "Noto Sans Malayalam", "Noto Sans Gurmukhi",
    "Noto Sans Oriya", "Noto Naskh Arabic", "Noto Sans", sans-serif;

  /* Layout */
  --wrap: 1140px;
  --gutter: clamp(18px, 4vw, 44px);
  --radius: 6px;

  --lift: 0 1px 2px rgba(18,26,46,.05), 0 10px 24px -16px rgba(18,26,46,.30);
  --ease: cubic-bezier(.22,.61,.36,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 1.0625rem/1.7 var(--sans);
  -webkit-font-smoothing: antialiased;
}
img, svg { display: block; max-width: 100%; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
::selection { background: var(--accent-soft); color: var(--ink); }

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter); }
.narrow { max-width: 760px; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 10px 18px; z-index: 60; border-radius: var(--radius); }
.skip:focus { left: 10px; }

/* --- Typography ---------------------------------------------------------- */
h1, h2, h3, h4 { font-family: var(--serif); font-weight: 500; line-height: 1.18; margin: 0 0 .5em; letter-spacing: -0.012em; text-wrap: balance; }
h1 { font-size: clamp(2.1rem, 4.2vw, 3.2rem); line-height: 1.12; }
h2 { font-size: clamp(1.6rem, 2.7vw, 2.15rem); }
h3 { font-size: 1.22rem; letter-spacing: -0.005em; }
h4 { font-size: 1.05rem; font-family: var(--sans); font-weight: 700; }
p { margin: 0 0 1.1em; max-width: 68ch; text-wrap: pretty; }
.lede { font-size: clamp(1.08rem, 1.4vw, 1.22rem); color: var(--ink-soft); line-height: 1.62; }
.kicker { display: inline-flex; align-items: center; gap: 12px; font-size: .92rem; font-weight: 600; color: var(--accent); margin: 0 0 16px; }
.kicker::before { content: ""; width: 28px; height: 1px; background: var(--accent); }
.note { font-size: .92rem; color: var(--ink-faint); }

/* --- Header -------------------------------------------------------------- */
.site-header { background: rgba(246,247,244,.95); backdrop-filter: saturate(140%) blur(8px); border-bottom: 1px solid var(--rule); position: sticky; top: 0; z-index: 50; }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 76px; position: relative; }
.brand { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.brand-mark { width: auto; height: 40px; flex: none; }
.brand-name { display: block; line-height: 1; }
.brand-word { width: auto; height: 18px; display: block; }
.brand-name span { display: block; font-size: .66rem; font-weight: 600; color: var(--ink-faint); margin-top: 6px; letter-spacing: .08em; }

.nav { display: flex; align-items: center; gap: 2px; }
.nav > a, .nav-trigger { font: 500 .96rem var(--sans); color: var(--ink); text-decoration: none; padding: 10px 13px; border: 0; background: none; cursor: pointer; border-radius: var(--radius); position: relative; }
.nav > a::after, .nav-trigger::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: 5px; height: 1.5px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.nav > a:hover::after, .nav-trigger:hover::after { transform: scaleX(1); }
.nav > a[aria-current="page"]::after { transform: scaleX(1); background: var(--ink); }
.nav a.btn { margin-left: 10px; background: var(--ink); color: #fff; border: 1px solid var(--ink); }
.nav a.btn:hover { background: #1F2B49; border-color: #1F2B49; }
.nav a.btn::after { display: none; }
.nav a.btn[aria-current="page"] { background: var(--accent-deep); border-color: var(--accent-deep); }

/* Services dropdown */
.has-menu { position: relative; }
.nav-trigger[aria-expanded="true"]::after { transform: scaleX(1); }
.nav-menu {
  position: absolute; top: calc(100% + 10px); left: 0; min-width: 330px;
  background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius);
  box-shadow: var(--lift); padding: 10px; display: none; flex-direction: column;
}
.nav-menu[data-open="true"] { display: flex; }
.nav-menu a { text-decoration: none; padding: 11px 14px; border-radius: var(--radius); display: block; }
.nav-menu a:hover { background: var(--paper); }
.nav-menu b { display: block; font-size: .96rem; font-weight: 600; }
.nav-menu span { display: block; font-size: .85rem; color: var(--ink-faint); margin-top: 2px; }

.nav-toggle { display: none; background: none; border: 1px solid var(--rule); border-radius: var(--radius); padding: 10px 14px; font: 500 .95rem var(--sans); color: inherit; cursor: pointer; }

/* Urgent contact line, as the brief asks: a human, not a form */
.urgent-bar { background: var(--ink); color: #E6E8EE; font-size: .9rem; }
.urgent-bar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; }
.urgent-bar a { color: #fff; font-weight: 600; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.35); }
.urgent-bar a:hover { border-bottom-color: #fff; }
.urgent-bar span { color: #A8AEBE; }

/* --- Buttons ------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font: 600 1rem/1 var(--sans); padding: 15px 26px; border-radius: var(--radius);
  border: 1px solid var(--ink); background: var(--ink); color: #fff; text-decoration: none; cursor: pointer;
  transition: background-color .22s var(--ease), border-color .22s var(--ease), color .22s var(--ease);
}
.btn:hover { background: #1F2B49; border-color: #1F2B49; }
.btn.ghost { background: transparent; color: var(--ink); border-color: var(--rule); }
.btn.ghost:hover { background: var(--white); border-color: var(--ink); color: var(--ink); }
.btn.light { background: #fff; border-color: #fff; color: var(--ink); }
.btn.light:hover { background: var(--accent-soft); border-color: var(--accent-soft); }
.btn.small { padding: 11px 18px; font-size: .94rem; }
.btn[disabled] { opacity: .6; cursor: progress; }

.actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

/* --- Sections ------------------------------------------------------------ */
section { padding: clamp(54px, 7vw, 92px) 0; }
.section-head { max-width: 760px; margin-bottom: clamp(28px, 3.6vw, 44px); }
.section-head p:last-child { margin-bottom: 0; }
.surface-white { background: var(--white); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.surface-dark { background: var(--ink); color: #D9DDE6; }
.surface-dark h2, .surface-dark h3 { color: #fff; }
.surface-dark p { color: #B8BECD; }
.surface-dark .kicker { color: #C7A978; }

/* --- Hero ---------------------------------------------------------------- */
.hero { background: var(--white); border-bottom: 1px solid var(--rule); padding: clamp(52px, 7vw, 96px) 0 clamp(44px, 5vw, 72px); }
.hero > .wrap:first-of-type { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.hero.compact > .wrap:first-of-type { display: block; }
.hero.compact { padding: clamp(44px, 5.5vw, 76px) 0 clamp(36px, 4vw, 56px); }
.hero.compact .lede { max-width: 72ch; }
.breadcrumb { font-size: .86rem; color: var(--ink-faint); margin: 0 0 18px; }
.breadcrumb a { text-decoration: none; }
.breadcrumb a:hover { text-decoration: underline; }
.hero h1 { margin-bottom: .4em; }
.hero-meta { margin-top: 30px; padding-top: 22px; border-top: 1px solid var(--rule); font-size: .95rem; color: var(--ink-soft); }
.hero-meta b { color: var(--ink); }

/* The document panel: a plain page with its translation beside it, the one
   visual the brief allows. Drawn, never photographed. */
.doc-panel { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--radius); padding: 26px; }
.doc-panel-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 1px solid var(--rule); }
.doc-panel-head h2 { font-family: var(--sans); font-size: .95rem; font-weight: 700; margin: 0; }
.doc-panel-head span { font-size: .82rem; color: var(--ink-faint); }
.doc-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.doc-side { background: var(--white); border: 1px solid var(--rule); border-radius: 4px; padding: 18px; }
.doc-side p.label { font-size: .74rem; font-weight: 700; color: var(--ink-faint); margin: 0 0 12px; letter-spacing: .06em; }
.doc-line { height: 7px; border-radius: 3px; background: #DDE0DA; margin-bottom: 9px; }
.doc-line.short { width: 58%; }
.doc-line.mid { width: 82%; }
.doc-script { font-family: var(--scripts); font-size: 1.05rem; color: var(--ink); margin: 0 0 10px; line-height: 1.5; }
.doc-seal { margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--rule); font-size: .78rem; color: var(--accent); font-weight: 600; }

/* --- Trust strip --------------------------------------------------------- */
.trust { background: var(--white); border-bottom: 1px solid var(--rule); padding: 28px 0; }
.trust .wrap { display: flex; align-items: center; gap: 36px; flex-wrap: wrap; }
.trust p { margin: 0; font-size: .9rem; color: var(--ink-faint); font-weight: 600; }
.trust ul { list-style: none; display: flex; flex-wrap: wrap; gap: 36px; margin: 0; padding: 0; }
.trust li { font-family: var(--serif); font-size: 1.22rem; color: var(--ink); }

/* --- Cards --------------------------------------------------------------- */
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cards.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card {
  background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius);
  padding: 30px 30px 32px; display: flex; flex-direction: column; gap: 10px;
  text-decoration: none; transition: border-color .22s var(--ease), box-shadow .22s var(--ease);
}
a.card:hover { border-color: var(--ink); box-shadow: var(--lift); }
.card h3 { margin: 0; }
.card p { margin: 0; font-size: .97rem; color: var(--ink-soft); }
.card .more { margin-top: auto; padding-top: 14px; font-size: .92rem; font-weight: 600; color: var(--accent); }

/* --- Steps --------------------------------------------------------------- */
.steps { list-style: none; counter-reset: step; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.steps li { counter-increment: step; padding-top: 22px; border-top: 1px solid var(--ink); }
.steps li::before { content: counter(step, decimal-leading-zero); display: block; font-family: var(--serif); font-size: 1.1rem; color: var(--accent); margin-bottom: 10px; }
.steps h3 { font-size: 1.08rem; margin-bottom: .35em; }
.steps p { font-size: .95rem; color: var(--ink-soft); margin: 0; }

/* --- Pillars ------------------------------------------------------------- */
.pillars { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; }
.pillar { padding-top: 20px; border-top: 1px solid rgba(255,255,255,.22); }
.pillar h3 { font-size: 1.12rem; margin-bottom: .4em; }
.pillar p { font-size: .95rem; margin: 0; }
.pillar .proof { display: block; margin-top: 12px; font-size: .86rem; color: #9BA3B6; }

/* --- Lists --------------------------------------------------------------- */
.checks { list-style: none; margin: 0; padding: 0; }
.checks li { padding: 13px 0 13px 30px; border-bottom: 1px solid var(--rule); position: relative; }
.checks li::before { content: ""; position: absolute; left: 2px; top: 21px; width: 11px; height: 6px; border-left: 1.5px solid var(--accent); border-bottom: 1.5px solid var(--accent); transform: rotate(-45deg); }
.plain-list { list-style: none; margin: 0; padding: 0; }
.plain-list li { padding: 11px 0; border-bottom: 1px solid var(--rule-soft); font-size: 1rem; }

/* --- Tables -------------------------------------------------------------- */
.table-scroll { overflow-x: auto; }
table.doc-table { width: 100%; border-collapse: collapse; background: var(--white); border: 1px solid var(--rule); min-width: 560px; }
.doc-table th, .doc-table td { text-align: left; padding: 16px 20px; border-bottom: 1px solid var(--rule-soft); vertical-align: top; }
.doc-table thead th { font-size: .84rem; font-weight: 700; color: var(--ink-faint); background: var(--paper); border-bottom: 1px solid var(--rule); letter-spacing: .03em; }
.doc-table tbody th { font-family: var(--serif); font-weight: 600; font-size: 1.02rem; width: 34%; }
.doc-table td { color: var(--ink-soft); font-size: .97rem; }
.doc-table tbody tr:last-child th, .doc-table tbody tr:last-child td { border-bottom: 0; }

/* --- Two column ---------------------------------------------------------- */
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: start; }
.panel { background: var(--white); border: 1px solid var(--rule); border-left: 3px solid var(--accent); border-radius: 0 var(--radius) var(--radius) 0; padding: 26px 30px; }
.panel h3 { margin-bottom: .4em; }
.panel p:last-child { margin-bottom: 0; }

/* --- FAQ ----------------------------------------------------------------- */
.faq { max-width: 820px; }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { font-weight: 600; cursor: pointer; padding: 20px 46px 20px 0; position: relative; list-style: none; font-size: 1.04rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 9px; height: 9px; border-right: 1.5px solid var(--ink-faint); border-bottom: 1.5px solid var(--ink-faint); transform: translateY(-70%) rotate(45deg); transition: transform .25s var(--ease); }
.faq details[open] summary::after { transform: translateY(-20%) rotate(-135deg); }
.faq details p { padding-bottom: 20px; color: var(--ink-soft); margin-bottom: 0; }

/* --- Languages ----------------------------------------------------------- */
.lang-controls { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-bottom: 26px; }
.lang-search { position: relative; flex: 1 1 280px; max-width: 360px; }
.lang-search input { width: 100%; font: inherit; font-size: 1rem; padding: 13px 15px 13px 42px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--white); color: var(--ink); }
.lang-search input:focus { border-color: var(--ink); outline: none; box-shadow: 0 0 0 3px rgba(140,109,47,.16); }
.lang-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; color: var(--ink-faint); }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font: 500 .9rem/1 var(--sans); padding: 10px 15px; border-radius: 999px; border: 1px solid var(--rule); background: var(--white); color: var(--ink-soft); cursor: pointer; }
.chip:hover { border-color: var(--ink-faint); color: var(--ink); }
.chip[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }
.lang-count { margin-left: auto; font-size: .9rem; color: var(--ink-faint); }
.lang-block { margin-bottom: 40px; }
.lang-block:last-child { margin-bottom: 0; }
.lang-block h3 { margin-bottom: .25em; }
.lang-block .note { margin-bottom: 16px; }
.lang-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.lang-item { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 14px 16px; display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.lang-item b { font-weight: 600; font-size: .98rem; }
.lang-item span { font-family: var(--scripts); font-size: 1.02rem; color: var(--ink-faint); }
.lang-empty { padding: 26px 0; color: var(--ink-soft); }
.script-row { display: flex; flex-wrap: wrap; gap: 10px 26px; font-family: var(--scripts); font-size: clamp(1.2rem, 2vw, 1.6rem); color: var(--ink); }
.script-row span { color: var(--ink-faint); }

/* --- Forms --------------------------------------------------------------- */
.form-shell { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: clamp(26px, 4vw, 48px); align-items: start; }
form.quote { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: clamp(24px, 3vw, 40px); }
fieldset { border: 0; padding: 0; margin: 0 0 32px; min-width: 0; }
fieldset:last-of-type { margin-bottom: 22px; }
legend { font-family: var(--serif); font-size: 1.2rem; font-weight: 600; padding: 0 0 12px; margin-bottom: 18px; width: 100%; border-bottom: 1px solid var(--rule-soft); }
.row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { margin-bottom: 18px; }
.field label, .field .label { display: block; font-weight: 600; font-size: .94rem; margin-bottom: 7px; }
.field .hint { font-size: .85rem; color: var(--ink-faint); margin-top: 6px; }
.req { color: var(--danger); }
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], select, textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper);
  border: 1px solid var(--rule); border-radius: var(--radius); padding: 12px 13px;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease);
}
input:hover, select:hover, textarea:hover { border-color: var(--ink-faint); }
input:focus, select:focus, textarea:focus { border-color: var(--ink); background: #fff; outline: none; box-shadow: 0 0 0 3px rgba(140,109,47,.16); }
textarea { min-height: 112px; resize: vertical; }
input[type="file"] { font: inherit; font-size: .95rem; width: 100%; padding: 18px; border: 1px dashed var(--rule); border-radius: var(--radius); background: var(--paper); cursor: pointer; }
input[type="file"]:hover { border-color: var(--ink-faint); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--danger); background: #FDF5F4; }
.checkline { display: flex; gap: 11px; align-items: flex-start; font-size: .96rem; margin-bottom: 12px; }
.checkline input { margin-top: 5px; accent-color: var(--ink); width: 17px; height: 17px; flex: none; }
.checkline label { font-weight: 400; cursor: pointer; }
.target-langs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 14px; max-height: 280px; overflow-y: auto; border: 1px solid var(--rule); border-radius: var(--radius); padding: 14px 16px; background: var(--paper); }
.target-langs .group-title { grid-column: 1 / -1; font-weight: 700; font-size: .82rem; color: var(--ink-faint); margin: 14px 0 6px; padding-top: 12px; border-top: 1px solid var(--rule); }
.target-langs .group-title:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.target-langs label { display: flex; align-items: center; gap: 9px; font-size: .94rem; padding: 5px 0; cursor: pointer; }
.target-langs input { accent-color: var(--ink); width: 16px; height: 16px; }

.side-card { background: var(--white); border: 1px solid var(--rule); border-radius: var(--radius); padding: 26px 28px; margin-bottom: 18px; }
.side-card h2 { font-size: 1.15rem; }
.side-card p { font-size: .95rem; color: var(--ink-soft); }
.side-card p:last-child { margin-bottom: 0; }
.side-card.dark { background: var(--ink); border-color: var(--ink); }
.side-card.dark h2 { color: #fff; }
.side-card.dark p { color: #B8BECD; }
.side-card.dark a { color: #fff; font-weight: 600; }

.form-error { color: var(--danger); font-size: .88rem; margin-top: 7px; }
.form-status { margin-top: 20px; padding: 18px 20px; border-radius: var(--radius); display: none; }
.form-status.ok { display: block; background: var(--accent-soft); border: 1px solid var(--accent); }
.form-status.err { display: block; background: #FBEDEC; border: 1px solid var(--danger); }
.form-status h3 { margin-bottom: .35em; }
.form-status p:last-child { margin-bottom: 0; }

/* --- CTA ----------------------------------------------------------------- */
.cta { background: var(--ink); color: #fff; padding: clamp(46px, 6vw, 76px) 0; }
.cta > .wrap:first-of-type { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 26px; }
.cta h2 { color: #fff; margin-bottom: .3em; }
.cta p { color: #B8BECD; margin: 0; max-width: 54ch; }

/* --- Footer -------------------------------------------------------------- */
.site-footer { background: var(--white); border-top: 1px solid var(--rule); padding: 54px 0 32px; font-size: .95rem; }
.site-footer .cols { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1fr; gap: 34px; }
.site-footer h3 { font-family: var(--sans); font-size: .9rem; font-weight: 700; margin-bottom: .9em; letter-spacing: .02em; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: 9px; }
.site-footer a { text-decoration: none; color: var(--ink-soft); }
.site-footer a:hover { color: var(--ink); text-decoration: underline; }
.site-footer .positioning { color: var(--ink-soft); max-width: 40ch; margin: 0; }
.fine { margin-top: 36px; padding-top: 20px; border-top: 1px solid var(--rule); color: var(--ink-faint); font-size: .84rem; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }

/* --- Motion: minimal, and never hiding content if the script fails -------- */
.reveals [data-reveal] { opacity: 0; transform: translateY(8px); }
.reveals [data-reveal].in { opacity: 1; transform: none; transition: opacity .5s var(--ease), transform .5s var(--ease); }

/* --- Responsive ---------------------------------------------------------- */
@media (max-width: 1000px) {
  .hero > .wrap:first-of-type { grid-template-columns: 1fr; }
  .cards, .steps, .pillars { grid-template-columns: 1fr 1fr; }
  .two-col, .form-shell { grid-template-columns: 1fr; }
  .site-footer .cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 780px) {
  .nav-toggle { display: block; }
  .urgent-bar .wrap { justify-content: center; text-align: center; }
  .nav {
    display: none; position: absolute; top: 76px; left: 0; right: 0; background: var(--white);
    border-bottom: 1px solid var(--rule); flex-direction: column; align-items: stretch;
    padding: 12px var(--gutter) 20px; box-shadow: var(--lift);
  }
  .nav.open { display: flex; }
  .nav > a, .nav-trigger { padding: 13px 10px; text-align: left; }
  .nav > a::after, .nav-trigger::after { display: none; }
  .nav .btn { margin: 12px 0 0; }
  .nav-menu { position: static; display: flex; box-shadow: none; border: 0; border-left: 2px solid var(--rule); border-radius: 0; margin: 0 0 6px 10px; padding: 0 0 0 8px; min-width: 0; }
  .nav-menu span { display: none; }
  .cards, .cards.two, .steps, .pillars { grid-template-columns: 1fr; }
  .doc-pair { grid-template-columns: 1fr; }
  .target-langs { grid-template-columns: 1fr 1fr; max-height: none; }
  .row { grid-template-columns: 1fr; }
  .trust ul { gap: 18px 26px; }
}
@media (max-width: 520px) {
  .site-footer .cols { grid-template-columns: 1fr; }
  .target-langs { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
  .reveals [data-reveal] { opacity: 1; transform: none; }
}

@media print {
  .site-header, .urgent-bar, .nav, .btn, .cta { display: none !important; }
  body { background: #fff; }
}
