/* Op. Dr. Cenk Teker — cenkteker.com · Nodsites production stylesheet
   Design brief: Lacivert Kürsü (Navy & Gold · Fraunces 650 + Source Sans 3)
   Dials: d1-rect d2-twin d3-wash d4-deep d5-start */

/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 550 650;
  font-display: swap;
  src: url(../fonts/fraunces-550-650-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 550 650;
  font-display: swap;
  src: url(../fonts/fraunces-550-650-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-400-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../fonts/source-sans-3-400-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/source-sans-3-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/source-sans-3-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* arabic */
@font-face {
  font-family: 'Noto Naskh Arabic';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../fonts/noto-naskh-arabic-600-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}
/* arabic */
@font-face {
  font-family: 'Noto Sans Arabic';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/noto-sans-arabic-400-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}
/* arabic */
@font-face {
  font-family: 'Noto Sans Arabic';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url(../fonts/noto-sans-arabic-600-arabic.woff2) format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

/* =========================================================================
   Nodsites — base.css (locked house layout & tokens)
   Consumed from each concept's theme.css:
     --primary --accent --bg --surface --text --muted
     --font-display --font-body  (optional: --display-weight, --h1-max,
     --heading-tracking for sanctioned per-face exceptions)
   Dials are keyed off body classes:
     D1 .d1-rect | .d1-arch | .d1-squircle
     D2 .d2-solid | .d2-gradient | .d2-twin
     D3 .d3-flat | .d3-glow | .d3-wash
     D4 .d4-tinted | .d4-deep
     D5 .d5-start | .d5-center
   ========================================================================= */

/* ------------------------------------------------------------------ reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

/* ----------------------------------------------------------- base tokens */
:root {
  --header-h: 80px;
  --radius-card: 16px;
  --border-card: 1px solid color-mix(in srgb, var(--primary) 8%, transparent);
  --shadow-card: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.06);
  --shadow-card-hover: 0 2px 4px rgba(0,0,0,.04), 0 14px 32px rgba(0,0,0,.09);
  --d1-shape: 24px; /* overridden by D1 body class */
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body), ui-sans-serif, system-ui, sans-serif;
  font-size: 1rem;
  line-height: 1.7;
  /* decorative offsets (companion shape, glow) may poke past the viewport
     when the container meets the screen edge — never a horizontal scroll */
  overflow-x: clip;
}
html { overflow-x: clip; }

/* ------------------------------------------------------------ typography */
h1, h2, h3 {
  font-family: var(--font-display), serif;
  font-weight: var(--display-weight, 600);
  letter-spacing: var(--heading-tracking, -0.01em);
  text-wrap: balance;
  line-height: 1.15;
  color: var(--text);
}
h1 { font-size: clamp(2rem, 5vw, var(--h1-max, 3.25rem)); }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.25rem; }
p  { max-width: 65ch; }

.eyebrow {
  text-transform: uppercase;
  letter-spacing: .12em;
  /* accent voice, deepened toward primary so small text holds AA with light accents */
  color: var(--eyebrow-ink, color-mix(in srgb, var(--accent) 55%, var(--primary)));
  font-size: 0.8rem;
  font-weight: 600;
  max-width: none;
}

/* ---------------------------------------------------- accent rule (D2) */
.rule { position: relative; width: 56px; height: 3px; }
.rule::before {
  content: ''; position: absolute; top: 0; left: 0;
  width: 100%; height: 3px; border-radius: 999px;
  background: var(--accent);
}
body.d2-gradient .rule::before {
  background: linear-gradient(90deg, var(--accent), transparent);
}
body.d2-twin .rule { height: 10px; }
body.d2-twin .rule::after {
  content: ''; position: absolute; bottom: 0; left: 0;
  width: 100%; height: 1px; border-radius: 999px;
  background: var(--accent);
}

/* ------------------------------------------------------ layout primitives */
.container {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}
.section { padding-block: clamp(4.5rem, 8vw, 7rem); }
[id] { scroll-margin-top: calc(var(--header-h) + 1rem); }

.section-head { margin-bottom: 2.75rem; }
.section-head .eyebrow { margin-bottom: .75rem; }
.section-head .rule { margin-top: .9rem; }
.section-head p:not(.eyebrow) { margin-top: 1.1rem; color: var(--muted); }

body.d5-center .section-head { text-align: center; }
body.d5-center .section-head .rule { margin-inline: auto; }
body.d5-center .section-head p:not(.eyebrow) { margin-inline: auto; }

/* --------------------------------------------------------------- buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: .5rem;
  border-radius: 999px;
  padding: .85rem 1.75rem;
  font-weight: 600; font-size: .95rem; line-height: 1.2;
  transition: background .25s ease, color .25s ease, border-color .25s ease,
              transform .25s ease, box-shadow .25s ease;
}
.btn svg { flex: none; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover {
  background: color-mix(in srgb, var(--primary) 92%, #000);
  transform: translateY(-1px);
}
.btn-secondary {
  border: 1.5px solid var(--primary); color: var(--primary);
  padding: calc(.85rem - 1.5px) calc(1.75rem - 1.5px);
}
.btn-secondary:hover {
  background: color-mix(in srgb, var(--primary) 8%, transparent);
  transform: translateY(-1px);
}
/* light buttons for the deep CTA band */
.btn-light { background: var(--surface); color: var(--primary); }
.btn-light:hover {
  background: color-mix(in srgb, var(--surface) 90%, #000);
  transform: translateY(-1px);
}
.btn-ghost-light {
  border: 1.5px solid rgba(255,255,255,.65); color: #fff;
  padding: calc(.85rem - 1.5px) calc(1.75rem - 1.5px);
}
.btn-ghost-light:hover {
  background: rgba(255,255,255,.12);
  transform: translateY(-1px);
}

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* -------------------------------------------------------------- text link */
.text-link {
  display: inline-block;
  color: var(--primary); font-weight: 600;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--accent) 55%, transparent);
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  transition: text-decoration-color .25s ease, color .25s ease;
}
.text-link:hover {
  color: color-mix(in srgb, var(--primary) 85%, #000);
  text-decoration-color: var(--accent);
}

/* --------------------------------------------------------------- skip link */
.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 100;
  background: var(--primary); color: #fff;
  padding: .75rem 1.25rem; border-radius: 0 0 8px 0;
  font-weight: 600;
}
.skip-link:focus { left: 0; }

/* ------------------------------------------------------------------ header
   Floats on the page: transparent at top (shares the hero atmosphere,
   which starts at the very top of .top-field behind it); gains surface +
   faint shadow via the JS .scrolled class. */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 60;
  background: transparent;
  transition: background .25s ease, box-shadow .25s ease;
}
.site-header.scrolled,
.site-header.menu-open {
  background: var(--surface);
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.06);
}
.header-inner {
  max-width: 1140px; margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
  min-height: var(--header-h);
  display: flex; align-items: center;
  gap: clamp(1rem, 2vw, 1.5rem);
}

/* two-tone lockup */
.lockup { display: flex; flex-direction: column; line-height: 1.25; flex: none; }
.lockup-name {
  font-family: var(--font-display), serif;
  font-weight: var(--display-weight, 600);
  font-size: 1.05rem; color: var(--text);
  letter-spacing: var(--heading-tracking, -0.01em);
}
.lockup-sub {
  font-size: .68rem; font-weight: 600;
  letter-spacing: .09em; text-transform: uppercase;
  color: var(--eyebrow-ink, color-mix(in srgb, var(--accent) 55%, var(--primary)));
}

.header-nav-wrap {
  display: flex; align-items: center;
  gap: clamp(.75rem, 1.8vw, 1.4rem);
  margin-inline-start: auto;
}

/* nav — slide-in underline */
.site-nav ul { display: flex; gap: clamp(.7rem, 1.4vw, 1.25rem); }
.site-nav a { white-space: nowrap; } /* a nav label never breaks mid-phrase */
.site-nav a {
  position: relative; display: inline-block;
  padding: .55rem .1rem;
  font-size: .9rem; font-weight: 500; color: var(--text);
}
.site-nav a::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: .25rem;
  height: 2px; border-radius: 999px; background: var(--accent);
  transform: scaleX(0); transform-origin: left;
  transition: transform .25s ease;
}
html[dir="rtl"] .site-nav a::after { transform-origin: right; }
.site-nav a:hover::after,
.site-nav a:focus-visible::after,
.site-nav a[aria-current]::after { transform: scaleX(1); }

/* language chips */
.lang-list { display: flex; align-items: center; gap: .1rem; }
.lang-list a {
  font-size: .74rem; font-weight: 600; letter-spacing: .04em;
  color: var(--muted);
  padding: .42rem .5rem; border-radius: 999px;
  transition: color .25s ease, background .25s ease;
}
.lang-list a:hover { color: var(--text); }
.lang-list a[aria-current] {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
  color: var(--primary);
}

/* header booking pill: slightly compact */
.header-cta { padding: .6rem 1.2rem; font-size: .875rem; flex: none; }

/* hamburger */
.menu-toggle {
  display: none;
  width: 44px; height: 44px;
  align-items: center; justify-content: center;
  border-radius: 12px; color: var(--text);
}
.menu-toggle:hover { background: color-mix(in srgb, var(--primary) 8%, transparent); }

/* --------------------------------------------------------- hero atmosphere
   ONE unbroken field from the top edge of the page to the stat strip:
   the fixed header floats over the top of this field. */
.top-field { padding-top: var(--header-h); background: var(--bg); }
body.d3-glow .top-field {
  background:
    radial-gradient(55rem 38rem at 74% 32%,
      color-mix(in srgb, var(--accent) 9%, transparent) 0%,
      transparent 68%),
    var(--bg);
}
html[dir="rtl"] body.d3-glow .top-field,
html[dir="rtl"].d3-glow .top-field {
  background:
    radial-gradient(55rem 38rem at 26% 32%,
      color-mix(in srgb, var(--accent) 9%, transparent) 0%,
      transparent 68%),
    var(--bg);
}
body.d3-wash .top-field {
  background: linear-gradient(180deg, var(--bg) 0%, var(--surface) 100%);
}

/* ---------------------------------------------------------- signature hero */
.hero { padding-block: clamp(1.5rem, 3.5vw, 2.75rem) clamp(2.25rem, 4.5vw, 3.25rem); }
.hero-grid {
  display: grid;
  grid-template-columns: 55fr 45fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.hero .rule { margin-block: .9rem 1.1rem; }
.hero h1 { margin-bottom: .85rem; }
.hero-value {
  font-size: 1.25rem; line-height: 1.5; font-weight: 500;
  color: color-mix(in srgb, var(--text) 90%, transparent);
  margin-bottom: .8rem;
  text-wrap: balance; /* a forced two-line break reads as a couplet, never an orphan */
}
.hero-support {
  color: var(--muted); font-size: .975rem;
  max-width: 56ch; margin-bottom: 1.6rem;
  text-wrap: pretty; /* no single-word last lines */
}
.hero-actions {
  display: flex; flex-wrap: wrap; gap: .75rem;
  margin-bottom: 1.75rem;
}
.hero-creds { display: flex; flex-direction: column; gap: .6rem; }
.hero-creds li {
  display: flex; align-items: center; gap: .6rem;
  color: var(--muted); font-size: .925rem;
}
.hero-creds svg { color: var(--accent); flex: none; }

/* portrait — D1 mask + companion shape offset toward the page edge */
.portrait {
  position: relative;
  width: 100%; max-width: 25rem; /* owner: a touch smaller */
  margin-inline-start: auto;
}
.portrait::before {
  content: ''; position: absolute; inset: 0;
  /* owner: companion sits toward the page edge and BELOW the portrait */
  transform: translate(4%, 3%) scale(1.03);
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  border-radius: var(--d1-shape);
}
html[dir="rtl"] .portrait::before { transform: translate(-4%, 3%) scale(1.03); }
.portrait img {
  position: relative;
  width: 100%;
  border-radius: var(--d1-shape);
  box-shadow: var(--shadow-card);
}

/* D1 shapes */
body.d1-rect     { --d1-shape: 24px; }
body.d1-arch     { --d1-shape: 999px 999px 24px 24px; }
body.d1-squircle { --d1-shape: 58% 42% 55% 45% / 52% 55% 45% 48%; }

/* -------------------------------------------------------- stat strip (D4)
   One continuous unbroken band — stats separated by space alone. */
.stats { padding-block: clamp(2.25rem, 4vw, 3rem); }
body.d4-tinted .stats { background: color-mix(in srgb, var(--primary) 6%, var(--bg)); }
body.d4-deep   .stats { background: var(--primary); }
.stats-grid {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  text-align: center;
}
.stat-num {
  font-family: var(--font-display), serif;
  font-weight: var(--display-weight, 600);
  font-size: 2.25rem; line-height: 1.2;
  font-variant-numeric: tabular-nums;
  color: var(--primary);
}
.stat-label { font-size: .875rem; color: var(--muted); margin-top: .2rem; }
body.d4-deep .stat-num   { color: #fff; }
body.d4-deep .stat-label { color: rgba(255,255,255,.82); }

/* ------------------------------------------------------------------ trust */
.trust { background: var(--surface); }
.trust-grid {
  display: grid; grid-template-columns: 5fr 7fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.trust-figure { position: relative; width: 100%; max-width: 24rem; }
.trust-figure img {
  width: 100%;
  border-radius: var(--d1-shape);
  box-shadow: var(--shadow-card);
}
.trust-copy .eyebrow { margin-bottom: .75rem; }
.trust-copy .rule { margin-block: .9rem 1.25rem; }
.check-list { margin-top: 1.4rem; }
.check-list li {
  display: flex; align-items: flex-start; gap: .65rem;
  margin-top: .9rem; font-size: .975rem;
  max-width: 60ch;
}
.check-list svg { color: var(--accent); flex: none; margin-top: .3rem; }
.trust-copy .text-link { margin-top: 1.5rem; }

/* --------------------------------------------------------------- services */
.services { background: var(--bg); }
.cards {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
.card {
  display: flex; flex-direction: column;
  background: var(--surface);
  border: var(--border-card);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: 1.75rem;
  transition: transform .25s ease, box-shadow .25s ease;
}
.card:hover { transform: translateY(-3px); box-shadow: var(--shadow-card-hover); }
.card h3 { margin-bottom: .6rem; }
.card p { color: var(--muted); font-size: .95rem; }
.card .text-link { margin-top: auto; padding-top: 1.25rem; align-self: flex-start; }
.section-cta { margin-top: 2.75rem; text-align: center; }

/* ---------------------------------------------------- international band */
.intl { background: var(--surface); }
.intl-bullets {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2.5rem);
  margin-top: .5rem;
}
.intl-bullets li {
  display: flex; align-items: flex-start; gap: .7rem;
  font-size: .95rem;
}
.intl-bullets svg { color: var(--accent); flex: none; margin-top: .25rem; }
.intl-link { margin-top: 2.25rem; max-width: none; }
body.d5-center .intl-link { text-align: center; }

/* --------------------------------------------------------- final CTA band */
.cta-band { background: var(--primary); }
.cta-band h2 { color: #fff; }
.cta-band .rule { margin-top: .9rem; }
.cta-line { color: rgba(255,255,255,.85); margin-top: 1.1rem; }
.cta-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.9rem; }
body.d5-center .cta-inner { text-align: center; }
body.d5-center .cta-inner .rule { margin-inline: auto; }
body.d5-center .cta-line { margin-inline: auto; }
body.d5-center .cta-actions { justify-content: center; }

/* ------------------------------------------------------------------ footer */
.site-footer {
  background: var(--primary);
  color: rgba(255,255,255,.85);
  border-top: 1px solid rgba(255,255,255,.14);
  font-size: .95rem;
}
.footer-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1.4fr;
  gap: clamp(2rem, 4vw, 3.5rem);
  padding-block: clamp(3rem, 6vw, 4.5rem);
}
.footer-lockup .lockup-name { color: #fff; font-size: 1.15rem; }
.footer-lockup .lockup-sub { color: color-mix(in srgb, var(--accent) 65%, #fff); }
.footer-desc { margin-top: 1rem; color: rgba(255,255,255,.78); }
.footer-title {
  font-family: var(--font-display), serif;
  font-weight: var(--display-weight, 600);
  color: #fff; font-size: 1.05rem; margin-bottom: 1rem;
}
.footer-links li { margin-top: .45rem; }
.footer-links a { color: rgba(255,255,255,.85); transition: color .25s ease; }
.footer-links a:hover { color: color-mix(in srgb, var(--accent) 60%, #fff); }
.footer-contact li {
  display: flex; align-items: flex-start; gap: .65rem;
  margin-top: .8rem;
}
.footer-contact svg { color: var(--accent); flex: none; margin-top: .3rem; }
.footer-contact a { transition: color .25s ease; }
.footer-contact a:hover { color: var(--accent); }
.socials { display: flex; gap: .5rem; margin-top: 1.25rem; }
.socials a {
  display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 999px;
  color: rgba(255,255,255,.85);
  transition: color .25s ease, background .25s ease;
}
.socials a:hover { color: color-mix(in srgb, var(--accent) 60%, #fff); background: rgba(255,255,255,.08); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.14);
  padding-block: 1.4rem;
  display: flex; flex-wrap: wrap; justify-content: space-between;
  gap: .5rem 2rem;
  font-size: .85rem; color: rgba(255,255,255,.72);
}
.footer-bottom p { max-width: none; }
.credit {
  text-align: center; font-size: .8rem;
  color: rgba(255,255,255,.72);
  padding-bottom: 1.4rem; max-width: none;
}
.credit a {
  text-decoration: underline; text-underline-offset: 3px;
  transition: color .25s ease;
}
.credit a:hover { color: color-mix(in srgb, var(--accent) 60%, #fff); }

/* ------------------------------------------------- floating WhatsApp (≥768) */
.wa-float {
  position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 55;
  display: grid; place-items: center;
  width: 56px; height: 56px; border-radius: 999px;
  background: var(--primary); color: #fff;
  box-shadow: var(--shadow-card-hover);
  transition: background .25s ease, transform .25s ease;
}
.wa-float:hover {
  background: color-mix(in srgb, var(--primary) 92%, #000);
  transform: translateY(-2px);
}

/* --------------------------------------------------- mobile action bar (<768) */
.action-bar { display: none; }

/* ------------------------------------------------------------ motion (JS) */
html.js [data-reveal] {
  opacity: 0; transform: translateY(12px);
  transition: opacity .5s ease, transform .5s ease;
}
html.js [data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  html.js [data-reveal] { opacity: 1; transform: none; transition: none; }
  .btn, .card, .wa-float { transition: none; }
}

/* ------------------------------------------------------------- responsive */
/* tablet tier: the full header row must FIT — labels never wrap (see
   .site-nav a) so every element compacts instead */
@media (max-width: 1109px) and (min-width: 900px) {
  .lockup-name { font-size: .95rem; }
  .lockup-sub { font-size: .6rem; }
  .header-nav-wrap { gap: .55rem; }
  .site-nav ul { gap: .45rem; }
  .site-nav a { font-size: .82rem; }
  .lang-list a { font-size: .66rem; padding-inline: .28rem; }
  .header-cta { padding: .5rem .85rem; font-size: .78rem; gap: .35rem; }
  .header-cta svg { width: 15px; height: 15px; }
}
@media (max-width: 1023px) {
  .lang-list a { padding-inline: .28rem; }
}

/* header collapses to the hamburger below 900px — between 768 and 900 the
   full one-line row cannot fit at a dignified size, and an overflowing or
   shrunken-to-illegible header fails THE STANDARD harder than an early
   hamburger (deviation from the 768px cutoff, logged in the build notes) */
@media (max-width: 899px) {
  :root { --header-h: 68px; }

  .menu-toggle { display: inline-flex; margin-inline-start: auto; }
  .header-nav-wrap {
    display: none;
    position: absolute; top: 100%; left: 0; right: 0;
    flex-direction: column; align-items: stretch;
    gap: 1.1rem;
    background: var(--surface);
    box-shadow: 0 12px 24px rgba(0,0,0,.08);
    padding: 1.1rem clamp(1rem, 4vw, 2rem) 1.5rem;
    margin-inline-start: 0;
  }
  .site-header.menu-open .header-nav-wrap { display: flex; }
  .site-nav ul { flex-direction: column; gap: .1rem; }
  .site-nav a { display: block; font-size: 1rem; padding: .6rem 0; }
  .site-nav a::after { right: auto; width: 56px; }
  .lang-list { flex-wrap: wrap; gap: .25rem; }
  .header-cta { align-self: flex-start; }
  .lockup-name { font-size: 1.05rem; }
}

@media (max-width: 767px) {
  /* hero stacks: portrait above text */
  .hero { padding-block: 1.5rem 3rem; }
  .hero-grid { grid-template-columns: 1fr; gap: 2rem; }
  .portrait { order: -1; max-width: min(76vw, 20rem); margin-inline: auto; }

  /* stat strip wraps 2×2 — still no dividers */
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.75rem 1rem; }

  .trust-grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .trust-figure { max-width: min(76vw, 20rem); }
  .cards { grid-template-columns: 1fr; }
  .intl-bullets { grid-template-columns: 1fr; gap: 1.1rem; }
  .footer-grid { grid-template-columns: 1fr; gap: 2.25rem; }
  .footer-bottom { flex-direction: column; gap: .35rem; }

  /* floating WhatsApp hidden below 768 — the action bar takes over */
  .wa-float { display: none; }
  .action-bar {
    display: grid; grid-template-columns: repeat(3, 1fr);
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
    background: var(--surface);
    box-shadow: 0 -2px 12px rgba(0,0,0,.1);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .action-bar a {
    display: flex; align-items: center; justify-content: center;
    gap: .45rem; min-height: 56px;
    font-size: .9rem; font-weight: 600;
    color: var(--primary);
    transition: background .25s ease;
  }
  .action-bar a:hover { background: color-mix(in srgb, var(--primary) 6%, transparent); }
  .action-bar a svg { flex: none; }
  .action-bar .action-primary { background: var(--primary); color: #fff; }
  .action-bar .action-primary:hover {
    background: color-mix(in srgb, var(--primary) 92%, #000);
  }
  body { padding-bottom: calc(56px + env(safe-area-inset-bottom)); }
}

/* ------------------------------------------------------------------- print */
@media print {
  .site-header, .wa-float, .action-bar, .skip-link { display: none; }
  body { background: #fff; color: #000; padding-bottom: 0; }
}


/* ===== theme: Lacivert Kürsü ===== */
/* =========================================================================
   Concept One — "Lacivert Kürsü" (Navy & Gold · prestigious & classic)
   Dials: d1-rect d2-twin d3-wash d4-deep d5-start
   Leading dial: D2 twin bars — editorial precision
   ========================================================================= */

:root {
  /* Navy & Gold — role hexes are final */
  --primary: #14213D;
  --accent:  #C9A227;
  --bg:      #F8F8F6;
  --surface: #FFFFFF;
  --text:    #1A1F2E;
  --muted:   #5C6270;

  /* Type: Fraunces 650 (550–650 band) + Source Sans 3 400/600.
     Owner request 2026-07-16: bolder display voice, everything a touch
     larger — root notched to 17px, h1 to the sanctioned 3.5rem max. */
  --font-display: 'Fraunces';
  --font-body: 'Source Sans 3';
  --display-weight: 650;
  --h1-max: 3.5rem;
}

/* everything a touch larger (rem-scaled) — owner request */
:root { font-size: 106.25%; }

/* the top reads bigger and more assured */
.lockup-name { font-size: 1.2rem; }

/* the larger root eats the header row's slack — tighten its gaps so
   every label sits on one line at every desktop width */
@media (min-width: 900px) {
  .header-nav-wrap { gap: clamp(.65rem, 1.2vw, 1rem); }
  .site-nav ul { gap: clamp(.6rem, 1.1vw, 1rem); }
}
/* 17px root needs one extra notch in the 900–1109 compact tier */
@media (max-width: 1109px) and (min-width: 900px) {
  .site-nav a { font-size: .78rem; }
  .lang-list a { font-size: .62rem; }
  .header-cta { font-size: .74rem; }
}

/* portrait mirror is baked into the production image asset */

/* keep the fold rule (§2d) with the larger type: hero breathes a touch
   less so the stat band still lands inside the first 1440×900 viewport */
@media (min-width: 768px) {
  .hero { padding-block: clamp(1rem, 2.5vw, 2rem) clamp(1.75rem, 3.5vw, 2.5rem); }
}

/* --- concept polish (tone only, no structure) ---------------------------- */

/* Editorial gold reads antique, not brassy, when it carries small caps:
   eyebrows deepen toward the navy so the letterspaced labels stay legible
   on light grounds while keeping the golden voice. */
.eyebrow,
.lockup-sub {
  color: color-mix(in srgb, var(--accent) 60%, var(--primary));
}
/* (the footer lockup keeps full gold on navy via base's own override) */

/* Twin-rule hairline tone: the 3px bar solid gold, the 1px hairline a
   quieter thread beneath — the editorial-precision moment. */
body.d2-twin .rule::after {
  background: color-mix(in srgb, var(--accent) 55%, transparent);
}

/* Wash nuance: a whisper of navy at the very top of the field, settling
   into surface — depth without weight, like good paper. */
body.d3-wash .top-field {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--primary) 3%, var(--bg)) 0%,
    var(--surface) 100%
  );
}

/* ============================================================ production
   Components that exist only on the full site: inner-page heads,
   breadcrumbs, About timeline, contact details, hours table, form,
   FAQ details, legal prose, Arabic type stack. */

/* Arabic companions (RTL) — same roles, Arabic faces */
html[lang="ar"] {
  --font-display: 'Noto Naskh Arabic';
  --font-body: 'Noto Sans Arabic';
}
html[lang="ar"] body { line-height: 1.85; }
html[dir="rtl"] .portrait { margin-inline-start: auto; }

/* inner-page head: breadcrumb → h1 → accent rule → one lede line */
.page-head { padding-block: clamp(2.5rem, 5vw, 4rem) 0; }
.page-head .rule { margin-block: .9rem 1.1rem; }
.page-head .lede { color: var(--muted); font-size: 1.1rem; max-width: 62ch; }

.breadcrumb { font-size: .82rem; color: var(--muted); margin-bottom: 1.1rem; max-width: none; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: .4rem; padding: 0; margin: 0; }
.breadcrumb li + li::before { content: '›'; margin-inline-end: .4rem; color: var(--muted); }
.breadcrumb a { color: inherit; text-decoration: none; }
.breadcrumb a:hover { color: var(--primary); text-decoration: underline; }
.breadcrumb [aria-current="page"] { color: var(--text); }

/* About timeline — vertical accent line, accent dots, confirmed facts only */
.timeline { list-style: none; padding: 0; margin: 2rem 0 0; position: relative; }
.timeline::before {
  content: ''; position: absolute; top: .4rem; bottom: .4rem;
  inset-inline-start: 7px; width: 2px; border-radius: 2px;
  background: color-mix(in srgb, var(--accent) 45%, transparent);
}
.timeline li { position: relative; padding-inline-start: 2.4rem; padding-block: .85rem; max-width: 58ch; }
.timeline li::before {
  content: ''; position: absolute; inset-inline-start: 0; top: 1.25rem;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--accent); border: 3px solid var(--surface);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--accent) 55%, transparent);
}
.timeline .tl-year {
  font-family: var(--font-display), serif; font-weight: var(--display-weight, 600);
  color: var(--primary); font-size: 1.05rem; display: block;
  font-variant-numeric: tabular-nums;
}
.timeline .tl-role { font-weight: 600; }
.timeline p { color: var(--muted); font-size: .95rem; margin-top: .15rem; }

/* contact details — set free on the page like the hero credentials */
.contact-lines { list-style: none; padding: 0; margin: 1.5rem 0 0; display: flex; flex-direction: column; gap: 1.05rem; }
.contact-lines li { display: flex; align-items: flex-start; gap: .8rem; max-width: 60ch; }
.contact-lines svg { color: var(--accent); flex: none; margin-top: .2rem; }
.contact-lines a { color: var(--text); text-decoration: none; }
.contact-lines a:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.contact-note { color: var(--muted); font-size: .95rem; }

.map-embed {
  width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 16px;
  box-shadow: var(--shadow-card); display: block;
}

/* hours table — TODAY unmistakable */
.hours-table { width: 100%; max-width: 34rem; border-collapse: collapse; margin-top: 1.25rem; }
.hours-table th, .hours-table td {
  text-align: start; padding: .65rem .9rem; font-size: .95rem;
  border-bottom: 1px solid color-mix(in srgb, var(--primary) 8%, transparent);
}
.hours-table th { font-weight: 600; }
.hours-table td { color: var(--muted); font-variant-numeric: tabular-nums; }
.hours-table tr.today { background: color-mix(in srgb, var(--accent) 14%, var(--surface)); }
.hours-table tr.today th { font-weight: 700; color: var(--primary); }
.hours-table tr.today td { color: var(--text); }

/* form — visible labels, generous targets, quiet chrome */
.form { max-width: 34rem; margin-top: 1.5rem; }
.form-field { margin-bottom: 1.15rem; }
.form-field label { display: block; font-weight: 600; font-size: .95rem; margin-bottom: .4rem; }
.form-field input, .form-field textarea, .form-field select {
  width: 100%; padding: .8rem 1rem; font: inherit; color: var(--text);
  background: var(--surface);
  border: 1.5px solid color-mix(in srgb, var(--primary) 22%, transparent);
  border-radius: 12px; min-height: 48px;
}
.form-field textarea { min-height: 7.5rem; resize: vertical; }
.form-field input:focus-visible, .form-field textarea:focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px; border-color: var(--primary);
}
.form-field input:user-invalid, .form-field textarea:user-invalid { border-color: #B3452E; }
.form-hint { font-size: .85rem; color: var(--muted); margin-top: .35rem; }
.form-privacy { font-size: .85rem; color: var(--muted); margin-block: .35rem 1.2rem; }
.form-privacy a { color: inherit; }
.form .btn { width: 100%; justify-content: center; }
.honey { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
html[dir="rtl"] .honey { left: auto; right: -9999px; }
html[dir="rtl"] .skip-link { left: auto; right: -9999px; }
html[dir="rtl"] .skip-link:focus { left: auto; right: 0; }

/* FAQ — native details, styled quiet */
.faq-list { margin-top: 1.5rem; max-width: 65ch; }
.faq-list details {
  border: 1px solid color-mix(in srgb, var(--primary) 8%, transparent);
  border-radius: 16px; background: var(--surface);
  padding: 0; margin-bottom: .8rem; box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.faq-list summary {
  cursor: pointer; list-style: none; display: flex; align-items: center; gap: .75rem;
  justify-content: space-between; font-weight: 600; padding: 1.05rem 1.3rem;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after {
  content: '+'; color: var(--accent); font-size: 1.35rem; line-height: 1;
  font-weight: 400; flex: none; transition: rotate .25s ease;
}
.faq-list details[open] summary::after { rotate: 45deg; }
.faq-list summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 16px; }
.faq-list details > div { padding: 0 1.3rem 1.15rem; color: var(--muted); }

/* related services + prose pages */
.related { margin-top: 2.5rem; }
.prose h2 { margin-top: 2.2rem; }
.prose p, .prose li { color: var(--muted); }
.prose ul { padding-inline-start: 1.2rem; margin-top: .6rem; }
.prose strong { color: var(--text); }

/* footer compliance line (RG 33075 Md. 5(1)(ı)) */
.footer-legal { font-size: .78rem; color: rgba(255,255,255,.6); text-align: center; padding-bottom: .4rem; max-width: none; }
.footer-legal a { color: inherit; }

/* language switcher inside footer quick links (mobile reachability) */
@media print {
  .page-head .rule, .breadcrumb { display: none; }
}
