/* ==========================================================================
   EuroHellenic — Education & Student Services
   assets/css/style.css
   --------------------------------------------------------------------------
   Direction: editorial, not "landing page". Clean white, deep navy ink,
   one accent (Aegean blue), real photographs, rules instead of boxes.
   Radius and shadow are deliberately almost absent.

   1.  Tokens            7.  Page hero + home hero
   2.  Reset & base      8.  Editorial blocks (intro, ledger, index, cities,
   3.  Typography            steps, photo band, pull quote, advisor)
   4.  Layout            9.  Legacy components (cards, stats, calc, acc...)
   5.  Buttons & links   10. Forms
   6.  Header / drawer   11. Footer   12. Motion   13. Responsive
   ========================================================================== */

/* 1. TOKENS ================================================================ */
:root{
  /* Surfaces */
  --bg:          #f8fafc;   /* page */
  --paper:       #eaf1f8;   /* alternate band — pale Aegean */
  --white:       #ffffff;
  --dark:        #0b2a4a;   /* the one dark surface: deep sea navy */
  --dark-2:      #133a63;

  /* Ink */
  --ink:         #0f1d2e;
  --ink-soft:    #3a4a5e;
  --ink-muted:   #55657a;   /* 5.6:1 on --bg */
  --line:        #d3dde8;
  --line-strong: #0f1d2e;
  --on-dark:     #e8eff7;
  --on-dark-soft:#a9bcd0;

  /* The accent. One. */
  --accent:      #0d5eaf;   /* Greek flag blue — 6.4:1 on --bg */
  --accent-dark: #0a4a8a;
  --accent-light:#8cc4f2;   /* for use on --dark only */

  /* Legacy names still referenced by inline styles in page fragments */
  --navy:        var(--ink);
  --navy-700:    var(--dark);
  --navy-600:    var(--dark-2);
  --blue:        var(--accent);
  --gold:        var(--accent);
  --gold-light:  var(--accent-light);
  --gold-ink:    var(--accent);
  --gold-soft:   #dbe9f6;
  --line-warm:   var(--line);
  --sky:         var(--paper);

  /* Type */
  --serif: "Playfair Display", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans:  "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Spacing */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px; --s-5: 24px;
  --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px; --s-10:128px;

  --radius:   2px;
  --radius-lg:2px;
  --shadow-sm: none; --shadow-md: none; --shadow-lg: none;
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);

  --shell: 1240px;
  --gutter: clamp(16px, 4.5vw, 48px);
  --header-h: 72px;
}

/* 2. RESET & BASE ========================================================== */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
  overflow-x:clip;
  font-feature-settings:"kern","liga";
}
img,svg,video{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; }
ul, ol.points, ol.steps{ margin:0; padding:0; }
hr{ border:0; border-top:1px solid var(--line); margin:var(--s-7) 0; }
::selection{ background:var(--gold-soft); color:var(--ink); }

:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.section--navy :focus-visible, .card--navy :focus-visible, .calc__out :focus-visible,
.footer :focus-visible, .drawer :focus-visible, .cta :focus-visible,
.hero :focus-visible, .band :focus-visible{ outline-color:var(--accent-light); }
.cta .form :focus-visible{ outline-color:var(--accent); }

.skip{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--ink); color:#fff; padding:12px 20px; font-size:14px; font-weight:600;
}
.skip:focus{ left:12px; top:12px; }

.progress{ display:none; }

/* 3. TYPOGRAPHY ============================================================ */
h1,h2,h3,h4{
  font-family:var(--serif); font-weight:400; line-height:1.08; margin:0;
  letter-spacing:-.018em; color:var(--ink);
  font-optical-sizing:auto; text-wrap:balance;
}
h1{ font-size:clamp(42px, 6.2vw, 88px); letter-spacing:-.028em; line-height:1.0; }
h2{ font-size:clamp(32px, 4.2vw, 56px); letter-spacing:-.024em; }
h3{ font-size:clamp(21px, 2vw, 26px); line-height:1.2; letter-spacing:-.01em; }
h4{ font-size:19px; line-height:1.3; }
h1 em, h2 em{ font-style:italic; }
p{ margin:0 0 var(--s-4); text-wrap:pretty; }
p:last-child{ margin-bottom:0; }

/* Small label. Plain, set in mono, no decorative dash. */
.eyebrow, .label{
  font-family:var(--mono);
  font-size:12px; font-weight:500; letter-spacing:.06em; text-transform:uppercase;
  color:var(--accent); margin:0 0 var(--s-4); display:block;
}
.eyebrow--light{ color:var(--accent-light); }
.eyebrow--center{ text-align:center; }

.lead{ font-size:clamp(18px,1.55vw,21px); line-height:1.55; color:var(--ink-soft); }
.lead--light{ color:var(--on-dark-soft); }
.muted{ color:var(--ink-muted); }
.small{ font-size:14px; line-height:1.55; }
.tiny{ font-size:13px; line-height:1.55; color:var(--ink-muted); }
.serif-em{ font-style:italic; color:var(--accent); }
.figure{
  font-family:var(--serif); font-size:clamp(36px,4vw,52px); line-height:1; color:var(--ink);
  font-weight:400; letter-spacing:-.02em; font-variant-numeric:lining-nums tabular-nums;
}

/* 4. LAYOUT ================================================================ */
.shell{ width:min(var(--shell), calc(100% - var(--gutter)*2)); margin-inline:auto; }
.section{ padding-block:clamp(64px, 8vw, 120px); }
.section--tight{ padding-block:clamp(44px, 5vw, 72px); }
.section--navy{ background:var(--dark); color:var(--on-dark); }
.section--navy h2,.section--navy h3{ color:#fff; }
.section--paper{ background:var(--paper); }
.section--sky{ background:var(--paper); }
.section--rule{ border-top:1px solid var(--line); }

.grid{ display:grid; gap:var(--s-5); }
.grid > *, .g-2 > *, .g-3 > *, .g-4 > *, .card > *, .split > *{ min-width:0; }
.tlink, .card p a, .footer a{ overflow-wrap:anywhere; max-width:100%; }
.g-2{ grid-template-columns:repeat(2,1fr); }
.g-3{ grid-template-columns:repeat(3,1fr); }
.g-4{ grid-template-columns:repeat(4,1fr); }
.g-split{ grid-template-columns:.8fr 1.2fr; }

/* Section heading: headline left, short standfirst right, rule above */
.section-head{
  display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(24px,5vw,80px);
  align-items:end; margin-bottom:clamp(36px,4.5vw,64px);
}
.section-head--center{ grid-template-columns:1fr; max-width:760px; }
.section-head--solo{ grid-template-columns:1fr; max-width:780px; }
.section-head p{ color:var(--ink-soft); max-width:52ch; }
.section--navy .section-head p{ color:var(--on-dark-soft); }
.section-head .eyebrow{ color:var(--accent); }
.section-head .eyebrow--light, .section--navy .section-head .eyebrow{ color:var(--accent-light); }

.rule{ height:1px; background:var(--line); margin-block:var(--s-7); }
.rule--gold{ height:2px; width:48px; background:var(--accent); }

/* 5. BUTTONS =============================================================== */
.btn{
  --btn-bg:var(--ink); --btn-fg:#fff;
  display:inline-block; text-align:center; line-height:1.35; text-wrap:balance;
  background:var(--btn-bg); color:var(--btn-fg);
  padding:15px 24px; border:1px solid var(--btn-bg); border-radius:var(--radius);
  font-size:15px; font-weight:500; letter-spacing:0; cursor:pointer;
  transition:background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease);
}
.btn:hover{ --btn-bg:var(--accent); }
.btn .arr{ display:inline-block; margin-left:10px; transition:transform .25s var(--ease); }
.btn:hover .arr{ transform:translateX(3px); }

.btn--gold{ --btn-bg:var(--accent); --btn-fg:#fff; }
.btn--gold:hover{ --btn-bg:var(--accent-dark); }
.btn--navy{ --btn-bg:var(--ink); --btn-fg:#fff; }
.btn--ghost{ --btn-bg:transparent; --btn-fg:var(--ink); border-color:var(--ink); }
.btn--ghost:hover{ --btn-bg:var(--ink); --btn-fg:#fff; }
.btn--ghost-light{ --btn-bg:transparent; --btn-fg:#fff; border-color:rgba(255,255,255,.5); }
.btn--ghost-light:hover{ --btn-bg:#fff; --btn-fg:var(--ink); }
.btn--sm{ padding:10px 16px; font-size:14px; }
.btn--block{ display:block; width:100%; }
.btn:disabled{ cursor:wait; opacity:.7; }
.section--navy .btn--gold:hover, .cta .btn--gold:hover{ --btn-bg:#fff; --btn-fg:var(--ink); }

/* Text link: always underlined, as links should be */
.tlink{
  display:inline; font-size:inherit; font-weight:500; color:var(--accent);
  text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px;
  transition:color .2s var(--ease);
}
.tlink:hover{ color:var(--ink); text-decoration-thickness:2px; }
.tlink .arr{ display:inline-block; transition:transform .25s var(--ease); }
.tlink:hover .arr{ transform:translateX(3px); }
.tlink--gold{ color:var(--accent-light); }
.tlink--gold:hover{ color:#fff; }
.section-head .tlink, .card .tlink{ font-size:15px; }
p a:not(.btn):not(.tlink){ color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.section--navy p a:not(.btn):not(.tlink), .cta > div p a:not(.btn), .card--navy p a:not(.btn):not(.tlink){ color:var(--accent-light); }
.footer p a:not(.btn){ color:var(--on-dark); }

/* 6. HEADER ================================================================ */
.header{
  position:sticky; top:0; z-index:100;
  background:var(--bg);
  border-bottom:1px solid var(--line);
  height:var(--header-h);
}
.nav{ height:100%; display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); }

.brand{ display:flex; align-items:center; gap:12px; flex:none; }
.brand__mark{ width:36px; height:39px; flex:none; display:block; }
.brand__name{
  font-family:var(--serif); font-size:25px; font-weight:500; letter-spacing:-.01em;
  color:var(--accent-dark); line-height:1;
}
.brand__name small{
  display:block; font-family:var(--sans); font-size:9.5px; font-weight:500; letter-spacing:.32em;
  color:var(--accent-dark); margin-top:5px; text-transform:uppercase;
}

.nav__links{ display:flex; align-items:center; gap:clamp(18px,2.4vw,34px); list-style:none; margin-left:auto; }
.nav__links a{
  font-size:15px; font-weight:400; color:var(--ink-soft); padding:6px 0;
  white-space:nowrap; border-bottom:1px solid transparent;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.nav__links a:hover{ color:var(--ink); border-color:var(--ink); }
.nav__links a[aria-current="page"]{ color:var(--ink); border-color:var(--accent); }
.nav__cta{ flex:none; }

.burger{
  display:none; width:44px; height:44px; background:none; border:0; cursor:pointer;
  align-items:center; justify-content:center; flex:none; margin-right:-10px;
}
.burger span{ display:block; width:22px; height:1.5px; background:var(--ink); position:relative; }
.burger span::before,.burger span::after{
  content:""; position:absolute; left:0; width:22px; height:1.5px; background:var(--ink);
  transition:transform .3s var(--ease-out), top .2s var(--ease);
}
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }
.burger[aria-expanded="true"] span{ background:transparent; }
.burger[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.burger[aria-expanded="true"] span::after{  top:0; transform:rotate(-45deg); }

.drawer{
  position:fixed; inset:var(--header-h) 0 0 0; z-index:99;
  background:var(--bg); color:var(--ink); padding:var(--s-5) var(--gutter) var(--s-7);
  opacity:0; pointer-events:none; visibility:hidden;
  transition:opacity .25s var(--ease), visibility 0s linear .25s;
  overflow-y:auto; overscroll-behavior:contain;
}
.drawer.is-open{ opacity:1; pointer-events:auto; visibility:visible; transition-delay:0s; }
.drawer ul{ list-style:none; display:grid; }
.drawer a{
  display:block; padding:14px 0; font-family:var(--serif); font-size:30px; letter-spacing:-.015em;
  border-bottom:1px solid var(--line); color:var(--ink);
}
.drawer a:hover{ color:var(--accent); }
.drawer li a[aria-current="page"]{ color:var(--accent); }
.drawer .btn{ margin-top:var(--s-6); font-family:var(--sans); font-size:16px; color:#fff; border-bottom:0; }

/* 7. HEROES ================================================================ */
/* Home hero: headline on paper, photograph bleeding off the right edge */
.hero{ position:relative; background:var(--bg); border-bottom:1px solid var(--line); }
.hero__grid{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);
  min-height:min(calc(100vh - var(--header-h)), 780px);
}
.hero__text{
  padding:clamp(48px,7vw,104px) clamp(24px,4vw,64px) clamp(40px,5vw,72px) 0;
  padding-left:max(var(--gutter), calc((100vw - var(--shell)) / 2));
  display:flex; flex-direction:column; justify-content:center;
}
.hero h1{ margin:0 0 var(--s-5); max-width:11ch; }
.hero h1 em{ color:var(--accent); }
.hero .lead{ max-width:40ch; color:var(--ink-soft); }
.hero__actions{ display:flex; flex-wrap:wrap; gap:var(--s-5); align-items:center; margin-top:var(--s-6); }
.hero__facts{
  display:flex; flex-wrap:wrap; gap:6px 22px; margin:var(--s-7) 0 0; padding:var(--s-4) 0 0;
  border-top:1px solid var(--line); list-style:none;
  font-family:var(--mono); font-size:12.5px; color:var(--ink-muted); letter-spacing:.01em;
}
.hero__photo{ position:relative; margin:0; min-height:420px; background:var(--dark); }
.hero__photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__photo figcaption, .photo-credit{
  position:absolute; right:12px; bottom:10px; z-index:2;
  font-family:var(--mono); font-size:11px; color:rgba(255,255,255,.85);
  text-shadow:0 1px 3px rgba(0,0,0,.6);
}

/* Inner-page hero: title block on paper, optional photograph alongside */
.phero{ background:var(--bg); border-bottom:1px solid var(--line); }
.phero > .shell{ display:grid; grid-template-columns:minmax(0,1fr); }
.phero--photo > .shell{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(28px,5vw,72px); align-items:end; }
.phero__inner{ padding-block:clamp(44px,6vw,88px) clamp(36px,4.5vw,64px); max-width:860px; }
.shell.phero__inner{ max-width:none; }
.phero .tlink--gold{ color:var(--accent); }
.phero h1{ font-size:clamp(40px,5.4vw,76px); margin-bottom:var(--s-5); }
.phero .lead{ color:var(--ink-soft); max-width:56ch; }
.phero__img{ margin:0; align-self:stretch; position:relative; min-height:280px; margin-top:clamp(24px,4vw,56px); }
.phero__img img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.crumbs{
  display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:var(--s-6);
  font-family:var(--mono); font-size:12px; color:var(--ink-muted); text-transform:uppercase; letter-spacing:.04em;
}
.crumbs a{ text-decoration:underline; text-underline-offset:3px; }
.crumbs a:hover{ color:var(--accent); }
.crumbs span:last-child{ color:var(--ink); }
.phero .eyebrow--light{ color:var(--accent); }

/* 8. EDITORIAL BLOCKS ====================================================== */

/* Degree-awarding universities: a plain typeset list, not a ticker */
.awarders{ border-bottom:1px solid var(--line); padding-block:22px; }
.awarders .shell{ display:grid; grid-template-columns:auto 1fr; gap:12px 32px; align-items:baseline; }
.awarders p{ margin:0; }
.awarders .label{ margin:0; color:var(--ink-muted); }
.awarders__list{ font-family:var(--serif); font-size:clamp(17px,1.5vw,20px); color:var(--ink-soft); line-height:1.5; }
.awarders__list span + span::before{ content:" / "; color:var(--line); padding-inline:4px; }

/* Intro: big serif statement with a narrow side column */
.intro{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,2fr); gap:clamp(24px,5vw,80px); }
.intro__side{ padding-top:10px; }
.intro__statement{
  font-family:var(--serif); font-size:clamp(26px,3.1vw,42px); line-height:1.22; letter-spacing:-.015em;
  color:var(--ink); margin:0 0 clamp(36px,4vw,56px); max-width:26ch;
}
.intro__statement em{ color:var(--accent); }

/* Numbered points in columns, separated by rules — not cards */
.points{ list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink); counter-reset:pt; }
.points li{ padding:22px 28px 6px 0; counter-increment:pt; }
.points li + li{ padding-left:28px; border-left:1px solid var(--line); }
.points li::before{
  content:counter(pt, decimal-leading-zero); display:block; margin-bottom:14px;
  font-family:var(--mono); font-size:12.5px; color:var(--accent);
}
.points h3{ margin-bottom:10px; }
.points p{ font-size:16px; color:var(--ink-soft); }

/* Full-bleed photograph band with an overlaid caption */
.band{ position:relative; margin:0; height:clamp(340px,52vw,640px); background:var(--dark); overflow:hidden; }
.band img{ width:100%; height:100%; object-fit:cover; }
.band figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:clamp(20px,3vw,40px) 0;
  background:linear-gradient(to top, rgba(8,28,50,.74), rgba(8,28,50,0));
  color:#fff;
}
.band figcaption .shell{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.band__quote{ font-family:var(--serif); font-size:clamp(22px,2.6vw,36px); line-height:1.2; max-width:28ch; margin:0; letter-spacing:-.01em; }
.band__where{ font-family:var(--mono); font-size:12px; opacity:.85; margin:0; }

/* Ledger: a year's costs as an itemised statement */
.ledger-wrap{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(28px,6vw,96px); align-items:start; }
.ledger{ width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums lining-nums; }
.ledger caption{ text-align:left; font-family:var(--mono); font-size:12px; color:var(--ink-muted); text-transform:uppercase; letter-spacing:.05em; padding-bottom:12px; }
.ledger th, .ledger td{ text-align:left; padding:18px 0; border-top:1px solid var(--line); vertical-align:baseline; }
.ledger th{ font-weight:500; font-size:17px; padding-right:16px; }
.ledger th small{ display:block; font-weight:400; font-size:14px; color:var(--ink-muted); margin-top:3px; }
.ledger td{ text-align:right; font-family:var(--serif); font-size:clamp(24px,2.4vw,32px); white-space:nowrap; }
.ledger td small{ font-family:var(--sans); font-size:13px; color:var(--ink-muted); margin-left:4px; }
.ledger tr.total th, .ledger tr.total td{ border-top:2px solid var(--ink); padding-top:22px; }
.ledger tr.total td{ color:var(--accent); font-size:clamp(34px,3.6vw,48px); }

/* Subject index: a table of contents, not six icon cards */
.subjects{ list-style:none; border-top:1px solid var(--ink); display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(24px,5vw,72px); }
.subjects li{ border-bottom:1px solid var(--line); }
.subjects a{
  display:grid; grid-template-columns:2.2em 1fr auto; gap:6px 14px; align-items:baseline;
  padding:22px 0; transition:color .2s var(--ease);
}
.subjects .n{ font-family:var(--mono); font-size:12.5px; color:var(--ink-muted); }
.subjects h3{ font-size:clamp(22px,2.1vw,28px); transition:color .2s var(--ease); }
.subjects p{ grid-column:2 / 3; font-size:15px; color:var(--ink-soft); margin:0; }
.subjects .arr{ grid-row:1; grid-column:3; color:var(--accent); transition:transform .25s var(--ease); }
.subjects a:hover h3{ color:var(--accent); }
.subjects a:hover .arr{ transform:translateX(4px); }

/* Cities: asymmetric photo grid, captions under the images */
.cities{ display:grid; grid-template-columns:1.5fr 1fr; grid-template-rows:auto auto; gap:clamp(20px,2.5vw,36px) clamp(20px,2.5vw,36px); }
.city{ margin:0; }
.city img{ width:100%; aspect-ratio:4/3; object-fit:cover; background:var(--paper); }
.city--lead{ grid-row:1 / 3; display:flex; flex-direction:column; }
.city--lead img{ aspect-ratio:auto; flex:1 1 auto; height:0; min-height:420px; }
.city figcaption{ padding-top:14px; }
.city h3{ margin-bottom:4px; }
.city p{ font-size:15.5px; color:var(--ink-soft); margin:0; max-width:48ch; }
.city .label{ margin-bottom:6px; color:var(--ink-muted); font-size:12px; }

/* Steps: an ordered list in two columns */
.steps{ list-style:none; display:grid; grid-template-columns:1fr 1fr; column-gap:clamp(28px,6vw,96px); counter-reset:st; }
.steps li{ counter-increment:st; display:grid; grid-template-columns:3.2rem 1fr; gap:4px 16px; padding:26px 0; border-top:1px solid rgba(255,255,255,.16); }
.steps li::before{
  content:counter(st, greek-numeral); grid-row:1 / 4; font-family:var(--serif); font-size:44px; line-height:.9; color:var(--accent-light);
}
.steps .when{ font-family:var(--mono); font-size:12px; color:var(--on-dark-soft); text-transform:uppercase; letter-spacing:.04em; }
.steps h3{ color:#fff; font-size:23px; }
.steps p{ font-size:15.5px; color:var(--on-dark-soft); margin:4px 0 0; }

/* Advisor split: photograph + text */
.advisor{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px,6vw,96px); align-items:center; }
.advisor__photo{ margin:0; position:relative; }
.advisor__photo img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.advisor__photo figcaption{ font-family:var(--mono); font-size:12px; color:var(--ink-muted); padding-top:10px; }
.advisor .pull{ margin:var(--s-6) 0; }
.plain-list{ list-style:none; display:grid; gap:0; border-top:1px solid var(--line); margin:var(--s-5) 0 var(--s-6); }
.plain-list li{ padding:14px 0; border-bottom:1px solid var(--line); font-size:16px; color:var(--ink-soft); }
.plain-list b{ color:var(--ink); font-weight:600; }

/* Pull quote */
.pull{
  margin:0; padding:0 0 0 clamp(18px,2vw,28px); border-left:3px solid var(--accent);
  font-family:var(--serif); font-style:italic; font-size:clamp(24px,2.7vw,36px); line-height:1.25;
  color:var(--ink); letter-spacing:-.01em;
}
.section--navy .pull{ color:#fff; border-color:var(--accent-light); }

/* FAQ preview: sticky heading column */
.faq-split{ display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(28px,6vw,96px); align-items:start; }
.faq-split > :first-child{ position:sticky; top:calc(var(--header-h) + 32px); }

/* Testimonials placeholder area */
.quotes{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--ink); }
.quotes blockquote{ margin:0; padding:24px 24px 8px 0; }
.quotes blockquote + blockquote{ padding-left:24px; border-left:1px solid var(--line); }
.quotes p{ font-family:var(--serif); font-size:20px; line-height:1.4; color:var(--ink-muted); }
.quotes footer{ font-family:var(--mono); font-size:12px; color:var(--ink-muted); }

/* 9. LEGACY COMPONENTS (used by inner pages) ============================== */

/* Numbered columns */
.pillars{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--ink); }
.pillars article{ padding:22px 28px 8px 0; }
.pillars article + article{ padding-left:28px; border-left:1px solid var(--line); }
.pillars .num{ font-family:var(--mono); font-size:12.5px; color:var(--accent); display:block; margin-bottom:14px; }
.pillars h3{ margin-bottom:var(--s-3); }
.pillars p{ font-size:15.5px; color:var(--ink-soft); margin:0; }

/* Card: a ruled block. No box, no lift, no shadow. */
.card{
  background:transparent; border:0; border-top:1px solid var(--ink); border-radius:0;
  padding:20px 0 8px; position:relative;
  display:flex; flex-direction:column; gap:10px;
}
.card h3{ color:var(--ink); }
.card p{ font-size:15.5px; color:var(--ink-soft); margin:0; }
.card__tag{
  font-family:var(--mono); font-size:12px; font-weight:400; letter-spacing:.04em; text-transform:uppercase; color:var(--accent);
}
.card__foot{ margin-top:auto; padding-top:var(--s-3); }
.card--paper{ background:var(--paper); border-top:0; padding:22px 24px; }
.section--paper .card--paper, .section--sky .card--paper{ background:var(--bg); }
.card--navy{ background:var(--dark); border-top:0; color:var(--on-dark); padding:24px 26px; }
.card--navy h3{ color:#fff; } .card--navy p{ color:var(--on-dark-soft); }
.card--navy .figure{ color:#fff; }
.card--navy .card__tag{ color:var(--accent-light); }
.section--navy .card{ border-top-color:rgba(255,255,255,.35); }
.section--navy .card p{ color:var(--on-dark-soft); }
.section--navy .card h3{ color:#fff; }
.section--navy .card__tag{ color:var(--accent-light); }
.card--link:hover h3{ color:var(--accent); }

.chip{ display:none; }

/* Institution */
.inst{ border-top:1px solid var(--ink); padding:20px 0 8px; display:flex; flex-direction:column; gap:10px; }
.inst__crest{ display:none; }
.inst small{ font-family:var(--mono); font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:var(--accent); }
.inst h3{ font-size:24px; }
.inst p{ font-size:15px; color:var(--ink-soft); margin:0; }
.inst dl{ margin:var(--s-3) 0 0; display:grid; gap:0; font-size:14px; }
.inst dl div{ display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid var(--line); }
.inst dt{ color:var(--ink-muted); } .inst dd{ margin:0; font-weight:500; text-align:right; }

/* Photo tiles (kept for any remaining use) */
.tiles{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:clamp(16px,2vw,28px); }
.tile{ margin:0; }
.tile img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.tile__body{ padding-top:12px; }
.tile__body small{ font-family:var(--mono); font-size:12px; text-transform:uppercase; color:var(--ink-muted); }
.tile__body h3{ margin:4px 0; }
.tile__body p{ font-size:15px; color:var(--ink-soft); margin:0; }

/* Stats: a row of figures between rules */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--ink); }
.stats article{ padding:22px 24px 8px 0; }
.stats article + article{ padding-left:24px; border-left:1px solid var(--line); }
.section--navy .stats{ border-color:rgba(255,255,255,.4); }
.section--navy .stats article + article{ border-color:rgba(255,255,255,.14); }
.section--navy .figure{ color:#fff; }
.stats h4{ font-family:var(--mono); font-size:12px; font-weight:400; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-muted); margin:var(--s-3) 0 6px; }
.section--navy .stats h4{ color:var(--on-dark-soft); }
.stats p{ font-size:14.5px; color:var(--ink-soft); margin:0; }
.section--navy .stats p{ color:var(--on-dark-soft); }

/* Split panel */
.split{ display:grid; grid-template-columns:1fr 1fr; }
.split > *{ padding:clamp(28px,4vw,56px); }
.split__list > div{
  padding:16px 0; border-bottom:1px solid rgba(255,255,255,.14);
  display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start;
}
.split__list > div:last-child{ border-bottom:0; }
.split__list b{ display:block; font-family:var(--mono); font-size:12px; font-weight:400; letter-spacing:.04em;
  text-transform:uppercase; color:var(--accent-light); margin-bottom:5px; }
.split__list p{ font-size:15px; color:var(--on-dark-soft); margin:0; }
.split__list .n{ font-family:var(--serif); font-size:16px; color:rgba(255,255,255,.4); padding-top:2px; }

/* Accordion */
.acc{ border-top:1px solid var(--ink); }
.acc__item{ border-bottom:1px solid var(--line); }
.acc__btn{
  width:100%; background:none; border:0; cursor:pointer; text-align:left; color:var(--ink);
  padding:22px 48px 22px 0; position:relative;
  font-family:var(--serif); font-size:clamp(20px,1.9vw,24px); line-height:1.3; letter-spacing:-.01em;
}
.acc__btn:hover{ color:var(--accent); }
.acc__btn::after,.acc__btn::before{
  content:""; position:absolute; right:6px; top:50%; background:var(--ink);
  transition:transform .3s var(--ease-out), opacity .2s var(--ease);
}
.acc__btn::after{ width:14px; height:1.5px; transform:translateY(-50%); }
.acc__btn::before{ width:1.5px; height:14px; right:12.25px; transform:translateY(-50%); }
.acc__btn[aria-expanded="true"]::before{ transform:translateY(-50%) rotate(90deg); opacity:0; }
.acc__panel{ overflow:hidden; height:0; transition:height .4s var(--ease-out); }
.acc__panel > div{ padding:0 clamp(24px,6vw,90px) 26px 0; color:var(--ink-soft); font-size:16.5px; max-width:70ch; }

/* Filters: text tabs with an underline, not pills */
.filters{ display:flex; flex-wrap:wrap; gap:4px 22px; margin-bottom:var(--s-6); border-bottom:1px solid var(--line); }
.filter{
  padding:10px 0; margin-bottom:-1px; border:0; border-bottom:2px solid transparent; background:none; border-radius:0;
  font-size:15px; font-weight:400; color:var(--ink-muted); cursor:pointer;
  transition:color .2s var(--ease), border-color .2s var(--ease);
}
.filter:hover{ color:var(--ink); }
.filter.is-active{ color:var(--ink); border-color:var(--accent); font-weight:500; }
.is-hidden{ display:none !important; }

/* Timeline */
.timeline{ position:relative; display:grid; border-top:1px solid var(--ink); }
.timeline__fill{ display:none; }
.step{ position:relative; display:grid; grid-template-columns:64px 1fr; gap:var(--s-5); padding-block:var(--s-5); border-bottom:1px solid var(--line); }
.step__dot{ font-family:var(--serif); font-size:40px; line-height:.9; color:var(--accent); }
.section--navy .timeline{ border-color:rgba(255,255,255,.4); }
.section--navy .step{ border-color:rgba(255,255,255,.14); }
.section--navy .step__dot{ color:var(--accent-light); }
.step h3{ font-size:23px; margin-bottom:6px; }
.section--navy .step h3{ color:#fff; }
.step p{ font-size:15.5px; color:var(--ink-soft); margin:0; max-width:68ch; }
.section--navy .step p{ color:var(--on-dark-soft); }
.step .step__meta, .step__meta{ font-size:12px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:6px; }
.section--navy .step__meta{ color:var(--on-dark-soft); }

/* Marquee (unused on home now; kept static if present anywhere) */
.marquee{ border-block:1px solid var(--line); padding-block:18px; overflow:hidden; }
.marquee__track{ display:flex; flex-wrap:wrap; gap:8px 28px; }
.marquee span{ font-family:var(--serif); font-size:18px; color:var(--ink-soft); }

/* Calculator */
.calc{ display:grid; grid-template-columns:1fr .85fr; gap:0; border:1px solid var(--ink); background:var(--bg); }
.calc__controls{ padding:clamp(22px,3.2vw,40px); display:grid; gap:var(--s-5); align-content:start; }
.calc__out{
  padding:clamp(22px,3.2vw,40px); background:var(--dark); color:var(--on-dark);
  display:flex; flex-direction:column; justify-content:center; gap:var(--s-4);
}
.field label{ display:block; font-family:var(--mono); font-size:12px; font-weight:400; letter-spacing:.04em;
  text-transform:uppercase; color:var(--ink-muted); margin-bottom:10px; }
.field__val{ float:right; color:var(--accent); font-weight:500; letter-spacing:0; text-transform:none; font-size:14px; }
.seg{ display:flex; gap:0; flex-wrap:wrap; border:1px solid var(--ink); }
.seg button{
  flex:1 1 0; min-width:88px; padding:11px 10px; border:0; border-left:1px solid var(--ink); background:transparent;
  font-size:14px; font-weight:400; color:var(--ink-soft); cursor:pointer; border-radius:0;
  transition:background .2s var(--ease), color .2s var(--ease);
}
.seg button:first-child{ border-left:0; }
.seg button:hover{ background:var(--paper); }
.seg button.is-active{ background:var(--ink); color:#fff; font-weight:500; }
input[type=range]{
  -webkit-appearance:none; appearance:none; width:100%; height:2px; background:var(--ink);
  outline:none; margin:14px 0 0;
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; width:18px; height:18px; border-radius:50%;
  background:var(--accent); border:3px solid var(--bg); cursor:pointer;
}
input[type=range]::-moz-range-thumb{
  width:14px; height:14px; border-radius:50%; background:var(--accent); border:3px solid var(--bg); cursor:pointer;
}
.calc__row{ display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding-bottom:12px; border-bottom:1px solid rgba(255,255,255,.14); font-size:15px; color:var(--on-dark-soft); }
.calc__row b{ font-family:var(--serif); font-size:22px; color:#fff; font-weight:400; }
.calc__total{ padding-top:var(--s-3); }
.calc__total .figure{ color:#fff; }

/* Handoff note */
.placeholder{
  border:1px dashed var(--accent); background:transparent;
  padding:var(--s-4) var(--s-5); font-size:14px; color:var(--ink-soft);
}
.placeholder b{ color:var(--accent); display:block; margin-bottom:6px;
  font-family:var(--mono); font-weight:400; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.section--navy .placeholder{ color:var(--on-dark-soft); border-color:var(--accent-light); }
.section--navy .placeholder b{ color:var(--accent-light); }

/* CTA band */
.cta{
  background:var(--dark); color:var(--on-dark); padding:clamp(28px,5vw,64px);
  display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,72px); align-items:start;
}
.cta h2{ color:#fff; margin-bottom:var(--s-4); }
.cta .eyebrow{ color:var(--accent-light); }
.cta p{ color:var(--on-dark-soft); }
.cta .form p{ color:var(--ink-muted); }
.cta ul{ list-style:none; display:grid; gap:0; margin-bottom:var(--s-5); border-top:1px solid rgba(255,255,255,.16); }
.cta li{ display:block; padding:12px 0; border-bottom:1px solid rgba(255,255,255,.16); font-size:15.5px; color:var(--on-dark); }
.cta li svg{ display:none; }

/* 10. FORMS ================================================================ */
.form{ background:var(--bg); padding:clamp(22px,3vw,36px); display:grid; gap:var(--s-4); color:var(--ink); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--s-4); }
.form label{ display:grid; gap:8px; font-size:14px; font-weight:500; color:var(--ink); }
.form label,.form__row > *{ min-width:0; }
.form input,.form select,.form textarea{
  width:100%; min-width:0; max-width:100%;
  padding:12px 13px; border:1px solid #b6c3d1; border-radius:var(--radius);
  font:inherit; font-size:16px; color:var(--ink); background:var(--white);
  transition:border-color .2s var(--ease);
  font-weight:400;
}
.form input:focus,.form select:focus,.form textarea:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 1px var(--ink); }
.form textarea{ resize:vertical; min-height:110px; }
.form .hp{ position:absolute; left:-9999px; opacity:0; height:0; }
.form__note{ font-size:13px; color:var(--ink-muted); font-weight:400; }
.form__status{ font-size:14px; padding:12px 14px; display:none; }
.form__status.is-ok{ display:block; background:#e6f1ea; color:#1d5a37; border:1px solid #b4d6c1; }
.form__status.is-err{ display:block; background:#f8e7e3; color:#8a2413; border:1px solid #e6b9ad; }

/* 11. FOOTER =============================================================== */
.footer{ background:var(--dark); color:var(--on-dark); padding-block:clamp(48px,6vw,80px) var(--s-6); }
.footer__grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:clamp(24px,4vw,56px); }
.footer h4{ font-family:var(--mono); font-size:12px; font-weight:400; letter-spacing:.04em;
  text-transform:uppercase; color:var(--on-dark-soft); margin-bottom:var(--s-4); }
.footer ul{ list-style:none; display:grid; gap:10px; }
.footer a{ font-size:15px; color:var(--on-dark); }
.footer a:hover{ color:var(--accent-light); text-decoration:underline; text-underline-offset:3px; }
.footer p{ font-size:15px; color:var(--on-dark-soft); }
.footer .brand__name{ color:#fff; }
.footer .brand__name small{ color:var(--on-dark-soft); display:block; margin:8px 0 0; }
.footer__bar{
  margin-top:clamp(36px,4vw,56px); padding-top:var(--s-5); border-top:1px solid rgba(255,255,255,.14);
  display:flex; justify-content:space-between; align-items:flex-start; gap:var(--s-5); flex-wrap:wrap;
  font-size:13px; color:#93a6ba;
}
.footer__bar p{ font-size:13px; color:#93a6ba; }

/* 12. MOTION =============================================================== */
/* A quiet fade only. Nothing slides, spins or counts up for show. */
[data-reveal]{ opacity:0; transition:opacity .6s var(--ease-out); transition-delay:var(--d, 0ms); }
[data-reveal].is-in{ opacity:1; }
.draw{ stroke-dasharray:400; stroke-dashoffset:400; transition:stroke-dashoffset 1.6s var(--ease-out); }
.is-in .draw, .draw.is-in{ stroke-dashoffset:0; }

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

/* 13. RESPONSIVE =========================================================== */
@media (max-width:1080px){
  .footer__grid{ grid-template-columns:1fr 1fr; }
  .brand__name small{ display:none; }
}
@media (max-width:960px){
  .nav__links, .nav__cta{ display:none; }
  .burger{ display:flex; }
}
@media (max-width:900px){
  :root{ --header-h:64px; }
  .hero__grid{ grid-template-columns:1fr; min-height:0; }
  .hero__photo{ order:-1; min-height:0; aspect-ratio:16/10; }
  .hero__text{ padding:36px var(--gutter) 44px; }
  .hero h1{ max-width:14ch; }
  .phero--photo > .shell{ grid-template-columns:1fr; gap:0; }
  .phero__img{ min-height:0; aspect-ratio:16/9; margin:0 0 32px; }
  .section-head, .split, .calc, .cta, .g-split, .g-2--stack-md,
  .intro, .ledger-wrap, .advisor, .faq-split{ grid-template-columns:1fr; }
  .faq-split > :first-child{ position:static; }
  .g-3,.g-4{ grid-template-columns:1fr 1fr; }
  .points, .pillars, .quotes{ grid-template-columns:1fr; }
  .points li + li, .pillars article + article, .quotes blockquote + blockquote{ padding-left:0; border-left:0; border-top:1px solid var(--line); }
  .points li, .pillars article, .quotes blockquote{ padding-right:0; padding-bottom:18px; }
  .stats{ grid-template-columns:1fr 1fr; }
  .stats article:nth-child(odd){ padding-left:0; border-left:0; }
  .stats article:nth-child(n+3){ border-top:1px solid var(--line); }
  .section--navy .stats article:nth-child(n+3){ border-top-color:rgba(255,255,255,.14); }
  .section-head{ align-items:start; }
  .subjects, .steps{ grid-template-columns:1fr; }
  .cities{ grid-template-columns:1fr 1fr; }
  .city--lead{ grid-row:auto; grid-column:1 / -1; }
  .city--lead img{ flex:none; height:auto; min-height:0; aspect-ratio:16/10; }
  .advisor__photo img{ aspect-ratio:3/2; }
  .awarders .shell{ grid-template-columns:1fr; gap:6px; }
  .tiles{ grid-template-columns:1fr 1fr; }
}
@media (max-width:600px){
  body{ font-size:16px; }
  .g-2,.g-3,.g-4,.form__row,.tiles,.stats,.cities{ grid-template-columns:1fr; }
  .stats article{ padding-left:0 !important; border-left:0 !important; }
  .stats article + article{ border-top:1px solid var(--line); }
  .cta{ padding:28px 18px; margin-inline:calc(var(--gutter) * -1); }
  .form{ padding:22px 18px; }
  .footer__grid{ grid-template-columns:1fr; }
  .footer__bar{ flex-direction:column; }
  .step{ grid-template-columns:44px 1fr; gap:var(--s-3); }
  .step__dot{ font-size:32px; }
  .ledger td{ font-size:24px; }
  .ledger tr.total td{ font-size:32px; }
  .band{ height:auto; }
  .band img{ height:auto; aspect-ratio:4/3; }
  .band figcaption{ position:static; background:var(--dark); padding:20px 0 24px; }
  .hero__facts{ flex-direction:column; gap:4px; }
  .brand__name{ font-size:23px; }
  .brand__mark{ width:28px; height:30px; }
}

/* Ancient Greek numerals (6 is stigma, not zeta) */
@counter-style greek-numeral{
  system:fixed; symbols:"Αʹ" "Βʹ" "Γʹ" "Δʹ" "Εʹ" "Ϛʹ" "Ζʹ" "Ηʹ" "Θʹ" "Ιʹ"; suffix:""; fallback:decimal;
}

/* 14. GREEK DETAILS ========================================================
   Restrained Hellenic touches: a running meander (Greek key) as a border,
   Cycladic arches on photographs, Greek numerals for the steps, and an
   olive sprig on pull quotes. Ornament files live in assets/img/.
   ========================================================================== */
.hero{ border-bottom:0; }
.hero::after{
  content:""; display:block; height:18px;
  background:url("../img/meander.svg") repeat-x left center / 18px 18px;
}
.section--navy, .footer{ position:relative; }
.section--navy::before, .section--navy::after, .footer::before{
  content:""; position:absolute; left:0; right:0; height:16px; opacity:.55;
  background:url("../img/meander-light.svg") repeat-x left center / 16px 16px;
}
.section--navy::before{ top:18px; }
.section--navy::after{ bottom:18px; }
.footer::before{ top:18px; opacity:.35; }

/* Cycladic arches: whitewashed doorways, not boxes */
.advisor__photo img,
.phero__img img,
.city img{ border-radius:50vw 50vw 0 0; }
.phero__img{ margin-bottom:0; }

/* Olive sprig above pull quotes */
.pull::before{
  content:""; display:block; width:120px; height:40px; margin-bottom:14px;
  background:url("../img/olive.svg") no-repeat left center / contain;
}
.section--navy .pull::before{ filter:brightness(0) invert(1); opacity:.8; }

/* Small meander tile before section labels */
.section-head .eyebrow::before, .intro .eyebrow::before{
  content:""; display:inline-block; width:12px; height:12px; margin-right:10px; vertical-align:-1px;
  background:url("../img/meander.svg") no-repeat center / 12px 12px;
}
.section--navy .section-head .eyebrow::before{ background-image:url("../img/meander-light.svg"); }

/* 15. ATHENA — floating study-match assistant (assets/js/athena.js) ========
   A round launcher bottom-right on every page and a messenger-style panel.
   Built from the same tokens; bubbles and chips are the only rounded things
   on the site, because that is what a chat is expected to look like.
   ========================================================================== */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
html.athena-lock, html.athena-lock body{ overflow:hidden; }

.athena-fab{
  position:fixed; z-index:98;
  right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom));
  display:flex; align-items:center; gap:10px;
  padding:5px 20px 5px 5px; border:1px solid rgba(255,255,255,.18); border-radius:999px;
  background:var(--dark); color:#fff; cursor:pointer;
  font-family:var(--sans); font-size:15px; font-weight:500; line-height:1;
  box-shadow:0 10px 30px rgba(11,42,74,.28), 0 2px 6px rgba(11,42,74,.18);
  transition:transform .25s var(--ease-out), background .2s var(--ease);
}
.athena-fab:hover{ background:var(--dark-2); transform:translateY(-2px); }
.athena-fab:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }
.athena-fab__owl{ width:50px; height:50px; flex:none; border-radius:50%; display:block; }
.athena-fab__owl svg, .athena__avatar svg, .athena-msg__avatar svg{ width:100%; height:100%; display:block; }
.athena-fab__label{ white-space:nowrap; letter-spacing:.01em; }
.athena-fab__dot{
  position:absolute; top:4px; left:42px; width:11px; height:11px; border-radius:50%;
  background:var(--accent-light); border:2px solid var(--dark); display:none;
}
.athena-fab.has-progress .athena-fab__dot{ display:block; }
.athena-fab.is-hidden-fab{ opacity:0; pointer-events:none; visibility:hidden; }
.athena-fab .athena-owl{ transform-origin:50% 60%; }
.athena-fab:hover .athena-owl{ animation:athena-tilt .7s var(--ease-out); }
@keyframes athena-tilt{ 0%,100%{ transform:rotate(0); } 35%{ transform:rotate(-8deg); } 70%{ transform:rotate(5deg); } }

.athena{
  position:fixed; z-index:130;
  right:max(20px, env(safe-area-inset-right)); bottom:max(20px, env(safe-area-inset-bottom));
  width:min(410px, calc(100vw - 32px));
  height:min(660px, calc(100vh - 40px)); height:min(660px, calc(100dvh - 40px));
  display:flex; flex-direction:column; overflow:hidden;
  background:var(--bg); color:var(--ink); border:1px solid var(--ink); border-radius:14px;
  box-shadow:0 24px 60px rgba(11,42,74,.28), 0 4px 14px rgba(11,42,74,.14);
  animation:athena-in .32s var(--ease-out);
}
.athena[hidden]{ display:none; }
@keyframes athena-in{ from{ opacity:0; transform:translateY(14px) scale(.98); } to{ opacity:1; transform:none; } }

.athena__head{
  position:relative; flex:none; display:flex; align-items:center; gap:12px;
  padding:14px 10px 20px 16px; background:var(--dark); color:#fff;
}
.athena__head::after{
  content:""; position:absolute; left:0; right:0; bottom:4px; height:10px; opacity:.5;
  background:url("../img/meander-light.svg") repeat-x left center / 10px 10px;
}
.athena__avatar{ width:44px; height:44px; flex:none; border-radius:50%; box-shadow:0 0 0 2px rgba(140,196,242,.35); }
.athena__who{ flex:1 1 auto; min-width:0; }
.athena__title{ font-family:var(--serif); font-size:19px; line-height:1.2; color:#fff; letter-spacing:-.005em; }
.athena__sub{ margin:3px 0 0; font-family:var(--mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--on-dark-soft); }
.athena__icon{
  flex:none; width:40px; height:40px; display:grid; place-items:center; border:0; border-radius:50%;
  background:transparent; color:var(--on-dark); cursor:pointer; transition:background .2s var(--ease);
}
.athena__icon svg{ width:20px; height:20px; }
.athena__icon:hover{ background:rgba(255,255,255,.12); }
.athena__icon:focus-visible{ outline:2px solid var(--accent-light); outline-offset:0; }

.athena__log{
  flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain;
  padding:18px 14px 8px; display:flex; flex-direction:column; gap:10px;
  background:var(--white);
}
.athena__log:focus{ outline:none; }
.athena__log:focus-visible{ outline:2px solid var(--accent); outline-offset:-2px; }

.athena-msg{ display:flex; align-items:flex-end; gap:8px; max-width:100%; flex:none; }
.athena-msg.is-new{ animation:athena-msg-in .28s var(--ease-out); }
@keyframes athena-msg-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.athena-msg__avatar{ width:28px; height:28px; flex:none; border-radius:50%; }
.athena-bubble{
  max-width:82%; padding:10px 14px; font-size:15px; line-height:1.5; border-radius:16px;
  overflow-wrap:anywhere;
}
.athena-msg--bot .athena-bubble{ background:var(--paper); color:var(--ink); border-bottom-left-radius:4px; }
.athena-msg--user{ justify-content:flex-end; }
.athena-msg--user .athena-bubble{ background:var(--accent); color:#fff; border-bottom-right-radius:4px; }
.athena-bubble em{ color:var(--ink-muted); font-style:italic; }
.athena-bubble strong{ font-weight:600; }

.athena-typing .athena-bubble{ display:flex; gap:5px; padding:14px 16px; }
.athena-typing i{
  width:7px; height:7px; border-radius:50%; background:var(--ink-muted); display:block; opacity:.35;
  animation:athena-dot 1s infinite var(--ease);
}
.athena-typing i:nth-child(2){ animation-delay:.15s; }
.athena-typing i:nth-child(3){ animation-delay:.3s; }
@keyframes athena-dot{ 0%,100%{ opacity:.3; transform:none; } 40%{ opacity:1; transform:translateY(-3px); } }

.athena__controls{ flex:none; background:var(--white); padding:0 14px; max-height:42%; overflow-y:auto; }
.athena__controls:not(:empty){ padding:6px 14px 12px; }
.athena-chips{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.athena-chips + .athena-chips{ margin-top:8px; }
.athena-chip{
  border:1px solid var(--accent); background:var(--white); color:var(--accent);
  padding:8px 14px; border-radius:999px; font-size:14px; font-weight:500; line-height:1.3; cursor:pointer;
  transition:background .15s var(--ease), color .15s var(--ease);
}
.athena-chip:hover{ background:var(--accent); color:#fff; }
.athena-chip:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }
.athena-chip--quiet{ border-color:var(--line); color:var(--ink-soft); }
.athena-chip--quiet:hover{ background:var(--paper); color:var(--ink); }

.athena__composer{
  flex:none; display:flex; gap:8px; align-items:center; padding:10px 12px;
  border-top:1px solid var(--line); background:var(--bg);
}
.athena__composer input{
  flex:1 1 auto; min-width:0; padding:11px 14px; border:1px solid #b6c3d1; border-radius:999px;
  font:inherit; font-size:16px; color:var(--ink); background:var(--white);
}
.athena__composer input:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 1px var(--ink); }
.athena__composer input:disabled{ background:transparent; border-color:var(--line); color:var(--ink-muted); }
.athena__composer input::placeholder{ color:var(--ink-muted); }
.athena__send{
  flex:none; width:44px; height:44px; border:0; border-radius:50%; display:grid; place-items:center;
  background:var(--accent); color:#fff; cursor:pointer; transition:background .2s var(--ease), opacity .2s var(--ease);
}
.athena__send svg{ width:20px; height:20px; }
.athena__send:hover{ background:var(--accent-dark); }
.athena__send:disabled{ opacity:.35; cursor:default; background:var(--ink-muted); }
.athena__foot{ flex:none; margin:0; padding:0 14px 10px; background:var(--bg); font-size:11.5px; line-height:1.4; color:var(--ink-muted); }

/* Summary card */
.athena-msg--summary{ align-items:flex-start; }
.athena-msg--summary .athena-msg__avatar{ margin-top:2px; }
.athena-summary{
  flex:1 1 auto; min-width:0; background:var(--bg); border:1px solid var(--line); border-top:3px solid var(--accent);
  border-radius:4px 16px 16px 16px; padding:16px 16px 14px;
}
.athena-summary__eyebrow{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); margin:0 0 4px; }
.athena-summary__title{ font-size:22px; margin:0 0 10px; }
.athena-recs{ list-style:none; margin:0; padding:0; counter-reset:rec; border-top:1px solid var(--ink); }
.athena-rec{ counter-increment:rec; padding:12px 0; border-bottom:1px solid var(--line); display:grid; gap:4px; }
.athena-rec__kind{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); }
.athena-rec__kind::before{ content:counter(rec, greek-numeral) "\00a0\00a0"; color:var(--ink-muted); }
.athena-rec h4{ font-size:18px; line-height:1.25; }
.athena-rec p{ font-size:14px; line-height:1.5; color:var(--ink-soft); margin:0; }
.athena-rec .athena-rec__fact{ font-size:12.5px; color:var(--ink-muted); }
.athena-rec .tlink, .athena-summary__cost .tlink{ font-size:14px; justify-self:start; }
.athena-summary__cost{ margin:12px 0 0; padding:12px 14px; background:var(--paper); display:grid; gap:6px; }
.athena-summary__cost p{ margin:0; font-size:14px; line-height:1.5; color:var(--ink); }
.athena-notes{ list-style:none; margin:12px 0 0; padding:0; display:grid; gap:8px; }
.athena-notes li{ position:relative; padding-left:18px; font-size:13.5px; line-height:1.5; color:var(--ink-soft); }
.athena-notes li::before{ content:"\2192"; position:absolute; left:0; top:0; color:var(--accent); font-weight:700; }
.athena-notes a{ color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.athena-answers{ margin:14px 0 0; border-top:1px solid var(--line); }
.athena-answers summary{
  cursor:pointer; padding:10px 0 4px; font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-soft);
}
.athena-answers summary:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.athena-answers dl{ margin:6px 0 0; display:grid; gap:0; font-size:13.5px; }
.athena-answers dl div{ display:flex; justify-content:space-between; gap:12px; padding:6px 0; border-bottom:1px dashed var(--line); }
.athena-answers dt{ color:var(--ink-muted); flex:none; }
.athena-answers dd{ margin:0; font-weight:600; color:var(--ink); text-align:right; overflow-wrap:anywhere; }
.athena-summary__actions{ display:grid; gap:8px; margin-top:16px; }
.athena-summary__actions .btn{ padding:13px 18px; }
.athena-summary__small{ margin:10px 0 0; font-size:11.5px; line-height:1.45; color:var(--ink-muted); }

/* Contact form note when fields were prefilled */
.form__prefill{
  margin:0; padding:10px 14px; font-size:14px; line-height:1.5; color:var(--ink);
  background:var(--gold-soft); border-left:3px solid var(--accent);
}

@media (max-width:600px){
  .athena-fab{ padding:5px; right:max(14px, env(safe-area-inset-right)); bottom:max(14px, env(safe-area-inset-bottom)); }
  .athena-fab__label{
    position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
  }
  .athena{ inset:0; width:100%; height:100%; border:0; border-radius:0; }
  .athena__head{ padding-top:max(12px, env(safe-area-inset-top)); }
  .athena__foot{ padding-bottom:max(10px, env(safe-area-inset-bottom)); }
  .athena-bubble{ max-width:86%; }
}
@media print{ .athena, .athena-fab{ display:none !important; } }

/* 16. GREEK HISTORY PAGE (greek-history.html) =============================
   A chronological ledger: dates in a left column, a rail with a marker, and
   the story on the right. Collapses to rail + text on phones.
   ========================================================================== */
.chrono{ list-style:none; margin:0; padding:0; border-top:1px solid var(--ink); --pad:clamp(26px,3.2vw,40px); }
.chrono__era{
  display:grid; grid-template-columns:minmax(0,.85fr) 36px minmax(0,2.15fr);
  grid-template-areas:"when rail body"; column-gap:clamp(14px,2.4vw,32px);
}
.chrono__when{ grid-area:when; padding-block:var(--pad); }
.chrono__rail{ grid-area:rail; position:relative; }
.chrono__rail::before{
  content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background:var(--line); transform:translateX(-50%);
}
.chrono__rail::after{
  content:""; position:absolute; left:50%; top:calc(var(--pad) + 10px); width:13px; height:13px;
  background:var(--bg); border:2px solid var(--accent); transform:translateX(-50%) rotate(45deg);
}
.chrono__era:first-child .chrono__rail::before{ top:calc(var(--pad) + 10px); }
.chrono__era:last-child .chrono__rail::before{ bottom:auto; height:calc(var(--pad) + 10px); }
.chrono__era.is-key .chrono__rail::after{ background:var(--accent); }
.chrono__body{ grid-area:body; padding-block:var(--pad); border-bottom:1px solid var(--line); }
.chrono__era:last-child .chrono__body{ border-bottom:0; }
.chrono__num{ display:block; font-family:var(--serif); font-size:15px; color:var(--ink-muted); margin-bottom:6px; }
.chrono__dates{
  display:block; font-family:var(--serif); font-size:clamp(24px,2.5vw,34px); line-height:1.08; letter-spacing:-.015em;
  color:var(--accent); font-variant-numeric:lining-nums;
}
.chrono__period{ display:block; margin-top:8px; font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-muted); }
.chrono__body h3{ margin-bottom:10px; }
.chrono__body p{ font-size:16px; color:var(--ink-soft); max-width:66ch; }
.chrono__marks{ list-style:none; display:flex; flex-wrap:wrap; gap:6px 18px; margin:14px 0 0; padding:12px 0 0; border-top:1px dashed var(--line); }
.chrono__marks li{ font-family:var(--mono); font-size:12.5px; color:var(--ink); }
.chrono__marks b{ color:var(--accent); font-weight:500; margin-right:6px; }
.chrono__body .chrono__visit{ margin-top:12px; font-size:14.5px; color:var(--ink); }
.chrono__visit::before{
  content:""; display:inline-block; width:12px; height:12px; margin-right:8px; vertical-align:-1px;
  background:url("../img/meander.svg") no-repeat center / 12px 12px;
}

/* Where-the-word-comes-from list */
.etym{ list-style:none; margin:var(--s-5) 0 0; padding:0; border-top:1px solid var(--ink); }
.etym li{ display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr); gap:12px 24px; padding:14px 0; border-bottom:1px solid var(--line); align-items:baseline; }
.etym .w{ font-family:var(--serif); font-size:22px; color:var(--ink); line-height:1.2; }
.etym .w small{ display:block; font-family:var(--mono); font-size:11.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); margin-top:4px; }
.etym p{ margin:0; font-size:15px; color:var(--ink-soft); }

/* Sites to visit: reuse .cities, add a ruled list under each caption */
.sites{ list-style:none; margin:12px 0 0; padding:0; border-top:1px solid var(--line); max-width:52ch; }
.sites li{ padding:9px 0; border-bottom:1px solid var(--line); font-size:15px; color:var(--ink-soft); }
.sites b{ color:var(--ink); font-weight:600; }

@media (max-width:760px){
  .chrono__era{
    grid-template-columns:24px minmax(0,1fr); grid-template-areas:"rail when" "rail body"; column-gap:14px;
  }
  .chrono__when{ padding-bottom:6px; }
  .chrono__body{ padding-top:6px; }
  .chrono__rail::after{ top:calc(var(--pad) + 22px); }
  .chrono__era:first-child .chrono__rail::before{ top:calc(var(--pad) + 22px); }
  .chrono__era:last-child .chrono__rail::before{ height:calc(var(--pad) + 22px); }
  .etym li{ grid-template-columns:1fr; gap:4px; }
}
