/* ============================================================================
   Vila Gabriel Sinaia, design system
   Paletă: familia Forest (pin adânc + os rece + un singur accent chihlimbar)
   Tipografie: Cormorant Garamond (display, patrimoniu) + Outfit (text)
   Scală de formă: totul drept, radius 0 (regulă documentată în DESIGN.md)
   ========================================================================== */

/* ---------- Fonturi auto-găzduite (fără Google Fonts <link>) ---------- */
@font-face {
  font-family: 'Cormorant Garamond';
  src: url('../assets/fonts/CormorantGaramond-normal-latin.woff2') format('woff2');
  font-weight: 300 600; font-style: normal; font-display: swap;
  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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  src: url('../assets/fonts/CormorantGaramond-normal-latin-ext.woff2') format('woff2');
  font-weight: 300 600; font-style: normal; font-display: swap;
  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;
}
@font-face {
  font-family: 'Cormorant Garamond';
  src: url('../assets/fonts/CormorantGaramond-italic-latin.woff2') format('woff2');
  font-weight: 300 600; font-style: italic; font-display: swap;
  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;
}
@font-face {
  font-family: 'Outfit';
  src: url('../assets/fonts/Outfit-normal-latin.woff2') format('woff2');
  font-weight: 200 700; font-style: normal; font-display: swap;
  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;
}
@font-face {
  font-family: 'Outfit';
  src: url('../assets/fonts/Outfit-normal-latin-ext.woff2') format('woff2');
  font-weight: 200 700; font-style: normal; font-display: swap;
  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;
}

/* ---------- Tokens ---------- */
:root {
  --pine-900: #0E211C;
  --pine-800: #14302A;
  --pine-700: #1B4038;
  --pine-600: #26564A;
  --pine-400: #4E7A6C;
  --pine-300: #8FAEA2;
  --pine-100: #C4D6CD;
  --mist-50:  #F1F4EF;
  --mist-100: #E7EBE3;
  --mist-200: #D8DED3;
  --stone-500: #6B7A70;
  --stone-400: #8A9791;
  --ink-900:  #14201C;
  --amber-500: #C98A2E;
  --amber-400: #E0A748;
  --amber-100: #F2E2C4;

  --shadow-float: 0 24px 60px -30px rgb(14 33 28 / .42);
  --ease: cubic-bezier(.22, .61, .36, 1);
  --nav-h: 72px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--mist-50);
  color: var(--ink-900);
  font-family: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  font-weight: 400;
  font-size: 1.0625rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

img { max-width: 100%; display: block; }

/* ---------- Tipografie ---------- */
.display, h1, h2, h3.serif {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.01em;
}
.display-xl { font-size: clamp(2.5rem, 6.2vw, 5rem); line-height: 0.98; }
.display-lg { font-size: clamp(2.05rem, 4.2vw, 3.35rem); line-height: 1.04; }
.display-md { font-size: clamp(1.6rem, 2.6vw, 2.15rem); line-height: 1.12; }
/* Hero scale is planned together with the hero asset so the headline holds 2 lines
   at desktop in a ~55% column. Never start a 6-word headline at 5rem. */
.display-hero { font-size: clamp(2.15rem, 4.7vw, 3.85rem); line-height: 1.03; letter-spacing: -0.012em; }
/* clearance pentru descendente pe italic în display */
.display em, .display-xl em, .display-lg em { font-style: italic; line-height: 1.12; padding-bottom: .06em; }

.eyebrow {
  font-family: 'Outfit', sans-serif;
  font-size: 0.6875rem; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--stone-500);
}
.eyebrow--onDark { color: var(--pine-300); }
.eyebrow--amber { color: var(--amber-500); }

.lede { font-size: 1.0625rem; line-height: 1.72; color: var(--stone-500); max-width: 62ch; }
.lede--onDark { color: var(--pine-100); }
.prose-vg p { max-width: 66ch; margin: 0 0 1.15rem; color: var(--ink-900); }
.prose-vg p.muted { color: var(--stone-500); }
.tnum { font-variant-numeric: tabular-nums; }

/* ---------- Layout ---------- */
.shell { max-width: 1320px; margin: 0 auto; padding: 0 1.5rem; }
@media (min-width: 768px) { .shell { padding: 0 2.5rem; } }
.section { padding: 5rem 0; }
@media (min-width: 768px) { .section { padding: 7rem 0; } }
@media (min-width: 1024px) { .section { padding: 9rem 0; } }
.section--tight { padding: 3.5rem 0; }
@media (min-width: 1024px) { .section--tight { padding: 5rem 0; } }
.section--dark { background: var(--pine-900); color: var(--mist-50); }
.section--band { background: var(--mist-100); }

/* Hero fills the viewport on tall screens and grows past it when content needs more.
   dvh keeps iOS Safari's collapsing address bar from jumping the layout. */
.hero { min-height: 100dvh; display: grid; align-items: center; }

.rule { height: 1px; background: var(--mist-200); border: 0; }
.rule--dark { background: rgb(143 174 162 / .22); }

/* ---------- Butoane (contrast verificat) ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
  font-family: 'Outfit', sans-serif; font-size: .875rem; font-weight: 500;
  letter-spacing: .04em; text-decoration: none; white-space: nowrap;
  padding: 1rem 1.6rem; border: 1px solid transparent; border-radius: 0;
  cursor: pointer; transition: background .28s var(--ease), color .28s var(--ease), border-color .28s var(--ease), transform .18s var(--ease);
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--pine-700); color: #fff; }      /* 10.4:1 */
.btn--primary:hover { background: var(--pine-600); }
.btn--amber { background: var(--amber-400); color: var(--ink-900); } /* 9.1:1 */
.btn--amber:hover { background: var(--amber-500); color: #fff; }
.btn--ghost { border-color: var(--mist-200); color: var(--ink-900); background: transparent; }
.btn--ghost:hover { border-color: var(--pine-700); background: var(--mist-100); }
.btn--ghostDark { border-color: rgb(143 174 162 / .45); color: var(--mist-50); background: transparent; }
.btn--ghostDark:hover { border-color: var(--amber-400); color: var(--amber-400); }
.btn--wide { width: 100%; }
.btn--sm { padding: .7rem 1.1rem; font-size: .8125rem; }

.link-u { color: var(--pine-700); text-decoration: none; border-bottom: 1px solid var(--pine-300); padding-bottom: 1px; transition: border-color .25s var(--ease), color .25s var(--ease); }
.link-u:hover { color: var(--amber-500); border-color: var(--amber-500); }

/* ---------- Nav ---------- */
.nav {
  position: fixed; inset: 0 0 auto; z-index: 60; height: var(--nav-h);
  display: flex; align-items: center;
  transition: background .35s var(--ease), border-color .35s var(--ease), backdrop-filter .35s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav--top { background: linear-gradient(to bottom, rgb(14 33 28 / .58), rgb(14 33 28 / 0)); }
.nav--solid { background: rgb(14 33 28 / .94); backdrop-filter: blur(14px) saturate(150%); border-bottom-color: rgb(143 174 162 / .18); }
.nav__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; width: 100%; }
.nav__links { display: none; align-items: center; gap: 1.9rem; }
@media (min-width: 1024px) { .nav__links { display: flex; } }
.nav__link {
  font-size: .8125rem; font-weight: 400; letter-spacing: .075em; text-transform: uppercase;
  color: var(--mist-50); text-decoration: none; padding: .35rem 0;
  border-bottom: 1px solid transparent; transition: color .25s var(--ease), border-color .25s var(--ease);
}
.nav__link:hover { color: var(--amber-400); }
.nav__link[aria-current="page"] { color: #fff; border-bottom-color: var(--amber-400); }
.wordmark { display: flex; align-items: center; gap: .7rem; text-decoration: none; color: #fff; }
.wordmark__mark {
  width: 38px; height: 38px; flex: 0 0 38px; display: grid; place-items: center;
  border: 1px solid var(--amber-400); color: var(--amber-400);
  font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; line-height: 1;
}
.wordmark__text { display: flex; flex-direction: column; line-height: 1; }
.wordmark__name { font-family: 'Cormorant Garamond', serif; font-size: 1.3rem; letter-spacing: .005em; }
.wordmark__sub { font-size: .5625rem; letter-spacing: .26em; text-transform: uppercase; color: var(--pine-300); margin-top: .22rem; }
.nav__toggle { display: grid; place-items: center; width: 42px; height: 42px; background: none; border: 1px solid rgb(143 174 162 / .4); color: #fff; cursor: pointer; }
@media (min-width: 1024px) { .nav__toggle { display: none; } }

.drawer { position: fixed; inset: 0; z-index: 70; background: var(--pine-900); color: var(--mist-50);
  display: grid; grid-template-rows: auto 1fr auto; padding: 1.1rem 1.5rem 2rem;
  transform: translateY(-100%); transition: transform .42s var(--ease); visibility: hidden; }
.drawer[data-open="true"] { transform: none; visibility: visible; }
.drawer__links { display: flex; flex-direction: column; justify-content: center; gap: .2rem; }
.drawer__link { font-family: 'Cormorant Garamond', serif; font-size: 2rem; color: var(--mist-50); text-decoration: none; padding: .5rem 0; border-bottom: 1px solid rgb(143 174 162 / .16); }
.drawer__link:hover { color: var(--amber-400); }

/* ---------- Card de rezervare ---------- */
.bookcard { background: var(--mist-50); border: 1px solid var(--mist-200); box-shadow: var(--shadow-float); padding: 1.75rem; }
.bookcard__row { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .72rem 0; border-bottom: 1px solid var(--mist-200); }
.bookcard__row:last-of-type { border-bottom: 0; }
.bookcard__k { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--stone-500); }
.bookcard__v { font-weight: 500; }

/* ---------- Chip-uri de filtru ---------- */
.chips { display: flex; flex-wrap: wrap; gap: .5rem; }
.chip {
  font-family: 'Outfit', sans-serif; font-size: .8125rem; font-weight: 400;
  padding: .55rem 1.05rem; border: 1px solid var(--mist-200); background: transparent;
  color: var(--stone-500); cursor: pointer; border-radius: 0;
  transition: all .24s var(--ease);
}
.chip:hover { border-color: var(--pine-400); color: var(--ink-900); }
.chip[aria-pressed="true"] { background: var(--pine-700); border-color: var(--pine-700); color: #fff; }

/* ---------- Card camera ---------- */
.roomcard { position: relative; display: block; text-decoration: none; color: inherit; background: var(--mist-50); border: 1px solid var(--mist-200); transition: border-color .3s var(--ease), transform .3s var(--ease); }
.roomcard:hover { border-color: var(--pine-400); transform: translateY(-3px); }
.roomcard__media { position: relative; overflow: hidden; aspect-ratio: 4 / 3; background: var(--mist-200); }
.roomcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.roomcard:hover .roomcard__media img { transform: scale(1.035); }
.roomcard__badge { position: absolute; top: 0; left: 0; background: var(--pine-900); color: var(--mist-50); font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; padding: .4rem .7rem; }
.roomcard__body { padding: 1.15rem 1.25rem 1.4rem; }
.roomcard__title { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; margin: 0 0 .35rem; }
.roomcard__meta { font-size: .8125rem; color: var(--stone-500); display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.roomcard__dot { width: 3px; height: 3px; background: var(--pine-300); display: inline-block; }
.roomcard__foot { margin-top: .95rem; padding-top: .85rem; border-top: 1px solid var(--mist-200); display: flex; align-items: baseline; justify-content: space-between; }
.roomcard__price { font-size: 1.05rem; font-weight: 500; }
.roomcard__price small { font-size: .75rem; color: var(--stone-500); font-weight: 400; }

/* ---------- Facilități / fapte ---------- */
.factband { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--mist-200); border: 1px solid var(--mist-200); }
@media (min-width: 768px) { .factband { grid-template-columns: repeat(4, 1fr); } }
.factband__cell { background: var(--mist-50); padding: 1.4rem 1.25rem; }
.factband__n { font-family: 'Cormorant Garamond', serif; font-size: 2.3rem; line-height: 1; }
.factband__l { font-size: .6875rem; letter-spacing: .12em; text-transform: uppercase; color: var(--stone-500); margin-top: .5rem; }

/* ---------- Bento ---------- */
.bento { display: grid; gap: 1px; background: var(--mist-200); border: 1px solid var(--mist-200); grid-template-columns: 1fr; }
@media (min-width: 900px) { .bento { grid-template-columns: 1.55fr 1fr; grid-template-rows: auto auto; } }
.bento__cell { background: var(--mist-50); display: flex; flex-direction: column; }
.bento__cell--wide { grid-column: 1 / -1; }
.bento__media { overflow: hidden; }
.bento__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.bento__cell:hover .bento__media img { transform: scale(1.03); }
.bento__body { padding: 1.6rem 1.6rem 1.9rem; }
@media (min-width: 900px) {
  .bento__cell--lead .bento__media { aspect-ratio: 16 / 11; }
  .bento__cell--side .bento__media { aspect-ratio: 16 / 9; }
}
.bento__title { font-family: 'Cormorant Garamond', serif; font-size: 1.75rem; margin: 0 0 .7rem; }
.bento__p { margin: 0 0 .7rem; font-size: .9375rem; line-height: 1.72; color: var(--stone-500); max-width: 60ch; }
.bento__p:last-child { margin-bottom: 0; }

/* ---------- Testimoniale ---------- */
.quote { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 3.1vw, 2.5rem); line-height: 1.24; }
.quote__slide { display: none; }
.quote__slide[data-active="true"] { display: block; }
.quote__nav { display: flex; gap: .5rem; }
.quote__dot { width: 34px; height: 2px; background: rgb(143 174 162 / .35); border: 0; padding: 0; cursor: pointer; transition: background .25s var(--ease); }
.quote__dot[aria-selected="true"] { background: var(--amber-400); }

/* ---------- Carusel orizontal ---------- */
.hscroll { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px, 340px); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1.25rem; scrollbar-width: thin; }
.hscroll > * { scroll-snap-align: start; }
.hscroll::-webkit-scrollbar { height: 4px; }
.hscroll::-webkit-scrollbar-track { background: var(--mist-200); }
.hscroll::-webkit-scrollbar-thumb { background: var(--pine-400); }
.acard { text-decoration: none; color: inherit; display: flex; flex-direction: column; border: 1px solid var(--mist-200); background: var(--mist-50); transition: border-color .3s var(--ease); }
.acard:hover { border-color: var(--pine-400); }
.acard__media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--mist-200); }
.acard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.acard:hover .acard__media img { transform: scale(1.04); }
.acard__body { padding: 1.3rem; display: flex; flex-direction: column; flex: 1; }
.acard__title { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; margin: 0 0 .5rem; }
.acard__p { font-size: .875rem; color: var(--stone-500); line-height: 1.65; margin: 0 0 1rem; }
.acard__more { margin-top: auto; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--pine-700); }

/* ---------- Secțiune CTA ---------- */
.ctaband { position: relative; overflow: hidden; }
.ctaband__bg { position: absolute; inset: 0; }
.ctaband__bg img { width: 100%; height: 100%; object-fit: cover; }
.ctaband__scrim { position: absolute; inset: 0; background: linear-gradient(105deg, rgb(14 33 28 / .93) 0%, rgb(14 33 28 / .8) 46%, rgb(14 33 28 / .55) 100%); }
.ctaband__inner { position: relative; }

/* ---------- Acordeon ---------- */
.acc { border-top: 1px solid var(--mist-200); }
.acc__item { border-bottom: 1px solid var(--mist-200); }
.acc__btn { width: 100%; background: none; border: 0; padding: 1.5rem 2.75rem 1.5rem 0; text-align: left; cursor: pointer; display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: start; position: relative; }
.acc__q { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; line-height: 1.25; color: var(--ink-900); }
.acc__sign { position: absolute; right: 0; top: 1.7rem; width: 16px; height: 16px; }
.acc__sign::before, .acc__sign::after { content: ''; position: absolute; background: var(--pine-700); transition: transform .28s var(--ease), opacity .28s var(--ease); }
.acc__sign::before { left: 0; top: 7px; width: 16px; height: 1.5px; }
.acc__sign::after { top: 0; left: 7px; width: 1.5px; height: 16px; }
.acc__btn[aria-expanded="true"] .acc__sign::after { transform: scaleY(0); opacity: 0; }
.acc__panel { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .3s var(--ease); }
.js .acc__panel { grid-template-rows: 0fr; }
.js .acc__panel[data-open="true"] { grid-template-rows: 1fr; }
.acc__panel > div { overflow: hidden; }
.acc__body { padding: 0 3rem 1.6rem 0; color: var(--stone-500); font-size: .9375rem; line-height: 1.75; }
.acc__body p { margin: 0 0 .8rem; }
.acc__body p:last-child { margin-bottom: 0; }

/* ---------- Liste editoriale ---------- */
.steps { border-top: 1px solid var(--mist-200); }
.step { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem; padding: 2rem 0; border-bottom: 1px solid var(--mist-200); align-items: start; }
@media (min-width: 768px) { .step { grid-template-columns: 5rem 1fr; gap: 2.5rem; } }
.step__n { font-family: 'Cormorant Garamond', serif; font-size: 1.6rem; color: var(--amber-500); line-height: 1; padding-top: .2rem; }
.step__t { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.25rem, 2.2vw, 1.7rem); line-height: 1.2; margin: 0 0 .5rem; }
.step__p { margin: 0; color: var(--stone-500); font-size: .9375rem; line-height: 1.75; max-width: 64ch; }

/* ---------- Formular (contrast verificat) ---------- */
.field { display: grid; gap: .5rem; }
.label { font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-900); font-weight: 500; }
.input, .select, .textarea {
  width: 100%; font-family: 'Outfit', sans-serif; font-size: .9375rem;
  padding: .85rem .95rem; border: 1px solid var(--mist-200); background: #fff;
  color: var(--ink-900); border-radius: 0; transition: border-color .24s var(--ease), box-shadow .24s var(--ease);
}
.input::placeholder, .textarea::placeholder { color: var(--stone-500); }
.input:focus, .select:focus, .textarea:focus { outline: 0; border-color: var(--pine-700); box-shadow: 0 0 0 3px rgb(27 64 56 / .14); }
.textarea { min-height: 130px; resize: vertical; }
.help { font-size: .75rem; color: var(--stone-500); }
.err { font-size: .8125rem; color: #9A2B1E; display: none; }
.field[data-invalid="true"] .input, .field[data-invalid="true"] .textarea { border-color: #9A2B1E; }
.field[data-invalid="true"] .err { display: block; }

/* ---------- Galerie ---------- */
.masonry { column-count: 1; column-gap: 1rem; }
@media (min-width: 640px) { .masonry { column-count: 2; } }
@media (min-width: 1024px) { .masonry { column-count: 3; } }
.masonry__item { break-inside: avoid; margin-bottom: 1rem; position: relative; overflow: hidden; cursor: zoom-in; border: 0; padding: 0; background: var(--mist-200); width: 100%; display: block; }
.masonry__item img { width: 100%; transition: transform .65s var(--ease), opacity .35s var(--ease); }
.masonry__item:hover img { transform: scale(1.035); }
.masonry__item figcaption { position: absolute; left: 0; bottom: 0; right: 0; background: linear-gradient(to top, rgb(14 33 28 / .82), transparent); color: #fff; font-size: .75rem; letter-spacing: .06em; padding: 2rem .85rem .7rem; text-align: left; }
.masonry__item[hidden] { display: none; }

.lightbox { position: fixed; inset: 0; z-index: 90; background: rgb(14 33 28 / .96); display: none; place-items: center; padding: 1.5rem; }
.lightbox[data-open="true"] { display: grid; }
.lightbox img { max-width: min(1200px, 92vw); max-height: 82vh; object-fit: contain; }
.lightbox__cap { color: var(--mist-50); text-align: center; font-size: .8125rem; margin-top: 1rem; letter-spacing: .06em; }
.lightbox__btn { position: absolute; background: none; border: 1px solid rgb(255 255 255 / .3); color: #fff; width: 46px; height: 46px; cursor: pointer; font-size: 1.1rem; }
.lightbox__btn:hover { border-color: var(--amber-400); color: var(--amber-400); }
.lightbox__close { top: 1.25rem; right: 1.25rem; }
.lightbox__prev { left: 1.25rem; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 1.25rem; top: 50%; transform: translateY(-50%); }

/* ---------- Card generic / info ---------- */
.icard { border: 1px solid var(--mist-200); background: var(--mist-50); padding: 1.6rem; }
.icard__t { font-size: .6875rem; letter-spacing: .14em; text-transform: uppercase; color: var(--stone-500); margin-bottom: .85rem; }
.icard__v { font-size: 1.05rem; font-weight: 400; }
.icard__v strong { font-weight: 500; }
.icard--dark { background: var(--pine-900); border-color: rgb(143 174 162 / .22); color: var(--mist-50); }
.icard--dark .icard__t { color: var(--pine-300); }

/* ---------- Footer ---------- */
.footer { background: var(--pine-900); color: var(--mist-50); padding: 4.5rem 0 2rem; }
.footer a { color: var(--mist-50); text-decoration: none; }
.footer a:hover { color: var(--amber-400); }
.footer__grid { display: grid; gap: 2.5rem; grid-template-columns: 1fr; }
@media (min-width: 768px) { .footer__grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 2rem; } }
.footer__h { font-size: .6875rem; letter-spacing: .16em; text-transform: uppercase; color: var(--pine-300); margin: 0 0 1rem; }
.footer__li { padding: .3rem 0; font-size: .9375rem; color: var(--pine-100); }
.footer__bottom { margin-top: 3.5rem; padding-top: 1.75rem; border-top: 1px solid rgb(143 174 162 / .2); display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between; font-size: .8125rem; color: var(--pine-300); }

/* ---------- Reveal la scroll ----------
   Progresiv: fara JavaScript continutul este complet vizibil. Starea ascunsa se
   aplica doar sub html.js, deci un script blocat nu poate ascunde pagina. */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.js .reveal.is-in { opacity: 1; transform: none; }
.js .reveal[style*="--d"] { transition-delay: var(--d); }
@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}
.parallax img { transform: translate3d(0, var(--py, 0), 0) scale(1.08); will-change: transform; }
@media (prefers-reduced-motion: reduce) { .parallax img { transform: none !important; } }

/* ---------- Utilitare ---------- */
.u-hide { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:focus-visible { outline: 2px solid var(--amber-500); outline-offset: 3px; }
.skip { position: absolute; left: -9999px; top: 0; z-index: 100; background: var(--pine-700); color: #fff; padding: .75rem 1.25rem; }
.skip:focus { left: 0; }
