/* =========================================================
   LA REINE FOUNDATION — Design System
   Signature: "She holds the world" — a dashed orbit ring motif
   drawn from the logo (a young woman holding the globe), used
   throughout as a recurring, meaningful device.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,500;1,9..144,600&family=Manrope:wght@400;500;600;700;800&family=Caveat:wght@600;700&display=swap');

:root{
  /* --- Brand colors, sampled directly from the foundation logo --- */
  --orange:        #EE7203;   /* primary — optimism */
  --orange-600:    #D66200;
  --orange-700:    #B24F00;
  --orange-light:  #FF9E44;
  --orange-pale:   #FFF1E1;
  --orange-pale-2: #FFF8F0;

  --teal:          #2C727E;   /* secondary — calm */
  --teal-dark:     #164048;
  --teal-deep:     #0B262B;
  --teal-pale:     #EAF4F4;

  --ink:           #0B1A20;   /* near-black, warm teal-black from logo */
  --ink-soft:      #3A4A4E;
  --paper:         #FFFFFF;
  --cream:         #FFFEFC;

  --line:          rgba(11,26,32,0.10);
  --line-strong:   rgba(11,26,32,0.16);

  --shadow-sm: 0 2px 10px rgba(11,26,32,0.06);
  --shadow-md: 0 12px 32px rgba(11,26,32,0.10);
  --shadow-lg: 0 24px 60px rgba(11,26,32,0.14);
  --shadow-orange: 0 14px 30px rgba(238,114,3,0.28);

  --radius-sm: 10px;
  --radius-md: 18px;
  --radius-lg: 28px;
  --radius-pill: 999px;

  --container: 1200px;

  --ease: cubic-bezier(.22,1,.36,1);
  --dur: .6s;

  --font-display: 'Fraunces', 'Georgia', serif;
  --font-body: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-script: 'Caveat', cursive;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  *,*::before,*::after{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}
body{
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width: 100%; display:block; }
a{ color: inherit; text-decoration: none; }
h1,h2,h3,h4,h5{ font-family: var(--font-display); color: var(--ink); font-weight: 600; margin: 0; line-height: 1.06; letter-spacing: -0.01em; }
p{ margin: 0; }
::selection{ background: var(--orange); color: #fff; }

:focus-visible{
  outline: 3px solid var(--orange);
  outline-offset: 3px;
  border-radius: 4px;
}

.container-xl{ width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family: var(--font-body); font-weight: 700; font-size: .78rem;
  letter-spacing: .14em; text-transform: uppercase; color: var(--orange-600);
}
.eyebrow::before{
  content:""; width: 7px; height: 7px; border-radius: 50%; background: var(--orange);
  box-shadow: 0 0 0 4px var(--orange-pale);
}

.script{ font-family: var(--font-script); font-weight: 700; }

/* ---------- Scroll progress bar ---------- */
#scroll-progress{
  position: fixed; top:0; left:0; height: 3px; width: 0%;
  background: linear-gradient(90deg, var(--orange), var(--orange-light));
  z-index: 2000; transition: width .1s linear;
}

/* ---------- Top utility strip ---------- */
.topstrip{
  background: var(--ink);
  color: rgba(255,255,255,.78);
  font-size: .8rem;
  padding: 7px 0;
}
.topstrip .container-xl{ display:flex; align-items:center; justify-content:space-between; gap: 12px; flex-wrap: wrap; }
.topstrip a{ color: rgba(255,255,255,.78); }
.topstrip a:hover{ color: var(--orange-light); }
.topstrip .ts-links{ display:flex; gap:18px; align-items:center; }
.topstrip .ts-tag{ color: var(--orange-light); font-weight: 700; letter-spacing: .04em; }

/* ---------- Navbar ---------- */
.site-nav{
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
  border-bottom: 1px solid var(--line);
  transition: box-shadow .3s var(--ease), background .3s var(--ease);
}
.site-nav.is-scrolled{ box-shadow: var(--shadow-sm); background: rgba(255,255,255,.96); }
.site-nav .nav-inner{ display:flex; align-items:center; justify-content:space-between; padding: 14px 0; gap: 18px; }
.brand{ display:flex; align-items:center; gap:10px; font-family: var(--font-display); font-weight:700; font-size:1.18rem; color: var(--ink); }
.brand img{ height: 42px; width:auto; }
.brand .brand-sub{ display:block; font-family: var(--font-body); font-weight:600; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color: var(--teal); margin-top:-2px;}

.nav-links{ display:flex; align-items:center; gap: 6px; list-style:none; margin:0; padding:0; }
.nav-links a{
  position: relative; display:inline-block; padding: 10px 16px; font-weight:600; font-size:.94rem; color: var(--ink-soft);
  border-radius: var(--radius-pill); transition: color .25s, background .25s;
}
.nav-links a:hover{ color: var(--ink); background: var(--orange-pale-2); }
.nav-links a.active{ color: var(--orange-700); background: var(--orange-pale); }

.nav-cta{ display:flex; align-items:center; gap:10px; }

.navbar-toggler-custom{
  display:none; border:none; background:none; width:44px; height:44px; border-radius:50%;
  align-items:center; justify-content:center; cursor:pointer;
}
.navbar-toggler-custom span, .navbar-toggler-custom span::before, .navbar-toggler-custom span::after{
  content:""; display:block; width:22px; height:2px; background: var(--ink); position:relative; transition: all .3s var(--ease);
}
.navbar-toggler-custom span::before{ position:absolute; top:-7px; }
.navbar-toggler-custom span::after{ position:absolute; top:7px; }
.navbar-toggler-custom.open span{ background: transparent; }
.navbar-toggler-custom.open span::before{ top:0; transform: rotate(45deg); background: var(--orange);}
.navbar-toggler-custom.open span::after{ top:0; transform: rotate(-45deg); background: var(--orange);}

@media (max-width: 991.98px){
  .nav-links{
    position:fixed; inset: 74px 0 0 0; height: calc(100vh - 74px); background: var(--paper);
    flex-direction:column; align-items:stretch; gap:2px; padding: 18px 24px;
    transform: translateX(100%); transition: transform .4s var(--ease); overflow-y:auto;
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-links a{ padding: 14px 18px; font-size: 1.05rem; }
  .navbar-toggler-custom{ display:inline-flex; }
  .nav-cta .btn{ display:none; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family: var(--font-body); font-weight: 700; font-size: .92rem;
  padding: 13px 26px; border-radius: var(--radius-pill); border: 2px solid transparent;
  cursor:pointer; transition: transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s, border-color .3s;
  white-space: nowrap;
}
.btn-primary{ background: var(--orange); color: #fff; box-shadow: var(--shadow-orange); }
.btn-primary:hover{ background: var(--orange-600); transform: translateY(-3px); box-shadow: 0 20px 38px rgba(238,114,3,.36); color:#fff; }
.btn-primary:active{ transform: translateY(-1px); }

.btn-outline{ background: transparent; border-color: var(--ink); color: var(--ink); }
.btn-outline:hover{ background: var(--ink); color:#fff; transform: translateY(-3px); }

.btn-ghost-orange{ background: var(--orange-pale); border-color: var(--orange-pale); color: var(--orange-700); }
.btn-ghost-orange:hover{ background: var(--orange); border-color: var(--orange); color:#fff; transform: translateY(-3px); }

.btn-white{ background:#fff; color: var(--ink); }
.btn-white:hover{ background: var(--orange); color:#fff; transform: translateY(-3px); }

.btn-teal{ background: var(--teal); color:#fff; }
.btn-teal:hover{ background: var(--teal-dark); transform: translateY(-3px); }

.btn-sm{ padding: 9px 18px; font-size: .82rem; }
.btn-icon{ width:18px; height:18px; transition: transform .3s var(--ease); }
.btn:hover .btn-icon{ transform: translate(4px,-3px); }

/* ---------- Section rhythm ---------- */
section{ position: relative; }
.section-pad{ padding: 108px 0; }
.section-pad-sm{ padding: 72px 0; }
@media (max-width: 767.98px){
  .section-pad{ padding: 64px 0; }
  .section-pad-sm{ padding: 48px 0; }
}
.bg-cream{ background: var(--cream); }
.bg-pale{ background: var(--orange-pale-2); }
.bg-teal{ background: var(--teal-deep); color:#fff; }
.bg-teal h1,.bg-teal h2,.bg-teal h3{ color:#fff; }
.bg-ink{ background: var(--ink); color: #fff; }
.bg-ink h1,.bg-ink h2,.bg-ink h3{ color:#fff; }

.section-head{ max-width: 680px; }
.section-head h2{ font-size: clamp(1.9rem, 3.2vw, 2.7rem); margin-top: 10px; }
.section-head p{ margin-top: 16px; font-size: 1.05rem; color: var(--ink-soft); line-height: 1.65; }
.section-head.centered{ margin: 0 auto; text-align:center; }

.divider-dot{ display:flex; align-items:center; gap: 10px; color: var(--teal); font-weight:700; font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; }
.divider-dot::before,.divider-dot::after{ content:""; height:1px; width: 34px; background: var(--line-strong); }

/* ---------- Orbit ring signature device ---------- */
.orbit-frame{ position: relative; display:inline-block; }
.orbit-frame::before{
  content:""; position:absolute; inset: -22px; border-radius: 50%;
  border: 1.5px dashed var(--orange-light); opacity:.85;
  animation: spin 26s linear infinite;
}
.orbit-frame::after{
  content:""; position:absolute; inset: -42px; border-radius: 50%;
  border: 1.5px dashed var(--teal); opacity:.35;
  animation: spin-rev 40s linear infinite;
}
@keyframes spin{ to{ transform: rotate(360deg); } }
@keyframes spin-rev{ to{ transform: rotate(-360deg); } }
.orbit-dot{
  position:absolute; width:14px; height:14px; border-radius:50%; background: var(--orange);
  top: -7px; left: 50%; box-shadow: 0 0 0 5px #fff, 0 4px 14px rgba(238,114,3,.5);
  animation: spin 26s linear infinite;
  transform-origin: 7px 129px;
}

/* ---------- Hero ---------- */
.hero{
  position: relative; overflow: hidden;
  padding: 64px 0 100px;
  background:
    radial-gradient(560px 420px at 88% -6%, var(--orange-pale) 0%, rgba(255,241,225,0) 70%),
    radial-gradient(700px 500px at -10% 110%, var(--teal-pale) 0%, rgba(234,244,244,0) 70%),
    var(--paper);
}
.hero-grid{ display:grid; grid-template-columns: 1.05fr .95fr; gap: 48px; align-items:center; }
@media (max-width: 991.98px){ .hero-grid{ grid-template-columns: 1fr; } }

.hero-badge{
  display:inline-flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--line);
  padding: 8px 16px 8px 8px; border-radius: var(--radius-pill); box-shadow: var(--shadow-sm); font-size:.82rem; font-weight:700;
}
.hero-badge .dotpulse{ width:9px; height:9px; border-radius:50%; background: var(--orange); position:relative; }
.hero-badge .dotpulse::after{ content:""; position:absolute; inset:-6px; border-radius:50%; background: var(--orange); opacity:.35; animation: pulse 1.8s ease-out infinite; }
@keyframes pulse{ 0%{ transform: scale(.5); opacity:.5;} 100%{ transform: scale(2.1); opacity:0;} }

.hero h1{ font-size: clamp(2.6rem, 5.2vw, 4.4rem); margin-top: 18px; }
.hero h1 em{ font-style: normal; color: var(--orange); position: relative; white-space: nowrap; }
.hero-lede{ font-size: 1.15rem; color: var(--ink-soft); max-width: 540px; margin-top: 20px; line-height: 1.7; }
.hero-actions{ display:flex; gap:14px; margin-top: 32px; flex-wrap: wrap; align-items:center; }

.hero-visual{ position:relative; display:flex; justify-content:center; align-items:center; min-height: 420px; }
.hero-photo{
  width: min(390px, 82vw); aspect-ratio: 4/5; border-radius: 34% 66% 62% 38% / 46% 40% 60% 54%;
  overflow:hidden; box-shadow: var(--shadow-lg); position:relative; z-index:2;
  border: 6px solid #fff;
}
.hero-photo img{ width:100%; height:100%; object-fit:cover; }

.floaty{
  position:absolute; background:#fff; border-radius: var(--radius-md); box-shadow: var(--shadow-md);
  padding: 14px 16px; display:flex; align-items:center; gap:12px; z-index:3; max-width:230px;
  animation: float 5s ease-in-out infinite;
}
.floaty.card-a{ top: 6%; left: -6%; animation-delay: .2s;}
.floaty.card-b{ bottom: 10%; right: -8%; animation-delay: 1.1s;}
@media (max-width: 575.98px){ .floaty{ display:none; } }
@keyframes float{ 0%,100%{ transform: translateY(0);} 50%{ transform: translateY(-12px);} }
.floaty .fi-ico{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:1.1rem;}
.floaty .fi-num{ font-family: var(--font-display); font-weight:700; font-size:1.3rem; line-height:1; }
.floaty .fi-label{ font-size:.72rem; color: var(--ink-soft); font-weight:600; }

.hero-blob{ position:absolute; border-radius:50%; filter: blur(2px); z-index:1; }

/* ---------- Marquee ribbon ---------- */
.marquee-wrap{ overflow:hidden; background: var(--ink); padding: 16px 0; transform: rotate(-1.4deg) scale(1.02); border-top: 2px solid var(--orange); border-bottom: 2px solid var(--orange); }
.marquee-track{ display:flex; width: max-content; animation: marquee 26s linear infinite; }
.marquee-track span{ display:inline-flex; align-items:center; gap: 18px; font-family: var(--font-display); font-weight:600; font-size: 1.5rem; color: #fff; padding: 0 26px; white-space:nowrap; }
.marquee-track span i{ color: var(--orange); font-style:normal; }
@keyframes marquee{ from{ transform: translateX(0);} to{ transform: translateX(-50%);} }

/* ---------- Stats ---------- */
.stat-card{ text-align:center; padding: 8px 10px; }
.stat-num{ font-family: var(--font-display); font-weight:700; font-size: clamp(2.2rem,4vw,3.2rem); color: var(--orange); }
.stat-label{ font-weight:600; color: var(--ink-soft); font-size:.92rem; margin-top:6px; }

/* ---------- Cards: Programs ---------- */
.prog-card{
  background:#fff; border-radius: var(--radius-lg); border: 1px solid var(--line); overflow:hidden;
  box-shadow: var(--shadow-sm); transition: transform .45s var(--ease), box-shadow .45s var(--ease); height:100%;
  display:flex; flex-direction:column;
}
.prog-card:hover{ transform: translateY(-10px); box-shadow: var(--shadow-lg); }
.prog-media{ position:relative; aspect-ratio: 16/11; overflow:hidden; }
.prog-media img{ width:100%; height:100%; object-fit:cover; transition: transform .7s var(--ease); }
.prog-card:hover .prog-media img{ transform: scale(1.08); }
.prog-num{
  position:absolute; top:16px; left:16px; width:44px; height:44px; border-radius:50%; background:#fff;
  display:flex; align-items:center; justify-content:center; font-family: var(--font-display); font-weight:700; color: var(--orange-700);
  box-shadow: var(--shadow-sm);
}
.prog-body{ padding: 26px 26px 28px; display:flex; flex-direction:column; gap:10px; flex:1; }
.prog-body h3{ font-size: 1.32rem; }
.prog-body p{ color: var(--ink-soft); line-height:1.6; font-size:.97rem; }
.prog-link{ margin-top:auto; display:inline-flex; align-items:center; gap:8px; font-weight:700; color: var(--orange-700); }
.prog-link svg{ transition: transform .3s var(--ease); }
.prog-card:hover .prog-link svg{ transform: translateX(5px); }

/* ---------- Testimonial / quote ---------- */
.quote-block{
  position:relative; background: var(--teal-deep); color:#fff; border-radius: var(--radius-lg);
  padding: 52px; overflow:hidden;
}
.quote-block::before{
  content:"“"; position:absolute; top:-10px; left:24px; font-family: var(--font-display); font-size:9rem; color: rgba(255,255,255,.08); line-height:1;
}
.quote-text{ font-family: var(--font-display); font-weight:500; font-style:italic; font-size: clamp(1.25rem,2.4vw,1.75rem); line-height:1.5; position:relative; }
.quote-name{ margin-top:22px; font-weight:700; }
.quote-role{ color: var(--orange-light); font-size:.85rem; font-weight:600; letter-spacing:.04em; text-transform:uppercase; }

/* ---------- Board grid ---------- */
/* ---------- Board grid ---------- */
.board-card{
  background:#fff;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
  height:100%;
  text-align:center;
  padding-bottom:22px;
  display:flex;
  flex-direction:column;
}

.board-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--shadow-lg);
}

/* Avatar Wrapper */
.board-avatar-wrap{
  padding:30px 30px 0;
  display:flex;
  justify-content:center;
  position:relative;
}

/* Dotted Ring */
.board-avatar-wrap::after{
  content:"";
  position:absolute;
  width:148px;
  height:148px;
  border-radius:50%;
  border:1.5px dashed rgba(238,114,3,.5);
  top:22px;
  left:50%;
  transform:translateX(-50%);
  pointer-events:none;
}

.board-card:hover .board-avatar-wrap::after{
  animation:spin 8s linear infinite;
}

/* Image */
.board-avatar{
  width:132px;
  height:132px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 10px 26px rgba(11,26,32,.18);
  background:#f5f5f5;
  position:relative;
  z-index:2;
}

.board-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.board-body{
  padding:18px 24px 0;
}

.board-body h3{
  font-size:1.14rem;
}

.board-role{
  color:var(--orange-700);
  font-weight:700;
  font-size:.82rem;
  letter-spacing:.03em;
  text-transform:uppercase;
  margin-top:6px;
  display:block;
}

.board-teaser{
  color:var(--ink-soft);
  font-size:.9rem;
  margin-top:10px;
  line-height:1.55;
}

.board-cta{
  margin-top:16px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-weight:700;
  font-size:.86rem;
  color:var(--teal);
}

.board-card:hover .board-cta{
  color:var(--orange-700);
}

.board-cta svg{
  transition:transform .3s var(--ease);
}

.board-card:hover .board-cta svg{
  transform:translateX(5px);
}

/* ---------- Profile page ---------- */
.profile-hero{
  padding: 56px 0 70px; background: linear-gradient(180deg, var(--orange-pale-2), var(--paper) 80%);
  border-bottom: 1px solid var(--line);
}
.profile-grid{ display:grid; grid-template-columns: 260px 1fr; gap: 46px; align-items:start; }
@media (max-width: 767.98px){ .profile-grid{ grid-template-columns: 1fr; } }
.profile-avatar{
  width:220px; height:220px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-weight:700; font-size:3.4rem; color:#fff; margin:0 auto;
  box-shadow: var(--shadow-lg); position:relative;
}
.profile-avatar::after{ content:""; position:absolute; inset:-14px; border-radius:50%; border: 1.5px dashed var(--orange); animation: spin 30s linear infinite; }
.profile-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
  display:block;
}
.profile-name{ font-size: clamp(1.9rem,3.4vw,2.6rem); }
.profile-role{ color: var(--orange-700); font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:.9rem; margin-top: 8px; display:block; }
.profile-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.tag-pill{ background: var(--teal-pale); color: var(--teal-dark); font-weight:700; font-size:.78rem; padding:7px 14px; border-radius: var(--radius-pill); }
.profile-copy p{ color: var(--ink-soft); line-height:1.8; font-size:1.04rem; margin-bottom: 18px; }
.profile-copy p:last-child{ margin-bottom:0; }
.back-link{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color: var(--ink-soft); margin-bottom: 26px; }
.back-link:hover{ color: var(--orange-700); }
.back-link svg{ transition: transform .3s var(--ease); }
.back-link:hover svg{ transform: translateX(-4px); }

.profile-other{ display:flex; align-items:center; justify-content:space-between; gap: 20px; padding: 22px 26px; border:1px solid var(--line); border-radius: var(--radius-md); background: var(--cream); }
.profile-other a{ font-weight:700; display:flex; align-items:center; gap:8px; }
.profile-other a:hover{ color: var(--orange-700); }

/* ---------- Timeline (about page) ---------- */
.timeline{ position:relative; padding-left: 34px; }
.timeline::before{ content:""; position:absolute; left:9px; top:6px; bottom:6px; width:2px; background: linear-gradient(var(--orange), var(--teal)); border-radius:2px; }
.timeline-item{ position:relative; padding-bottom: 40px; }
.timeline-item:last-child{ padding-bottom:0; }
.timeline-item::before{ content:""; position:absolute; left:-34px; top:4px; width:20px; height:20px; border-radius:50%; background:#fff; border:3px solid var(--orange); }
.timeline-item h4{ font-size:1.12rem; margin-bottom:6px; }
.timeline-item p{ color: var(--ink-soft); line-height:1.65; }

/* ---------- Values / logo meaning cards ---------- */
.value-card{
  background:#fff; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 28px;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
  height:100%;
}
.value-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-md); border-color: transparent; }
.value-ico{
  width:56px; height:56px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; margin-bottom:16px;
}

/* ---------- Accordion (FAQ) ---------- */
.faq-item{ border-bottom: 1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; padding: 22px 4px; display:flex; align-items:center;
  justify-content:space-between; gap: 16px; cursor:pointer; font-family: var(--font-body); font-weight:700; font-size:1.02rem; color: var(--ink);
}
.faq-q .plus{ width:28px; height:28px; border-radius:50%; background: var(--orange-pale); color: var(--orange-700); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition: transform .35s var(--ease), background .3s, color .3s; font-size:1.1rem; }
.faq-item.open .faq-q .plus{ transform: rotate(45deg); background: var(--orange); color:#fff; }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .4s var(--ease); }
.faq-a-inner{ padding: 0 4px 22px; color: var(--ink-soft); line-height:1.7; max-width: 780px; }

/* ---------- Contact ---------- */
.contact-panel{ background:#fff; border-radius: var(--radius-lg); border:1px solid var(--line); padding: 40px; box-shadow: var(--shadow-md); }
.form-control-lr{
  width:100%; padding: 14px 16px; border-radius: var(--radius-sm); border: 1.5px solid var(--line-strong);
  font-family: var(--font-body); font-size: .96rem; background: var(--cream); transition: border-color .25s, box-shadow .25s;
}
.form-control-lr:focus{ outline:none; border-color: var(--orange); box-shadow: 0 0 0 4px var(--orange-pale); background:#fff; }
label.form-label-lr{ font-weight:700; font-size:.86rem; margin-bottom:7px; display:block; }
.contact-info-card{ background: var(--ink); color:#fff; border-radius: var(--radius-lg); padding: 40px; height:100%; }
.contact-info-row{ display:flex; gap:14px; align-items:flex-start; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
.contact-info-row:last-child{ border-bottom:none; }
.contact-ico{ width:42px; height:42px; border-radius:12px; background: rgba(238,114,3,.18); color: var(--orange-light); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.social-row{ display:flex; gap:10px; margin-top: 26px; }
.social-btn{ width:42px; height:42px; border-radius:50%; background: rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; transition: background .3s, transform .3s; }
.social-btn:hover{ background: var(--orange); transform: translateY(-4px); }

/* ---------- CTA band ---------- */
.cta-band{
  border-radius: var(--radius-lg); background: linear-gradient(120deg, var(--orange) 0%, var(--orange-600) 100%);
  color:#fff; padding: 60px; position:relative; overflow:hidden;
}
.cta-band h2{ color:#fff; }
.cta-band::after{
  content:""; position:absolute; width: 340px; height:340px; border-radius:50%;
  border: 1.5px dashed rgba(255,255,255,.4); top:-140px; right:-100px; animation: spin 30s linear infinite;
}

/* ---------- Footer ---------- */
.site-footer{ background: var(--ink); color: rgba(255,255,255,.72); padding-top: 76px; }
.site-footer h5{ color:#fff; font-family: var(--font-body); font-weight:800; font-size:.86rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom: 18px;}
.site-footer a{ color: rgba(255,255,255,.68); }
.site-footer a:hover{ color: var(--orange-light); }
.footer-links{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:11px; }
.footer-bottom{ border-top:1px solid rgba(255,255,255,.1); margin-top: 50px; padding: 22px 0; font-size:.85rem; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.footer-brand p{ color: rgba(255,255,255,.6); line-height:1.7; margin-top:14px; max-width: 320px; }

/* ---------- Reveal-on-scroll ---------- */
.reveal{ opacity:0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible{ opacity:1; transform: translateY(0); }
.reveal-delay-1.is-visible{ transition-delay: .08s; }
.reveal-delay-2.is-visible{ transition-delay: .16s; }
.reveal-delay-3.is-visible{ transition-delay: .24s; }
.reveal-delay-4.is-visible{ transition-delay: .32s; }

/* ---------- Utility colorways for icons/avatars ---------- */
.cw-orange{ background: linear-gradient(135deg, var(--orange), var(--orange-700)); }
.cw-teal{ background: linear-gradient(135deg, var(--teal), var(--teal-dark)); }
.cw-ink{ background: linear-gradient(135deg, #3a4a4e, var(--ink)); }
.ico-orange{ background: var(--orange-pale); color: var(--orange-700); }
.ico-teal{ background: var(--teal-pale); color: var(--teal-dark); }

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  padding: 62px 0 60px; text-align:center;
  background: radial-gradient(700px 320px at 50% -10%, var(--orange-pale) 0%, rgba(255,241,225,0) 70%), var(--paper);
  border-bottom: 1px solid var(--line);
}
.page-hero h1{ font-size: clamp(2.3rem, 4.6vw, 3.6rem); margin-top:14px; }
.page-hero p{ max-width: 640px; margin: 18px auto 0; color: var(--ink-soft); font-size:1.06rem; line-height:1.7;}
.breadcrumb-lr{ display:flex; gap:8px; justify-content:center; align-items:center; font-size:.85rem; font-weight:700; color: var(--ink-soft); }
.breadcrumb-lr a:hover{ color: var(--orange-700); }

/* ---------- Misc ---------- */
.ratio-box{ position:relative; overflow:hidden; border-radius: var(--radius-lg); }
.ratio-box img{ width:100%; height:100%; object-fit:cover; }
.tag-strip{ display:flex; flex-wrap:wrap; gap:10px; }

.back-to-top{
  position:fixed; right:22px; bottom:22px; width:48px; height:48px; border-radius:50%;
  background: var(--ink); color:#fff; display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-md); opacity:0; visibility:hidden; transform: translateY(12px);
  transition: all .35s var(--ease); z-index: 900;
}
.back-to-top.show{ opacity:1; visibility:visible; transform: translateY(0); }
.back-to-top:hover{ background: var(--orange); }

.lr-hr{ border:none; height:1px; background: var(--line); margin: 0; }
