/* =========================================================
   LERSIRE — Premium Real Estate
   Design system: "The Ledger" — architectural / blueprint editorial
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  /* Color tokens */
  --navy-950:#0A141F;
  --navy-900:#0E1E30;
  --navy-800:#152B41;
  --navy-700:#1D3A54;
  --brass:#B4884F;
  --brass-light:#D9B87C;
  --brass-dim:#8C6C3F;
  --stone:#EDEEE9;
  --stone-dim:#E3E4DD;
  --paper:#FAFAF7;
  --ink:#12181F;
  --slate:#57626D;
  --slate-light:#889198;
  --line:#D7D9D1;
  --line-dark:rgba(245,243,236,.14);
  --white:#FFFFFF;
  --ok:#3E6B4F;

  /* Type */
  --f-display:'Fraunces', Georgia, serif;
  --f-body:'Inter', -apple-system, sans-serif;
  --f-mono:'IBM Plex Mono', monospace;

  --container:1240px;
  --radius:2px;
  --shadow-lg:0 24px 60px -20px rgba(10,20,31,.35);
  --shadow-sm:0 8px 24px -12px rgba(10,20,31,.18);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important;}
}

body{
  margin:0;
  font-family:var(--f-body);
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font-family:inherit;cursor:pointer;}
input,select,textarea{font-family:inherit;font-size:1rem;}

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

.container{
  max-width:var(--container);
  margin:0 auto;
  padding:0 32px;
}

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:600;
  color:var(--navy-950);
  line-height:1.12;
  margin:0;
  letter-spacing:-.01em;
}

.eyebrow{
  font-family:var(--f-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--brass-dim);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.eyebrow::before{
  content:'';
  width:22px;height:1px;background:var(--brass);
  display:inline-block;
}

.section{padding:104px 0;}
.section--tight{padding:72px 0;}
.section--dark{background:var(--navy-950); color:var(--stone);}
.section--dark h1,.section--dark h2,.section--dark h3{color:var(--white);}
.section--stone{background:var(--stone);}

.lead{font-size:1.15rem; color:var(--slate); max-width:640px; line-height:1.7;}
.section--dark .lead{color:#B8C2CB;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--f-mono);
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:15px 28px;
  border:1px solid transparent;
  border-radius:var(--radius);
  transition:all .25s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--brass); color:var(--navy-950); font-weight:600;}
.btn-primary:hover{background:var(--brass-light); transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.btn-outline{border-color:var(--line-dark); color:var(--stone);}
.btn-outline:hover{border-color:var(--brass); color:var(--brass-light);}
.btn-outline-dark{border-color:var(--navy-700); color:var(--navy-950);}
.btn-outline-dark:hover{border-color:var(--brass); background:var(--navy-950); color:var(--stone);}
.btn-block{width:100%; justify-content:center;}
.btn-sm{padding:11px 18px; font-size:.74rem;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(10,20,31,.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-dark);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 32px;
  max-width:var(--container); margin:0 auto;
}
.brand{
  font-family:var(--f-display);
  font-size:1.5rem; font-weight:700;
  color:var(--white);
  letter-spacing:-.01em;
  display:flex; align-items:baseline; gap:8px;
}
.brand em{
  font-style:italic; color:var(--brass-light); font-weight:500;
}
.nav-links{
  display:flex; align-items:center; gap:36px;
}
.nav-links a{
  font-family:var(--f-mono);
  font-size:.78rem; letter-spacing:.05em; text-transform:uppercase;
  color:#C6CDD3;
  position:relative;
  padding:4px 0;
  transition:color .2s ease;
}
.nav-links a:hover, .nav-links a.active{color:var(--white);}
.nav-links a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-6px; height:1px; background:var(--brass);
}
.nav-cta{display:flex; align-items:center; gap:18px;}
.nav-toggle{display:none; background:none; border:none; color:var(--white); padding:6px;}

@media (max-width: 940px){
  .nav-links{
    position:fixed; inset:76px 0 0 0; background:var(--navy-950);
    flex-direction:column; align-items:flex-start; gap:0;
    padding:12px 32px 32px; transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:all .25s ease; border-top:1px solid var(--line-dark);
  }
  .nav-links.open{opacity:1; transform:translateY(0); pointer-events:auto;}
  .nav-links a{padding:16px 0; width:100%; border-bottom:1px solid var(--line-dark);}
  .nav-toggle{display:block;}
  .nav-cta .btn-outline{display:none;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  background:var(--navy-950);
  color:var(--white);
  overflow:hidden;
  padding:88px 0 0;
}
.hero-grid{
  position:absolute; inset:0;
  background-image:
    linear-gradient(var(--line-dark) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-dark) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom, black, transparent 85%);
  opacity:.5;
}
.hero-inner{
  position:relative; z-index:2;
  max-width:var(--container); margin:0 auto; padding:64px 32px 0;
  display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:end;
}
.hero h1{
  font-size:clamp(2.6rem, 5vw, 4.4rem);
  color:var(--white);
}
.hero h1 em{color:var(--brass-light); font-style:italic; font-weight:500;}
.hero-sub{
  margin-top:24px; font-size:1.1rem; color:#B8C2CB; max-width:520px; line-height:1.7;
}
.hero-actions{display:flex; gap:16px; margin-top:40px; flex-wrap:wrap;}

.hero-figures{
  display:flex; flex-direction:column; gap:0; border-left:1px solid var(--line-dark); padding-left:32px;
}
.hero-figure{padding:18px 0; border-bottom:1px solid var(--line-dark);}
.hero-figure:first-child{padding-top:0;}
.hero-figure .num{font-family:var(--f-mono); font-size:2rem; color:var(--brass-light); font-weight:600;}
.hero-figure .label{font-family:var(--f-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:#8B96A0; margin-top:4px;}

.hero-media{
  position:relative; z-index:2; margin-top:56px;
  height:340px; overflow:hidden;
  border-top:1px solid var(--line-dark);
}
.hero-media img{width:100%; height:100%; object-fit:cover; filter:grayscale(.15) saturate(1.05) brightness(.82);}
.hero-media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,20,31,.15), rgba(10,20,31,.85));
}

/* ---------- Ledger ticker (signature element) ---------- */
.ledger{
  background:var(--navy-900);
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
  overflow:hidden;
  position:relative;
}
.ledger-track{
  display:flex; white-space:nowrap;
  animation:ledger-scroll 38s linear infinite;
  width:max-content;
}
.ledger:hover .ledger-track{animation-play-state:paused;}
.ledger-item{
  display:flex; align-items:center; gap:14px;
  padding:16px 40px;
  font-family:var(--f-mono); font-size:.82rem; letter-spacing:.04em;
  color:#B8C2CB;
  border-right:1px solid var(--line-dark);
}
.ledger-item strong{color:var(--brass-light); font-weight:600;}
@keyframes ledger-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* ---------- Search bar ---------- */
.search-panel{
  background:var(--white);
  border:1px solid var(--line);
  box-shadow:var(--shadow-lg);
  padding:28px;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr auto;
  gap:0;
  margin-top:-64px;
  position:relative; z-index:5;
}
.search-field{
  padding:8px 24px;
  border-right:1px solid var(--line);
}
.search-field:first-child{padding-left:0;}
.search-field label{
  display:block; font-family:var(--f-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--slate-light); margin-bottom:8px;
}
.search-field select, .search-field input{
  border:none; width:100%; font-size:1rem; color:var(--ink); background:transparent; padding:0;
}
.search-field select:focus, .search-field input:focus{outline:none;}
.search-panel .btn{border-radius:0; margin-left:24px;}
@media (max-width:1080px){
  .search-panel{grid-template-columns:1fr 1fr; gap:20px; margin-top:32px;}
  .search-field{border-right:none; border-bottom:1px solid var(--line); padding:0 0 16px;}
  .search-panel .btn{grid-column:1/-1; margin-left:0; margin-top:8px;}
}

/* ---------- Section headers ---------- */
.section-head{
  display:flex; justify-content:space-between; align-items:flex-end; gap:32px;
  margin-bottom:56px; flex-wrap:wrap;
}
.section-head h2{font-size:clamp(1.9rem,3vw,2.6rem);}

/* ---------- Property Cards ---------- */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:32px;}
.grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:32px;}
@media (max-width:940px){.grid-3,.grid-2{grid-template-columns:1fr;}}

.pcard{
  background:var(--white);
  border:1px solid var(--line);
  transition:transform .3s ease, box-shadow .3s ease;
}
.pcard:hover{transform:translateY(-6px); box-shadow:var(--shadow-lg);}
.pcard-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
.pcard-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.pcard:hover .pcard-media img{transform:scale(1.06);}
.pcard-tag{
  position:absolute; top:16px; left:16px;
  background:var(--navy-950); color:var(--brass-light);
  font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase;
  padding:6px 12px;
}
.pcard-price{
  position:absolute; bottom:16px; left:16px;
  background:rgba(10,20,31,.88); color:var(--white);
  font-family:var(--f-mono); font-weight:600; font-size:1.05rem;
  padding:8px 14px;
}
.pcard-body{padding:24px;}
.pcard-loc{font-family:var(--f-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--brass-dim); margin-bottom:8px;}
.pcard-title{font-family:var(--f-display); font-size:1.3rem; font-weight:600; color:var(--navy-950); margin-bottom:14px;}
.pcard-specs{
  display:flex; gap:0; border-top:1px solid var(--line); margin-top:18px; padding-top:16px;
}
.pcard-specs div{flex:1; font-family:var(--f-mono); font-size:.8rem; color:var(--slate);}
.pcard-specs strong{display:block; color:var(--ink); font-size:.95rem; margin-bottom:2px;}

/* ---------- Process / numbered steps (legitimate sequence) ---------- */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.step{padding:40px 36px; border-right:1px solid var(--line); border-bottom:1px solid var(--line);}
.step .idx{font-family:var(--f-mono); color:var(--brass); font-size:.85rem; margin-bottom:20px;}
.step h3{font-size:1.25rem; margin-bottom:12px;}
.step p{color:var(--slate); font-size:.95rem; margin:0;}
@media (max-width:940px){.steps{grid-template-columns:1fr;}}

/* ---------- Stat strip ---------- */
.stat-strip{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line-dark);}
.stat{padding:36px 32px; border-right:1px solid var(--line-dark);}
.stat:last-child{border-right:none;}
.stat .num{font-family:var(--f-mono); font-size:2.4rem; color:var(--brass-light); font-weight:600;}
.stat .label{font-family:var(--f-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:#8B96A0; margin-top:8px;}
@media (max-width:820px){.stat-strip{grid-template-columns:repeat(2,1fr);} .stat{border-bottom:1px solid var(--line-dark);}}

/* ---------- Testimonials ---------- */
.quote-card{background:var(--white); border:1px solid var(--line); padding:36px; height:100%;}
.quote-mark{font-family:var(--f-display); font-size:3rem; color:var(--brass); line-height:1; margin-bottom:8px;}
.quote-card p{font-size:1.05rem; color:var(--ink); line-height:1.7;}
.quote-by{display:flex; align-items:center; gap:12px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line);}
.quote-by img{width:44px; height:44px; border-radius:50%; object-fit:cover;}
.avatar-mono{
  width:44px; height:44px; border-radius:50%;
  background:var(--navy-800); color:var(--brass-light);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--f-mono); font-weight:600; font-size:.85rem;
  border:1px solid var(--line-dark); flex-shrink:0;
}
.avatar-mono.lg{width:76px; height:76px; font-size:1.3rem; border-radius:50%;}
.quote-by .name{font-weight:600; font-size:.92rem;}
.quote-by .role{font-family:var(--f-mono); font-size:.72rem; color:var(--slate-light); text-transform:uppercase; letter-spacing:.05em;}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--navy-950); color:var(--white);
  padding:80px 0; text-align:center;
  position:relative; overflow:hidden;
}
.cta-band h2{color:var(--white); font-size:clamp(2rem,4vw,3rem); max-width:760px; margin:0 auto;}
.cta-band .lead{margin:20px auto 36px; color:#B8C2CB;}
.cta-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ---------- Footer ---------- */
.site-footer{background:var(--navy-950); color:#9AA5AE; border-top:1px solid var(--line-dark);}
.footer-top{
  display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:48px;
  padding:72px 0 48px;
}
.footer-brand .brand{margin-bottom:16px;}
.footer-brand p{max-width:280px; font-size:.92rem; line-height:1.7;}
.footer-col h4{
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--stone); margin-bottom:20px; font-weight:600;
}
.footer-col a, .footer-col p{
  display:block; font-size:.9rem; color:#9AA5AE; margin-bottom:12px; transition:color .2s ease;
}
.footer-col a:hover{color:var(--brass-light);}
.footer-bottom{
  border-top:1px solid var(--line-dark);
  padding:28px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px;
  font-family:var(--f-mono); font-size:.75rem; color:#71808B;
}
.footer-bottom a{color:#71808B;}
.footer-bottom a:hover{color:var(--brass-light);}
.footer-legal{display:flex; gap:24px; flex-wrap:wrap;}
@media (max-width:900px){.footer-top{grid-template-columns:1fr 1fr; row-gap:40px;}}

/* ---------- Ad slots ---------- */
.ad-slot{
  border:1px dashed var(--line); background:var(--stone);
  display:flex; align-items:center; justify-content:center;
  min-height:120px; margin:48px 0;
  font-family:var(--f-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-light);
}
.ad-slot span{background:var(--white); padding:4px 10px; border:1px solid var(--line);}
.section--dark .ad-slot{background:var(--navy-900); border-color:var(--line-dark); color:#71808B;}

/* ---------- Breadcrumb / page header ---------- */
.page-head{
  background:var(--navy-950); color:var(--white); padding:180px 0 64px;
  position:relative; overflow:hidden;
}
.page-head .hero-grid{opacity:.35;}
.page-head h1{color:var(--white); font-size:clamp(2.2rem,4vw,3.2rem); position:relative; z-index:2;}
.breadcrumb{
  font-family:var(--f-mono); font-size:.75rem; letter-spacing:.05em; text-transform:uppercase;
  color:#8B96A0; margin-bottom:20px; position:relative; z-index:2;
}
.breadcrumb a:hover{color:var(--brass-light);}

/* ---------- Filter bar (listings) ---------- */
.filter-bar{
  background:var(--white); border:1px solid var(--line); padding:24px 28px;
  display:flex; gap:24px; flex-wrap:wrap; align-items:flex-end; margin-top:-40px; position:relative; z-index:5; box-shadow:var(--shadow-lg);
}
.filter-field{display:flex; flex-direction:column; gap:8px; min-width:150px;}
.filter-field label{font-family:var(--f-mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--slate-light);}
.filter-field select, .filter-field input{
  border:1px solid var(--line); padding:11px 14px; background:var(--paper);
}
.results-bar{display:flex; justify-content:space-between; align-items:center; margin:40px 0 32px; flex-wrap:wrap; gap:16px;}
.results-count{font-family:var(--f-mono); font-size:.85rem; color:var(--slate);}
.sort-select{border:1px solid var(--line); padding:10px 14px; background:var(--white); font-family:var(--f-mono); font-size:.8rem;}

.pagination{display:flex; gap:8px; justify-content:center; margin-top:56px;}
.pagination a, .pagination span{
  width:42px; height:42px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); font-family:var(--f-mono); font-size:.85rem; color:var(--slate);
}
.pagination .active{background:var(--navy-950); color:var(--white); border-color:var(--navy-950);}
.pagination a:hover{border-color:var(--brass); color:var(--brass-dim);}

/* ---------- Property detail ---------- */
.pd-gallery{display:grid; grid-template-columns:1.6fr 1fr; gap:8px; height:520px;}
.pd-gallery .main{grid-row:1/3; overflow:hidden;}
.pd-gallery .sub{overflow:hidden; position:relative;}
.pd-gallery img{width:100%; height:100%; object-fit:cover;}
@media (max-width:900px){.pd-gallery{grid-template-columns:1fr; height:auto;} .pd-gallery .sub{height:220px;} .pd-gallery .main{height:340px; grid-row:auto;}}

.pd-layout{display:grid; grid-template-columns:1fr 380px; gap:64px; margin-top:56px; align-items:start;}
@media (max-width:980px){.pd-layout{grid-template-columns:1fr;}}

.pd-header{display:flex; justify-content:space-between; align-items:flex-start; gap:24px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--line);}
.pd-header h1{font-size:clamp(1.8rem,3vw,2.4rem);}
.pd-price{font-family:var(--f-mono); font-size:1.7rem; font-weight:600; color:var(--navy-950); white-space:nowrap;}
.pd-loc{font-family:var(--f-mono); font-size:.85rem; color:var(--brass-dim); margin-top:8px; text-transform:uppercase; letter-spacing:.04em;}

.spec-sheet{display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); margin:36px 0;}
.spec-sheet div{padding:22px; border-right:1px solid var(--line); text-align:center;}
.spec-sheet div:last-child{border-right:none;}
.spec-sheet strong{display:block; font-family:var(--f-mono); font-size:1.3rem; color:var(--navy-950);}
.spec-sheet span{font-family:var(--f-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--slate-light); display:block; margin-top:6px;}
@media (max-width:600px){.spec-sheet{grid-template-columns:repeat(2,1fr);} .spec-sheet div{border-bottom:1px solid var(--line);}}

.feature-list{display:grid; grid-template-columns:1fr 1fr; gap:12px 24px; margin-top:20px;}
.feature-list li{font-size:.95rem; padding-left:22px; position:relative; color:var(--slate);}
.feature-list li::before{content:'—'; position:absolute; left:0; color:var(--brass);}

.agent-card{border:1px solid var(--line); padding:28px; position:sticky; top:110px;}
.agent-card img{width:76px; height:76px; border-radius:50%; object-fit:cover; margin-bottom:16px;}
.agent-card h4{font-family:var(--f-display); font-size:1.15rem; margin-bottom:2px;}
.agent-card .role{font-family:var(--f-mono); font-size:.72rem; color:var(--slate-light); text-transform:uppercase; letter-spacing:.05em; margin-bottom:20px;}
.agent-card .btn{margin-top:10px;}
.form-field{margin-bottom:14px;}
.form-field input, .form-field textarea{
  width:100%; border:1px solid var(--line); padding:12px 14px; background:var(--paper);
}
.form-field textarea{resize:vertical; min-height:90px;}

/* ---------- Contact / general forms ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.info-row{display:flex; gap:18px; padding:20px 0; border-bottom:1px solid var(--line);}
.info-row .ic{font-family:var(--f-mono); color:var(--brass); font-size:.8rem; width:24px;}
.info-row strong{display:block; font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--slate-light); margin-bottom:4px;}
.map-block{height:320px; background:var(--stone); border:1px solid var(--line); margin-top:32px; overflow:hidden;}
.map-block iframe{width:100%; height:100%; border:0; filter:grayscale(.3);}

/* ---------- Blog ---------- */
.blog-card{background:var(--white); border:1px solid var(--line);}
.blog-card-media{aspect-ratio:16/10; overflow:hidden;}
.blog-card-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.blog-card:hover .blog-card-media img{transform:scale(1.05);}
.blog-card-body{padding:24px;}
.blog-meta{font-family:var(--f-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; color:var(--brass-dim); margin-bottom:12px;}
.blog-card h3{font-size:1.2rem; margin-bottom:10px;}
.blog-card p{color:var(--slate); font-size:.92rem; margin:0;}
.article-body{max-width:760px; margin:0 auto;}
.article-body p{font-size:1.08rem; color:var(--ink); line-height:1.85; margin:0 0 24px;}
.article-body h2{font-size:1.6rem; margin:48px 0 18px;}
.article-body h3{font-size:1.25rem; margin:36px 0 14px;}
.article-body blockquote{
  border-left:2px solid var(--brass); margin:32px 0; padding:4px 0 4px 28px;
  font-family:var(--f-display); font-style:italic; font-size:1.25rem; color:var(--navy-800);
}
.article-body ul{margin:0 0 24px; padding-left:20px; list-style:disc; color:var(--slate);}
.article-body img{margin:36px 0; width:100%; aspect-ratio:16/9; object-fit:cover;}
.article-head{text-align:center; max-width:760px; margin:0 auto 48px;}
.article-head h1{font-size:clamp(2rem,4vw,2.8rem);}
.article-tags{display:flex; gap:10px; justify-content:center; margin-top:20px;}
.tag{font-family:var(--f-mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; padding:6px 12px; border:1px solid var(--line); color:var(--slate);}

/* ---------- Misc pages (legal) ---------- */
.legal-body{max-width:820px; margin:0 auto;}
.legal-body h2{font-size:1.4rem; margin:44px 0 16px;}
.legal-body p, .legal-body li{color:var(--slate); font-size:.98rem; line-height:1.8;}
.legal-body li{margin-bottom:8px;}
.legal-body ul{padding-left:20px; margin-bottom:20px;}
.updated{font-family:var(--f-mono); font-size:.78rem; color:var(--slate-light); margin-bottom:40px; display:block;}

/* ---------- Team / value grid ---------- */
.value-card{padding:32px 0; border-top:1px solid var(--line);}
.value-card .idx{font-family:var(--f-mono); color:var(--brass); font-size:.8rem;}
.value-card h3{margin:14px 0 10px; font-size:1.3rem;}
.value-card p{color:var(--slate); margin:0;}

.team-card{text-align:left; border:1px solid var(--line); padding:28px;}
.team-card .avatar-mono.lg{margin-bottom:20px;}
.team-card h4{font-family:var(--f-display); font-size:1.15rem;}
.team-card .role{font-family:var(--f-mono); font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--brass-dim); margin-top:4px; margin-bottom:14px;}
.team-card p{color:var(--slate); font-size:.88rem; margin:0;}

/* ---------- Scroll reveal ---------- */
.reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:translateY(0);}

/* ---------- Utility ---------- */
.mt-0{margin-top:0;}
.text-center{text-align:center;}
.center-col{max-width:680px; margin:0 auto; text-align:center;}
.divider{height:1px; background:var(--line); border:none; margin:64px 0;}
.section--dark .divider{background:var(--line-dark);}
.badge{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--f-mono); font-size:.7rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--ok); border:1px solid #C9DBCF; background:#F1F7F3; padding:6px 12px;
}

/* Back to top */
.to-top{
  position:fixed; right:28px; bottom:28px; z-index:90;
  width:48px; height:48px; background:var(--navy-950); color:var(--brass-light);
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line-dark);
  opacity:0; pointer-events:none; transform:translateY(10px);
  transition:all .3s ease;
}
.to-top.show{opacity:1; pointer-events:auto; transform:translateY(0);}
.to-top:hover{background:var(--brass); color:var(--navy-950);}
