/* ===== Meridini base theme ===== */
:root{
  --clr-dark:#0E0F10;
  --clr-slate:#2A2F36;
  --clr-primary:#B46A3C;
  --clr-primary-alt: #C47C40; /* for slate background */
  --clr-secondary:#2E6B4D;
  --clr-platinum:#B7BDC6;
  --clr-platinum-alt:#8D959E; /* for slate background */
  --clr-navy:#0F2A43;
  --clr-white:#FFFFFF;

  --radius-lg:1.25rem;
  --radius-md:.75rem;
  --shadow-md:0 10px 25px rgba(0,0,0,.12);
  --shadow-sm:0 6px 16px rgba(0,0,0,.08);
}

/* Typography */
body{
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
  color: var(--clr-dark);
  line-height: 1.6;
  background-color: #fff;
}
h1,h2,h3,h4{
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  color: var(--clr-dark);
}
.section-title{ margin-bottom: .5rem; }

.btn {
  text-transform: uppercase; letter-spacing: 0.1em; font-size: 0.8em;
}

h3.cite {
  color: var(--clr-platinum);
  font-size: 0.7em;
  font-weight: 400;
  font-family: 'Inter', sans-serif;
  margin-bottom: 0;
  margin-top: 3em;
  padding-bottom: 0.3em;
  text-transform: uppercase; letter-spacing: 0.2em;
}
.bg-slate h3.cite,
.bg-slate ol.cite {
  color: var(--clr-platinum-alt);
}
a:link, a:visited {
  color: var(--clr-primary);
}
.bg-slate a:hover {
  color: var(--clr-primary-alt) !important;
}

.bg-slate span.cite-badge {
  background-color: var(--clr-platinum-alt);
  color: var(--clr-slate);
}
ol.cite {
  color: var(--clr-platinum);
  font-size: 0.7em;
  padding: 0 1em 1em 1em;
  margin-left: 1.8em;
  counter-reset: cite-counter;  /* initialize only once if needed */
}

.accordion-button:focus {
  box-shadow: none;
  outline: none; /* remove default outline */
}
.accordion-button:not(.collapsed) {
  background: var(--clr-platinum);
  color: black;
}

ol.cite li {
  counter-increment: cite-counter;
}

ol.cite li::marker {
  content: counter(cite-counter) ". ";
}
.cite a:link,
.cite a:visited {
  color: inherit;
  text-decoration: none;
}
.cite a:hover,
.cite a:active {
  color: var(--clr-primary);
}
span.cite-badge {
  position: relative;
  top: -0.2em;
  background-color: var(--clr-platinum);
  border-radius: 1em;
  font-size: 0.6em;
  color: #fff;
  padding: 0 0.5em;
  margin: 0 2px;
}
.bg-slate .subtitle {
  color: var(--clr-primary-alt);
}
.emph-primary strong,
.emph-primary i.bi {
  color: var(--clr-primary);
}
.emph-primary-alt strong,
.emph-primary-alt i.bi {
  color: var(--clr-primary-alt);
}

a.link-arrow:link,
a.link-arrow:visited {
  color: var(--clr-slate);
  text-decoration: none;
  font-weight: 300; text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.8em;
  transition: * 0.5s ease;
}
a.link-arrow:hover,
a.link-arrow:active {
  color: var(--clr-primary);
}
a.link-arrow .bi-arrow-right {
  position: relative;
  transition: all 0.5s ease;
  left: 0;
}
a.link-arrow:hover .bi-arrow-right {
  left: 0.5em;
}
h3.h6 {
  color: var(--clr-primary);
}

.text-dark{ color: var(--clr-dark) !important; }
.text-platinum{ color: var(--clr-platinum) !important; }
.bg-slate{ background-color: var(--clr-slate) !important; }
.badge-secondary{ background-color: var(--clr-secondary); color: #fff; border-radius: 999px; padding:.25rem .5rem; font-size:.75rem }
.card-platinum{ border:1px solid var(--clr-platinum); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.btn-primary,
a.btn-primary:link,
a.btn-primary:visited {
  --bs-btn-color:#fff;
  --bs-btn-bg:var(--clr-primary);
  --bs-btn-border-color:var(--clr-primary);
  --bs-btn-hover-bg:#9d5a31;
  --bs-btn-hover-border-color:#9d5a31;
  --bs-btn-focus-shadow-rgb:180,106,60;
  color: var(--clr-white);
}
.kpis .kpi{ font-size:.95rem; color:#555; }
.kpis .kpi .kpi-value{ font-weight:600; color:var(--clr-navy); }

/* Navbar (transparent -> solid on scroll) */
.navbar{ background: transparent; transition: background-color .5s ease, box-shadow .5s ease; }
.navbar .navbar-brand{ color:#fff; opacity: 0;}
.navbar .nav-link.active { color: var(--clr-primary) !important; }
.navbar .nav-link{ color:#e8e8e8; font-weight: 300; text-transform: uppercase; letter-spacing: 0.2em; font-size: 0.8em;}
.navbar a.nav-link:hover { color: var(--clr-slate); }
.navbar .btn-primary, .navbar a.btn-primary:link{ border:0; color: var(--clr-primary);--bs-btn-color:#0E0F10; --bs-btn-bg:#fff; --bs-btn-border-color:#fff; }
.navbar .btn-primary:hover, .navbar a.btn-primary:hover{ color: var(--clr-white); background-color: var(--clr-primary)}
.navbar.scrolled{
  background: #fff;
  box-shadow: 0 2px 14px rgba(0,0,0,.06);
}
ul.space-after {
  margin-bottom: 1.5em !important;
}
.navbar.scrolled .navbar-brand {
  opacity: 1;
  transition: opacity 2s ease
}
.navbar.scrolled .nav-link{ color:var(--clr-dark);}
.navbar.scrolled .btn-primary, .navbar.scrolled a.btn-primary, .navbar.scrolled a.btn-primary.active {
  color: var(--clr-white);background-color:var(--clr-primary);--bs-btn-color:#fff; --bs-btn-bg:var(--clr-primary); --bs-btn-border-color:var(--clr-primary);
}

.navbar-brand, a.navbar-brand {
  display: relative;
  margin-bottom: -1.6em;
  height: 4em;
}
.navbar-brand img {
  height: 100%;
}
.navbar-brand .fw-semibold {
  display: none;
}

.subtitle {
  margin-bottom: 1.8em !important;
  color: var(--clr-primary);
}

img.circle-highlight {
  width: 90%;
  height: 90%;            /* fill parent */
  aspect-ratio: 1 / 1;     /* stay perfectly square if parent height is auto */
  object-fit: cover;        /* crop to fill */
  object-position: center;  /* center the subject */
  border-radius: 50%;       /* make it a circle */
  display: block;           /* remove inline-gap quirks */
  max-width: 20em;
}

/* No-JS safe state: keep nav expanded and show links dark on light */
.no-js .navbar{ background:#fff; }
.no-js .navbar .navbar-collapse{ display:block !important; }
.no-js .navbar [data-bs-toggle="collapse"]{ display:none; }
.no-js .navbar .nav-link{ color:var(--clr-dark); }

/* Hero */
.hero{
/*  padding-top: calc(72px + 4rem); /* account for fixed nav + breathing room */
  padding-bottom: 4rem;
  height: 100vh;
  background:
    linear-gradient(90deg, rgba(15, 42, 67, 0.8), rgba(255,255,255,0)),
    radial-gradient(1200px 500px at 80% -10%, rgba(46,107,77,.18), transparent 60%),
    linear-gradient(180deg, rgba(183,189,198,0), rgba(255,255,255,0)),
    url('../img/hero.jpg') center center no-repeat;
  background-size: cover, cover, cover;
}
.hero .btn{ border-radius: var(--radius-md); }
.hero .logo {
  height: 4em;
  margin-bottom: 2em;
}

.hero .invert,
.hero h1 {
  color: #fff;
}

/* Meridian arc animation (CSS only, subtle) */
.meridian-arc{
  position:absolute; inset: -20% -10% auto auto; width: 55vmin; height: 55vmin;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.2);
  animation: floatArc 12s ease-in-out infinite;
}
@keyframes floatArc{
  0%,100%{ transform: translateY(0) rotate(0deg); opacity:.6; }
  50%{ transform: translateY(-10px) rotate(4deg); opacity:.9; }
}
.text-right {
  text-align: right;
}

/* Sections */
.section-padding{ padding: 4rem 0; }
@media (min-width: 992px){ .section-padding{ padding: 5rem 0; } }

/* Flow diagram */
.flow{
  grid-template-columns: repeat( auto-fit, minmax(180px,1fr) );
}
.flow-step{
  background:#fff; border:1px solid var(--clr-platinum); border-radius: var(--radius-md);
  padding:1rem; text-align:center; box-shadow: var(--shadow-sm);
}
.flow-step i{ color: var(--clr-primary); font-size: 1.5rem; }

/* Cards */
.card{ border-radius: var(--radius-md); }
.card .card-img-top{ object-fit: cover; height: 180px; }

/* ---------- Card System Additions ---------- */
.card-clear{border:none!important;background:transparent!important;box-shadow:none!important}
.card-clear .card-title{font-family:var(--font-sans,'Inter',sans-serif);font-weight:600}
.card-clear .bi{color:var(--clr-primary);opacity:.9}
.card-contrast{border:none;background:var(--slate,#0E0F10);color:var(--platinum,#F4F4F4);box-shadow:0 .25rem .75rem rgba(0,0,0,.25);transition:transform .15s ease,box-shadow .15s ease}
.card-platinum:hover{transform:translateY(-2px);box-shadow:0 .5rem 1rem rgba(0,0,0,.3)}
.card-contrast .bi{color:var(--copper,#B46A3C);filter:drop-shadow(0 0 2px rgba(180,106,60,.3))}
.card-contrast .card-title{font-family:var(--font-serif,'Playfair Display',serif);color:var(--copper,#B46A3C)}
.card-contrast .card-text{color:rgba(255,255,255,.85)}


/* ---- Card Title sizing & variant reinforcement (patch) ---- */
.card .card-text{font-size:.9em;line-height:1.2;}
.card .card-title{font-size:1.3rem;line-height:1.2}
.card-platinum .card-title{font-family:var(--font-serif,'Playfair Display',serif)!important;color:var(--clr-primary)!important}
.card-platinum .bi{color:var(--clr-primary)!important}
ul.card-text {
  list-style: none;
  margin: 0;
  padding: 0;
}


/* CTA band */
.cta-band{ background-image: linear-gradient(180deg, rgba(42,47,54,.9), rgba(42,47,54,.9)), url('../img/hero.jpg'); background-size: cover; background-position:center; }

/* Footer */
.site-footer a{ text-decoration:none; }

/* Skip link & focus styles */
.skip-to-content{
  position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;
}
.skip-to-content:focus{
  left: 8px; top: 8px; width:auto; height:auto; background:#fff; color:var(--clr-dark);
  padding:.5rem .75rem; border-radius: .5rem; box-shadow: var(--shadow-sm);
}
:focus-visible{
  outline:3px solid var(--clr-primary);
  outline-offset: 2px;
}

/* Back to top */
.back-to-top{
  position:fixed; right:1rem; bottom:1rem; display:none; z-index:1030;
  border-radius: 999px; padding:.6rem .7rem; box-shadow: var(--shadow-sm);
}

/* Accessibility: color contrast tweaks */
.btn-outline-light, a.btn-outline-light:link{ color:#fff; border-color:#fff; backdrop-filter: blur(10px); }
.btn-outline-light:hover, a.btn-outline-light:hover{ background:#fff; color:var(--clr-dark); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  *{ animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Utilities (minor) */
.sr-only-focusable:not(:focus):not(:focus-within){ position: absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }


