/* ============================================================
   Wealth Planner Singapore — LinkedIn landing page
   Palette derived from the existing site:
     gold  #D4AF37   sea green #2E8B57   deep green #103D19
   ============================================================ */

/* ---- 1. Tokens ------------------------------------------- */
:root{
  /* Greens */
  --ink:        #071A11;
  --green-950:  #0B2417;
  --green-900:  #103D19;
  --green-800:  #14472A;
  --green-700:  #1B5E3A;
  --green-600:  #2E8B57;
  --green-200:  #B9D8C6;
  --green-100:  #E7F1EA;

  /* Gold */
  --gold:       #D4AF37;
  --gold-300:   #E8C866;
  --gold-600:   #A8862A;
  --gold-wash:  #FAF3DF;

  /* Neutrals */
  --cream:      #FBF9F3;
  --paper:      #FFFFFF;
  --text:       #14201A;
  --text-soft:  #4C5C53;
  --muted:      #6E7D74;
  --line:       #E4E2D9;
  --line-dark:  rgba(255,255,255,.14);

  /* Type */
  --serif: "Source Serif 4", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  /* Rhythm */
  --wrap: 1180px;
  --gutter: clamp(20px, 5vw, 48px);
  --section-y: clamp(64px, 9vw, 128px);
  --radius: 3px;
  --radius-lg: 6px;

  --shadow-sm: 0 1px 2px rgba(11,36,23,.06), 0 2px 8px rgba(11,36,23,.04);
  --shadow-md: 0 2px 4px rgba(11,36,23,.05), 0 12px 32px rgba(11,36,23,.08);
  --shadow-lg: 0 24px 64px rgba(7,26,17,.28);

  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---- 2. Reset -------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:96px; }
body{
  margin:0;
  background:var(--cream);
  color:var(--text);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img{ max-width:100%; height:auto; display:block; }
[hidden]{ display:none !important; }
h1,h2,h3,h4{ margin:0; font-family:var(--serif); font-weight:600; line-height:1.12; letter-spacing:-.015em; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
a{ color:inherit; }
ul,ol,dl,dd{ margin:0; padding:0; }
li{ list-style:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
table{ border-collapse:collapse; width:100%; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

.visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--green-950);
  padding:12px 20px; font-weight:600;
}
.skip-link:focus{ left:0; }

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

/* ---- 3. Layout primitives -------------------------------- */
.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:800px; }

.section{ padding-block:var(--section-y); }
.section--tint{ background:var(--paper); border-block:1px solid var(--line); }
.section--dark{ background:var(--green-950); color:#E9EFEA; }
.section__head{ max-width:62ch; margin-bottom:clamp(36px,5vw,64px); }
.section__head--center{ margin-inline:auto; text-align:center; }
.section__lede{ margin-top:16px; font-size:1.05rem; color:var(--text-soft); }
.section--dark .section__lede,
.calc-section .section__lede,
.section--form .section__lede{ color:rgba(233,239,234,.72); }

.grid-2{
  display:grid;
  grid-template-columns:minmax(0,200px) minmax(0,1fr);
  gap:clamp(24px,5vw,72px);
  align-items:start;
}
@media (max-width:820px){ .grid-2{ grid-template-columns:1fr; gap:24px; } }

/* ---- 4. Type helpers ------------------------------------- */
.eyebrow{
  font-size:.75rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; color:var(--gold); margin-bottom:24px;
}
.kicker{
  display:flex; align-items:center; gap:12px;
  font-size:.75rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; color:var(--muted); margin:0 0 8px;
}
.kicker__num{
  font-family:var(--serif); font-size:.8rem; letter-spacing:0;
  color:var(--gold-600); padding-right:12px; border-right:1px solid var(--line);
}
.kicker--light{ color:rgba(233,239,234,.6); justify-content:inherit; }
.section__head--center .kicker{ justify-content:center; }
.kicker--light .kicker__num{ color:var(--gold); border-color:var(--line-dark); }

.h2{ font-size:clamp(1.9rem,3.6vw,2.75rem); }
.h2--light{ color:#F3F7F4; }
.statement{
  font-size:clamp(1.75rem,3.4vw,2.5rem);
  margin-bottom:.7em; letter-spacing:-.02em;
}
.prose{ max-width:62ch; font-size:1.06rem; color:var(--text-soft); }
.prose em{ color:var(--text); font-style:italic; }

/* Placeholder tokens the client must replace */
.ph{
  color:var(--gold-600);
  border-bottom:1px dotted currentColor;
  font-style:normal;
}
.section--dark .ph,.calc-section .ph,.hero .ph,.section--form .ph{ color:var(--gold-300); }

/* ---- 5. Buttons ------------------------------------------ */
.btn{
  --btn-bg:var(--gold); --btn-fg:var(--green-950); --btn-bd:var(--gold);
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1px solid var(--btn-bd); border-radius:var(--radius);
  padding:13px 24px; font-size:.95rem; font-weight:600; letter-spacing:.01em;
  text-decoration:none; cursor:pointer; white-space:nowrap;
  transition:transform .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 6px 20px rgba(212,175,55,.28); }
.btn:active{ transform:translateY(0); }
.btn--gold:hover{ background:var(--gold-300); border-color:var(--gold-300); }
.btn--ghost{
  --btn-bg:transparent; --btn-fg:#EAF1EC; --btn-bd:rgba(255,255,255,.28);
}
.btn--ghost:hover{ background:rgba(255,255,255,.07); box-shadow:none; }
.btn--sm{ padding:9px 16px; font-size:.85rem; }
.btn--lg{ padding:16px 30px; font-size:1rem; }
.btn--block{ display:flex; width:100%; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.9rem; font-weight:600; color:var(--green-700);
  text-decoration:none; border-bottom:1px solid var(--green-200);
  padding-bottom:2px; transition:border-color .2s var(--ease);
}
.link-arrow::after{ content:"→"; transition:transform .2s var(--ease); }
.link-arrow:hover{ border-color:var(--green-600); }
.link-arrow:hover::after{ transform:translateX(3px); }

/* ---- 6. Regulatory bar + header -------------------------- */
.regbar{
  background:var(--ink); color:rgba(233,239,234,.62);
  font-size:.74rem; letter-spacing:.04em;
}
.regbar__inner{ display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:36px; }
.regbar p{ margin:0; }
.regbar__contact{ text-decoration:none; color:var(--gold-300); font-weight:500; white-space:nowrap; }
.regbar__contact:hover{ color:var(--gold); }
@media (max-width:600px){
  .regbar{ font-size:.66rem; }
  .regbar__inner{ min-height:32px; }
  .regbar__licence{ line-height:1.4; }
}

.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(251,249,243,.88);
  backdrop-filter:saturate(180%) blur(14px);
  -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), box-shadow .25s var(--ease);
}
.site-header.is-stuck{ border-bottom-color:var(--line); box-shadow:var(--shadow-sm); }
.site-header__inner{ display:flex; align-items:center; gap:32px; min-height:68px; }

.brand{ display:flex; align-items:center; gap:11px; text-decoration:none; flex:0 0 auto; }
.brand__text{
  font-family:var(--serif); font-size:1.02rem; font-weight:600;
  line-height:1.1; letter-spacing:-.01em; color:var(--green-900);
  display:flex; flex-direction:column;
}
.brand__text em{
  font-family:var(--sans); font-style:normal; font-size:.6rem;
  letter-spacing:.22em; text-transform:uppercase; font-weight:500;
  color:var(--muted); margin-top:2px;
}
.brand--light .brand__text{ color:#F1F6F2; }
.brand--light .brand__text em{ color:rgba(233,239,234,.55); }

.site-nav{ display:flex; gap:26px; margin-left:auto; }
.site-nav a{
  font-size:.88rem; font-weight:500; color:var(--text-soft);
  text-decoration:none; padding:6px 0; position:relative;
  transition:color .2s var(--ease);
}
.site-nav a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .24s var(--ease);
}
.site-nav a:hover{ color:var(--green-900); }
.site-nav a:hover::after{ transform:scaleX(1); }
@media (max-width:1000px){ .site-nav{ display:none; } }
@media (max-width:1000px){ .site-header__inner .btn{ margin-left:auto; } }
@media (max-width:520px){ .site-header__inner .btn{ display:none; } }

/* ---- 7. Hero --------------------------------------------- */
.hero{
  position:relative; isolation:isolate; overflow:hidden;
  background:
    radial-gradient(120% 90% at 78% 8%, rgba(46,139,87,.30) 0%, transparent 58%),
    linear-gradient(168deg, var(--green-900) 0%, var(--green-950) 46%, var(--ink) 100%);
  color:#E9EFEA;
  padding-block:clamp(56px,8vw,104px) clamp(64px,9vw,112px);
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-1; opacity:.5;
  background-image:
    linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:radial-gradient(80% 60% at 30% 40%, #000 0%, transparent 80%);
  -webkit-mask-image:radial-gradient(80% 60% at 30% 40%, #000 0%, transparent 80%);
}
.hero__glow{
  position:absolute; z-index:-1; width:620px; height:620px; right:-160px; top:-220px;
  background:radial-gradient(circle, rgba(212,175,55,.16) 0%, transparent 65%);
  pointer-events:none;
}
.hero__inner{
  display:grid; grid-template-columns:minmax(0,1.28fr) minmax(0,.72fr);
  gap:clamp(32px,4.5vw,64px); align-items:center;
}
@media (max-width:960px){ .hero__inner{ grid-template-columns:1fr; } }

.hero__title{
  font-size:clamp(1.68rem,4.3vw,3.3rem);
  letter-spacing:-.025em; line-height:1.1; color:#FFF;
  margin-bottom:26px;
}
.hero__title .hl{ color:var(--gold); }
.hero__lede{
  max-width:56ch; font-size:clamp(1.02rem,1.6vw,1.15rem);
  color:rgba(233,239,234,.80); margin-bottom:34px;
}
.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:40px; }
@media (max-width:520px){
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ width:100%; }
}

.advisor-chip{
  display:flex; align-items:center; gap:14px;
  padding-top:26px; border-top:1px solid var(--line-dark);
  max-width:60ch;
}
.advisor-chip__img{
  width:52px; height:52px; border-radius:50%; flex:0 0 auto;
  object-fit:cover; border:1px solid rgba(212,175,55,.45);
}
.advisor-chip__text{ margin:0; font-size:.86rem; line-height:1.5; color:rgba(233,239,234,.78); }
.advisor-chip__text strong{ color:#FFF; }
.advisor-chip__meta{ color:rgba(233,239,234,.55); font-size:.8rem; }

/* Hero data card */
.gapcard{
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.11);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  overflow:hidden;
}
.gapcard__head{ padding:22px 26px 18px; border-bottom:1px solid rgba(255,255,255,.09); }
.gapcard__label{
  margin:0 0 4px; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; color:var(--gold);
}
.gapcard__sub{ margin:0; font-size:.84rem; color:rgba(233,239,234,.62); }
.gapcard__body{ padding:26px; display:grid; gap:26px; }

.bar__head{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:10px; }
.bar__name{ font-size:.86rem; color:rgba(233,239,234,.78); }
.bar__val{ font-family:var(--serif); font-size:1.12rem; font-weight:600; color:#FFF; font-variant-numeric:tabular-nums; }
.bar__track{ height:7px; border-radius:99px; background:rgba(255,255,255,.09); overflow:hidden; }
.bar__fill{
  height:100%; width:0; border-radius:99px;
  transition:width 1.1s var(--ease);
}
.bar__fill--muted{ background:linear-gradient(90deg, var(--green-600), var(--green-700)); }
.bar__fill--solid{ background:linear-gradient(90deg, var(--gold), var(--gold-600)); }
.bar__note{ margin:8px 0 0; font-size:.76rem; color:rgba(233,239,234,.48); }

.gapcard__foot{
  padding:20px 26px 24px;
  background:rgba(212,175,55,.09);
  border-top:1px solid rgba(212,175,55,.22);
}
.gapcard__gaplabel{
  margin:0 0 2px; font-size:.72rem; letter-spacing:.13em; text-transform:uppercase;
  font-weight:600; color:rgba(233,239,234,.62);
}
.gapcard__gapval{
  margin:0; font-family:var(--serif); font-size:clamp(1.9rem,3.4vw,2.4rem);
  font-weight:700; color:var(--gold); letter-spacing:-.02em; font-variant-numeric:tabular-nums;
}

/* ---- 8. Carriers ----------------------------------------- */
.carriers{ background:var(--paper); border-bottom:1px solid var(--line); padding-block:30px; }
.carriers__label{
  margin:0 0 18px; text-align:center; font-size:.72rem; letter-spacing:.15em;
  text-transform:uppercase; font-weight:600; color:var(--muted);
}
.carriers__list{
  display:flex; flex-wrap:wrap; justify-content:center;
  gap:clamp(20px,4vw,52px); align-items:center;
}
.carriers__list li{
  font-family:var(--serif); font-size:1.05rem; font-weight:600;
  color:var(--green-900); opacity:.42; letter-spacing:.01em;
  transition:opacity .2s var(--ease);
}
.carriers__list li:hover{ opacity:.8; }

/* ---- 9. Moments ------------------------------------------ */
.moments{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  border-top:1px solid var(--line);
}
.moment{
  padding:32px 28px 34px; border-bottom:1px solid var(--line);
  border-right:1px solid var(--line); position:relative;
}
.moment:last-child{ border-right:none; }
.moment::before{
  content:""; position:absolute; top:-1px; left:0; width:34px; height:2px;
  background:var(--gold);
}
.moment__num{
  margin:0 0 14px; font-family:var(--serif); font-size:.9rem;
  font-style:italic; color:var(--gold-600); letter-spacing:.06em;
}
.moment__title{ font-size:1.22rem; margin-bottom:10px; }
.moment p{ font-size:.94rem; color:var(--text-soft); margin:0; }
@media (max-width:760px){ .moment{ border-right:none; } }

/* ---- 10. Calculator -------------------------------------- */
.calc-section{
  background:
    radial-gradient(100% 80% at 20% 0%, rgba(46,139,87,.22) 0%, transparent 60%),
    linear-gradient(160deg, var(--green-950), var(--ink));
  color:#E9EFEA;
}
.calc{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,420px);
  gap:clamp(24px,4vw,48px); align-items:start;
}
@media (max-width:900px){ .calc{ grid-template-columns:1fr; } }

.calc__inputs{ display:grid; gap:30px; }
.field label{
  display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
  font-size:.9rem; font-weight:500; color:rgba(233,239,234,.82); margin-bottom:6px;
}
.field__hint{ font-size:.76rem; color:rgba(233,239,234,.42); font-weight:400; }
.field__out{
  display:block; font-family:var(--serif); font-size:1.6rem; font-weight:600;
  color:#FFF; letter-spacing:-.02em; margin-bottom:12px; font-variant-numeric:tabular-nums;
}

input[type=range]{
  -webkit-appearance:none; appearance:none;
  width:100%; height:22px; background:transparent; cursor:pointer; margin:0;
}
input[type=range]::-webkit-slider-runnable-track{
  height:4px; border-radius:99px;
  background:linear-gradient(90deg, var(--gold) var(--pct,50%), rgba(255,255,255,.14) var(--pct,50%));
}
input[type=range]::-moz-range-track{ height:4px; border-radius:99px; background:rgba(255,255,255,.14); }
input[type=range]::-moz-range-progress{ height:4px; border-radius:99px; background:var(--gold); }
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none; appearance:none;
  width:20px; height:20px; margin-top:-8px; border-radius:50%;
  background:#FFF; border:4px solid var(--gold);
  box-shadow:0 2px 8px rgba(0,0,0,.35);
  transition:transform .15s var(--ease);
}
input[type=range]::-moz-range-thumb{
  width:20px; height:20px; border-radius:50%;
  background:#FFF; border:4px solid var(--gold); box-shadow:0 2px 8px rgba(0,0,0,.35);
}
input[type=range]:hover::-webkit-slider-thumb{ transform:scale(1.12); }

.calc__result{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(212,175,55,.28);
  border-radius:var(--radius-lg);
  padding:30px 28px;
  box-shadow:var(--shadow-lg);
}
.calc__resultLabel{
  margin:0 0 6px; font-size:.75rem; letter-spacing:.13em; text-transform:uppercase;
  font-weight:600; color:rgba(233,239,234,.62);
}
.calc__resultValue{
  margin:0 0 24px; font-family:var(--serif);
  font-size:clamp(2.3rem,5vw,3.1rem); font-weight:700;
  color:var(--gold); letter-spacing:-.03em; line-height:1;
  font-variant-numeric:tabular-nums;
}
.calc__breakdown{ border-top:1px solid rgba(255,255,255,.12); margin-bottom:24px; }
.calc__row{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding:11px 0; border-bottom:1px solid rgba(255,255,255,.07);
  font-size:.88rem; color:rgba(233,239,234,.72);
}
.calc__row b{ font-weight:600; color:#FFF; font-variant-numeric:tabular-nums; }
.calc__row--loss b{ color:#E9A6A6; }
.calc__row--total{ border-bottom:none; }
.calc__row--total b{ color:var(--gold-300); }
.calc__disclaimer{ margin:14px 0 0; font-size:.76rem; line-height:1.5; color:rgba(233,239,234,.45); }

/* ---- 11. Options list ------------------------------------ */
.options{ margin-top:36px; border-top:1px solid var(--line); }
.options__item{
  display:grid; grid-template-columns:minmax(0,270px) minmax(0,1fr);
  gap:8px 28px; padding:18px 0; border-bottom:1px solid var(--line);
}
.options dt{ font-family:var(--serif); font-size:1.02rem; font-weight:600; color:var(--text); }
.options dd{ font-size:.94rem; color:var(--text-soft); }
@media (max-width:700px){ .options__item{ grid-template-columns:1fr; gap:4px; } }

/* ---- 12. Deliverables ------------------------------------ */
.deliverables{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:clamp(20px,3vw,36px); margin-bottom:48px;
}
.deliverables li{
  padding:28px 26px 30px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.10);
  border-radius:var(--radius-lg);
}
.deliverables__num{
  display:flex; align-items:center; justify-content:center;
  width:36px; height:36px; margin-bottom:18px;
  border:1px solid rgba(212,175,55,.5); border-radius:50%;
  font-family:var(--serif); font-weight:600; color:var(--gold); font-size:.95rem;
}
.deliverables h3{ font-size:1.12rem; margin-bottom:9px; color:#F3F7F4; }
.deliverables p{ margin:0; font-size:.92rem; color:rgba(233,239,234,.66); }
.offer__promise{
  max-width:64ch; margin-inline:auto; text-align:center;
  font-family:var(--serif); font-size:clamp(1.05rem,1.9vw,1.28rem);
  line-height:1.5; color:rgba(233,239,234,.82);
  padding-top:34px; border-top:1px solid var(--line-dark);
}
.offer__promise strong{ color:var(--gold-300); font-weight:600; }

/* ---- 13. Case notes -------------------------------------- */
.cases{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:clamp(20px,3vw,32px); }
.case{
  background:var(--cream); border:1px solid var(--line);
  border-top:2px solid var(--gold); border-radius:var(--radius);
  padding:30px 28px 32px;
}
.case__head{ margin-bottom:20px; }
.case__who{ font-size:1.2rem; margin-bottom:4px; }
.case__meta{ margin:0; font-size:.84rem; color:var(--muted); }
.case__data{ border-top:1px solid var(--line); margin-bottom:20px; }
.case__data > div{
  display:flex; justify-content:space-between; align-items:baseline; gap:14px;
  padding:9px 0; border-bottom:1px solid var(--line);
}
.case__data dt{ font-size:.86rem; color:var(--text-soft); }
.case__data dd{ font-family:var(--serif); font-weight:600; font-size:1rem; font-variant-numeric:tabular-nums; }
.case__data--flag{ background:var(--gold-wash); margin-inline:-10px; padding-inline:10px !important; border-bottom:none !important; }
.case__data--flag dt{ font-weight:600; color:var(--text); }
.case__data--flag dd{ color:var(--gold-600); font-size:1.1rem; }
.case__note{ margin:0; font-size:.94rem; color:var(--text-soft); }

/* ---- 14. Adviser ----------------------------------------- */
.adviser{
  display:grid; grid-template-columns:minmax(0,380px) minmax(0,1fr);
  gap:clamp(28px,5vw,64px); align-items:center;
}
@media (max-width:840px){ .adviser{ grid-template-columns:1fr; } }
.adviser__figure{ margin:0; position:relative; }
.adviser__figure::after{
  content:""; position:absolute; inset:14px -14px -14px 14px; z-index:-1;
  border:1px solid var(--gold); border-radius:var(--radius);
}
.adviser__figure img{ border-radius:var(--radius); width:100%; box-shadow:var(--shadow-md); }
.adviser__role{ margin:8px 0 22px; font-size:.95rem; color:var(--muted); }
.adviser__quote{
  margin:0 0 26px; padding-left:22px; border-left:2px solid var(--gold);
  font-family:var(--serif); font-size:1.12rem; line-height:1.6; color:var(--text-soft);
}
.adviser__creds{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:1px; background:var(--line); border:1px solid var(--line);
  margin-bottom:26px;
}
.adviser__creds > div{ background:var(--cream); padding:14px 16px; }
.adviser__creds dt{ font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
.adviser__creds dd{ font-family:var(--serif); font-size:1.15rem; font-weight:600; }

/* ---- 15. Premium table ----------------------------------- */
.table-scroll{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius); background:var(--cream); }
.ptable{ min-width:560px; font-variant-numeric:tabular-nums; }
.ptable th,.ptable td{ padding:15px 20px; text-align:right; border-bottom:1px solid var(--line); }
.ptable thead th{
  background:var(--green-950); color:#EAF1EC; font-size:.78rem;
  letter-spacing:.08em; text-transform:uppercase; font-weight:600; border-bottom:none;
}
.ptable th:first-child,.ptable td:first-child{ text-align:left; }
.ptable tbody th{ font-family:var(--serif); font-size:1.05rem; font-weight:600; }
.ptable tbody tr:last-child th,.ptable tbody tr:last-child td{ border-bottom:none; }
.ptable tbody tr:hover{ background:var(--gold-wash); }
.cost-notes{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:24px; margin-top:28px; font-size:.9rem; color:var(--text-soft);
}
.cost-notes strong{ color:var(--text); }

/* ---- 16. FAQ --------------------------------------------- */
.faq{ border-top:1px solid var(--line); }
.faq__item{ border-bottom:1px solid var(--line); }
.faq__item summary{
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:22px 0; cursor:pointer; list-style:none;
  font-family:var(--serif); font-size:1.15rem; font-weight:600;
  transition:color .2s var(--ease);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:"+"; flex:0 0 auto; font-family:var(--sans); font-size:1.4rem;
  font-weight:400; color:var(--gold-600); line-height:1;
  transition:transform .25s var(--ease);
}
.faq__item[open] summary::after{ transform:rotate(45deg); }
.faq__item summary:hover{ color:var(--green-700); }
.faq__body{ padding-bottom:24px; max-width:64ch; font-size:.98rem; color:var(--text-soft); }

/* ---- 17. Form -------------------------------------------- */
.section--form{
  background:
    radial-gradient(90% 70% at 80% 0%, rgba(46,139,87,.22) 0%, transparent 60%),
    linear-gradient(180deg, var(--green-950), var(--ink));
  color:#E9EFEA;
}
.form{ display:grid; gap:20px; }
.form__row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; }
.form__field{ display:flex; flex-direction:column; gap:7px; }
.form__field label{ font-size:.85rem; font-weight:500; color:rgba(233,239,234,.80); }
.form__field input,.form__field select{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius);
  padding:13px 14px; color:#FFF; font-size:.97rem;
  transition:border-color .2s var(--ease), background .2s var(--ease);
  appearance:none; -webkit-appearance:none;
}
.form__field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D4AF37' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center; padding-right:38px;
}
.form__field select option{ background:var(--green-950); color:#FFF; }
.form__field input::placeholder{ color:rgba(233,239,234,.35); }
.form__field input:focus,.form__field select:focus{
  outline:none; border-color:var(--gold); background:rgba(255,255,255,.09);
}
.form__field.is-invalid input,.form__field.is-invalid select{ border-color:#E9A6A6; }
.form__error{ margin:0; font-size:.78rem; color:#E9A6A6; min-height:0; }
.form__error:empty{ display:none; }

.consent{
  display:flex; gap:12px; align-items:flex-start;
  font-size:.83rem; line-height:1.55; color:rgba(233,239,234,.68);
  cursor:pointer; margin-top:4px;
}
.consent input{
  flex:0 0 auto; width:18px; height:18px; margin-top:2px;
  accent-color:var(--gold); cursor:pointer;
}
.form__foot{ margin:0; text-align:center; font-size:.78rem; color:rgba(233,239,234,.48); }
.form__success{
  background:rgba(212,175,55,.12); border:1px solid rgba(212,175,55,.35);
  border-radius:var(--radius-lg); padding:26px 24px; text-align:center;
}
.form__success h3{ font-size:1.3rem; color:var(--gold-300); margin-bottom:8px; }
.form__success p{ margin:0; font-size:.94rem; color:rgba(233,239,234,.78); }
.form__success a{ color:var(--gold-300); }

/* ---- 18. Footer ------------------------------------------ */
.site-footer{ background:var(--ink); color:rgba(233,239,234,.55); padding-block:52px 40px; font-size:.85rem; }
.site-footer__top{
  display:flex; justify-content:space-between; align-items:flex-start;
  flex-wrap:wrap; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--line-dark);
}
.site-footer__contact{ margin:0; text-align:right; line-height:1.9; }
.site-footer__contact a{ color:var(--gold-300); text-decoration:none; }
.site-footer__contact a:hover{ text-decoration:underline; }
@media (max-width:600px){ .site-footer__contact{ text-align:left; } }
.site-footer__legal{ padding-top:26px; display:grid; gap:14px; max-width:92ch; }
.site-footer__legal p{ margin:0; font-size:.79rem; line-height:1.65; color:rgba(233,239,234,.42); }
.site-footer__legal strong{ color:rgba(233,239,234,.7); }
.site-footer__mas{
  font-weight:600; letter-spacing:.02em;
  color:rgba(233,239,234,.62) !important; text-transform:uppercase; font-size:.72rem !important;
}
.site-footer__meta{ padding-top:12px; border-top:1px solid var(--line-dark); }
.site-footer__meta a{ color:rgba(233,239,234,.6); }

/* ---- 19. Mobile sticky CTA ------------------------------- */
.mobile-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:90;
  padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));
  background:rgba(7,26,17,.94);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border-top:1px solid rgba(212,175,55,.28);
  transform:translateY(110%); transition:transform .3s var(--ease);
  display:none;
}
.mobile-cta.is-visible{ transform:translateY(0); }
@media (max-width:640px){
  .mobile-cta{ display:block; }
  body{ padding-bottom:76px; }
}

/* ---- 20. Reveal on scroll -------------------------------- */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; } }
