/* =========================================================================
   Sharanagouda S. Patil — Advocate | advocatepsharan.in
   Design system: ivory law-report + oxblood binding + antique brass + ink
   ========================================================================= */

:root{
  /* Palette — grounded in law-report spines & chamber materials */
  --ink:        #1b1712;   /* near-black warm, primary text & dark sections */
  --ink-soft:   #3a332b;   /* softer body text */
  --oxblood:    #6f1a26;   /* law-report binding band — accent & links */
  --oxblood-dk: #55131d;   /* hover / deep */
  --brass:      #a8823e;   /* antique brass — scales, hairlines, seals */
  --brass-lt:   #c8a562;
  --ivory:      #f4efe4;   /* page background — law-report cream */
  --ivory-2:    #ece5d5;   /* alt sections */
  --paper:      #fcfaf3;   /* cards */
  --line:       #ddd3c0;   /* hairline borders */
  --muted:      #6d6455;   /* captions / meta */

  --serif:  "Fraunces", Georgia, "Times New Roman", serif;
  --sans:   "Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

  --wrap: 1140px;
  --gap: clamp(1rem, 4vw, 2.6rem);
  --radius: 3px;
  --shadow: 0 1px 2px rgba(27,23,18,.06), 0 8px 30px -12px rgba(27,23,18,.18);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--ivory); color:var(--ink-soft);
  font-family:var(--sans); font-size:17px; line-height:1.72;
  font-weight:400; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{ max-width:100%; display:block; height:auto; }
a{ color:var(--oxblood); text-decoration:none; transition:color .18s ease; }
a:hover{ color:var(--oxblood-dk); }
h1,h2,h3,h4{ font-family:var(--serif); color:var(--ink); line-height:1.12;
  font-weight:560; letter-spacing:-.01em; margin:0 0 .5em; }
h1{ font-size:clamp(2.1rem,5.2vw,3.5rem); font-weight:520; }
h2{ font-size:clamp(1.6rem,3.4vw,2.4rem); }
h3{ font-size:clamp(1.2rem,2.2vw,1.5rem); }
p{ margin:0 0 1.1em; }
::selection{ background:var(--brass); color:#fff; }

.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gap); }
.section{ padding:clamp(3.4rem,8vw,6rem) 0; }
.section--tight{ padding:clamp(2.4rem,5vw,3.6rem) 0; }
.center{ text-align:center; }

/* Eyebrow / legal-letterhead label */
.eyebrow{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--sans); font-size:.74rem; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--oxblood);
  margin:0 0 1rem;
}
.eyebrow::before{ content:""; width:26px; height:1px; background:var(--brass); }
.eyebrow.center-eb{ justify-content:center; }
.eyebrow.center-eb::after{ content:""; width:26px; height:1px; background:var(--brass); }

.lead{ font-size:1.14rem; color:var(--ink-soft); max-width:60ch; }
.muted{ color:var(--muted); }

/* Buttons */
.btn{ display:inline-flex; align-items:center; gap:.55rem; cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:.94rem; letter-spacing:.02em;
  padding:.85rem 1.5rem; border-radius:var(--radius); border:1px solid transparent;
  transition:transform .15s ease, background .2s ease, color .2s ease, box-shadow .2s ease; }
.btn:hover{ transform:translateY(-2px); }
/* Icon sizing — constrain inline SVG icons inside buttons so they don't balloon */
.btn svg{ width:1.15em; height:1.15em; flex:0 0 auto; }
.btn{ white-space:nowrap; }
.btn-primary{ background:var(--oxblood); color:#fff; box-shadow:0 6px 18px -8px rgba(111,26,38,.7); }
.btn-primary:hover{ background:var(--oxblood-dk); color:#fff; }
.btn-ghost{ background:transparent; color:var(--ink); border-color:var(--brass); }
.btn-ghost:hover{ background:var(--brass); color:#fff; }
.btn-lg{ padding:1rem 1.9rem; font-size:1rem; }

/* ---------- Top utility bar ---------- */
.topbar{ background:var(--ink); color:#e9e1d2; font-size:.82rem; }
.topbar .wrap{ display:flex; justify-content:space-between; align-items:center;
  gap:1rem; padding-top:.5rem; padding-bottom:.5rem; flex-wrap:wrap; }
.topbar a{ color:#e9e1d2; }
.topbar a:hover{ color:var(--brass-lt); }
.topbar .tb-left{ display:flex; gap:1.4rem; flex-wrap:wrap; }
.topbar .tb-item{ display:inline-flex; align-items:center; gap:.4rem; }
.topbar .tb-right{ display:inline-flex; align-items:center; gap:.4rem; color:var(--brass-lt); font-weight:600; white-space:nowrap; }
.topbar .tb-item svg,
.topbar .tb-right svg{ width:15px; height:15px; flex:0 0 auto; }
.topbar .tb-item{ white-space:nowrap; }

/* ---------- Header / nav ---------- */
.site-header{ position:sticky; top:0; z-index:60; background:rgba(244,239,228,.92);
  backdrop-filter:saturate(1.2) blur(8px); border-bottom:1px solid var(--line); }
.nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding-top:.7rem; padding-bottom:.7rem; }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand .seal{ width:44px; height:44px; flex:none; }
.brand .bt{ line-height:1.05; }
.brand .bt .nm{ font-family:var(--serif); font-weight:600; font-size:1.18rem; color:var(--ink);
  letter-spacing:-.01em; display:block; }
.brand .bt .kn{ font-size:.7rem; color:var(--oxblood); letter-spacing:.06em; font-weight:600; }
.brand .bt .sub{ font-size:.66rem; text-transform:uppercase; letter-spacing:.24em;
  color:var(--muted); font-weight:700; }

.nav-links{ display:flex; align-items:center; gap:1.7rem; list-style:none; margin:0; padding:0; }
.nav-links a{ color:var(--ink); font-weight:600; font-size:.96rem; position:relative; padding:.2rem 0; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-3px; height:2px; width:0;
  background:var(--oxblood); transition:width .22s ease; }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.nav-links a.active{ color:var(--oxblood); }
.nav-cta{ margin-left:.4rem; }
/* Call Now CTA lives inside .nav-links, so raise specificity to keep it white and button-styled */
.nav-links .nav-cta a{ color:#fff; padding:.7rem 1.3rem; line-height:1; }
.nav-links .nav-cta a:hover{ color:#fff; }
.nav-links .nav-cta a::after{ display:none; }
.nav-links .nav-cta a svg{ width:1.05em; height:1.05em; }

.nav-toggle{ display:none; background:none; border:1px solid var(--line); border-radius:var(--radius);
  width:44px; height:40px; cursor:pointer; align-items:center; justify-content:center; }
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{
  content:""; display:block; width:20px; height:2px; background:var(--ink); position:relative; transition:.2s; }
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }

/* ---------- Hero ---------- */
.hero{ position:relative; overflow:hidden; background:var(--ivory);
  border-bottom:1px solid var(--line); }
.hero .wrap{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4rem);
  align-items:center; padding-top:clamp(3rem,7vw,5rem); padding-bottom:clamp(3rem,7vw,5rem); }
.hero h1{ margin-bottom:.35em; }
.hero h1 .kn{ display:block; font-size:.42em; color:var(--oxblood); font-weight:600;
  letter-spacing:.02em; margin-top:.35em; }
.hero .credential{ font-family:var(--sans); font-size:.86rem; letter-spacing:.05em;
  color:var(--muted); font-weight:600; margin-bottom:1.3rem; }
.hero .hero-cta{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:1.6rem; }
.hero .trust{ margin-top:2rem; display:flex; gap:1.8rem; flex-wrap:wrap; }
.hero .trust .t{ } .hero .trust .n{ font-family:var(--serif); font-size:1.7rem; color:var(--oxblood);
  font-weight:600; line-height:1; }
.hero .trust .l{ font-size:.76rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:700; }

.hero-portrait{ position:relative; }
.hero-portrait .frame{ position:relative; border:1px solid var(--line); background:var(--paper);
  padding:12px; box-shadow:var(--shadow); }
.hero-portrait .frame::after{ content:""; position:absolute; inset:5px; border:1px solid var(--brass); pointer-events:none; }
.hero-portrait img{ width:100%; filter:grayscale(8%) contrast(1.02); }
.hero-portrait .tag{ position:absolute; bottom:-14px; left:50%; transform:translateX(-50%);
  background:var(--ink); color:#fff; font-family:var(--sans); font-size:.74rem; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; padding:.5rem 1.1rem; white-space:nowrap; }

/* subtle scale ornament behind hero */
.hero::before{ content:""; position:absolute; right:-6%; top:50%; transform:translateY(-50%);
  width:520px; height:520px; opacity:.05; pointer-events:none;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%236f1a26' stroke-width='1.4'><line x1='50' y1='8' x2='50' y2='78'/><line x1='22' y1='24' x2='78' y2='24'/><circle cx='22' cy='24' r='2'/><circle cx='78' cy='24' r='2'/><path d='M8 40a14 14 0 0 0 28 0z'/><path d='M64 40a14 14 0 0 0 28 0z'/><line x1='30' y1='78' x2='70' y2='78'/></g></svg>") center/contain no-repeat; }

/* ---------- Section heading block ---------- */
.sec-head{ max-width:64ch; }
.sec-head.center{ margin-inline:auto; }

/* ---------- Practice / service cards ---------- */
.grid{ display:grid; gap:1.4rem; }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }

.card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.7rem; position:relative; transition:transform .18s ease, box-shadow .2s ease, border-color .2s; }
.card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--brass); }
.card .ic{ width:38px; height:38px; color:var(--oxblood); margin-bottom:1rem; }
.card h3{ font-size:1.16rem; margin-bottom:.4rem; }
.card p{ font-size:.95rem; margin:0; color:var(--ink-soft); }
.card .more{ display:inline-block; margin-top:.9rem; font-size:.85rem; font-weight:700;
  letter-spacing:.02em; color:var(--oxblood); }
.card.svc{ padding-left:1.7rem; }
.card.svc::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--brass); opacity:0; transition:.2s; }
.card.svc:hover::before{ opacity:1; }

/* ---------- Dark band (about / credentials) ---------- */
.band-dark{ background:var(--ink); color:#e6ddcd; }
.band-dark h2,.band-dark h3{ color:#fff; }
.band-dark .eyebrow{ color:var(--brass-lt); }
.band-dark .eyebrow::before,.band-dark .eyebrow::after{ background:var(--brass); }
.band-dark a{ color:var(--brass-lt); }
.band-dark .stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; margin-top:2.4rem; }
.band-dark .stat{ border-top:1px solid rgba(200,165,98,.35); padding-top:1rem; }
.band-dark .stat .n{ font-family:var(--serif); font-size:2.2rem; color:#fff; font-weight:560; line-height:1; }
.band-dark .stat .l{ font-size:.78rem; text-transform:uppercase; letter-spacing:.12em; color:var(--brass-lt); margin-top:.35rem; font-weight:700; }

/* ---------- Split (image + text) ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,5vw,3.6rem); align-items:center; }
.split.rev .split-media{ order:2; }
.split-media img{ border:1px solid var(--line); box-shadow:var(--shadow); width:100%; }
.split-media .cap{ font-size:.8rem; color:var(--muted); margin-top:.6rem; font-style:italic; }

/* ---------- Bulleted trust list ---------- */
.checklist{ list-style:none; margin:1.2rem 0 0; padding:0; }
.checklist li{ position:relative; padding-left:1.9rem; margin-bottom:.7rem; }
.checklist li::before{ content:""; position:absolute; left:0; top:.5em; width:12px; height:7px;
  border-left:2px solid var(--oxblood); border-bottom:2px solid var(--oxblood);
  transform:rotate(-45deg); }

/* ---------- Steps ---------- */
.steps{ counter-reset:s; display:grid; gap:1.2rem; }
.step{ display:grid; grid-template-columns:auto 1fr; gap:1.1rem; align-items:start; }
.step .num{ counter-increment:s; width:44px; height:44px; flex:none; border-radius:50%;
  border:1px solid var(--brass); color:var(--oxblood); font-family:var(--serif);
  font-size:1.2rem; font-weight:600; display:grid; place-items:center; }
.step .num::before{ content:counter(s,decimal-leading-zero); }
.step h3{ margin-bottom:.2rem; font-size:1.1rem; }
.step p{ margin:0; font-size:.95rem; }

/* ---------- CTA band ---------- */
.cta-band{ background:var(--oxblood); color:#fff; text-align:center; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:#f3dcde; max-width:56ch; margin-inline:auto; }
.cta-band .btn-ghost{ border-color:#fff; color:#fff; }
.cta-band .btn-ghost:hover{ background:#fff; color:var(--oxblood); }
.cta-band .btn-primary{ background:#fff; color:var(--oxblood); }
.cta-band .btn-primary:hover{ background:var(--ink); color:#fff; }

/* ---------- FAQ ---------- */
.faq{ max-width:820px; margin-inline:auto; }
.faq details{ border-bottom:1px solid var(--line); padding:1.1rem 0; }
.faq summary{ cursor:pointer; font-family:var(--serif); font-size:1.14rem; color:var(--ink);
  font-weight:560; list-style:none; display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{ content:"+"; color:var(--oxblood); font-size:1.5rem; font-family:var(--sans); line-height:1; }
.faq details[open] summary::after{ content:"–"; }
.faq details p{ margin:.9rem 0 0; color:var(--ink-soft); }

/* ---------- Testimonials ---------- */
.quote{ background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--brass);
  padding:1.6rem 1.7rem; border-radius:var(--radius); }
.quote p{ font-family:var(--serif); font-size:1.06rem; color:var(--ink); font-style:italic; margin-bottom:.9rem; }
.quote .who{ font-size:.85rem; font-weight:700; color:var(--oxblood); letter-spacing:.02em; }
.quote .who span{ display:block; color:var(--muted); font-weight:500; letter-spacing:0; }

/* ---------- Contact ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.6rem,5vw,3rem); }
.info-list{ list-style:none; margin:1.4rem 0 0; padding:0; }
.info-list li{ display:flex; gap:.9rem; padding:1rem 0; border-bottom:1px solid var(--line); }
.info-list .ic{ width:24px; height:24px; color:var(--oxblood); flex:none; margin-top:.15rem; }
.info-list .ic svg{ width:100%; height:100%; display:block; }
.info-list .k{ font-size:.74rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:700; }
.info-list .v{ font-size:1.02rem; color:var(--ink); font-weight:600; }
.info-list .v a{ color:var(--ink); }
.info-list .v a:hover{ color:var(--oxblood); }

form .f{ margin-bottom:1rem; }
form label{ display:block; font-size:.8rem; font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted); margin-bottom:.35rem; }
form input,form select,form textarea{ width:100%; font-family:var(--sans); font-size:1rem;
  padding:.8rem .9rem; border:1px solid var(--line); border-radius:var(--radius);
  background:var(--paper); color:var(--ink); }
form input:focus,form select:focus,form textarea:focus{ outline:2px solid var(--brass); outline-offset:1px; border-color:var(--brass); }
form textarea{ min-height:130px; resize:vertical; }
.form-note{ font-size:.82rem; color:var(--muted); margin-top:.6rem; }

/* ---------- Page hero (inner pages) ---------- */
.page-hero{ background:var(--ink); color:#efe7d8; padding:clamp(2.6rem,6vw,4.2rem) 0 clamp(2.4rem,5vw,3.4rem); position:relative; }
.page-hero .eyebrow{ color:var(--brass-lt); }
.page-hero .eyebrow::before{ background:var(--brass); }
.page-hero h1{ color:#fff; max-width:20ch; }
.page-hero p{ color:#cfc4b1; max-width:60ch; margin-bottom:0; }
.crumbs{ font-size:.8rem; color:#b7ab97; margin-bottom:1rem; letter-spacing:.03em; }
.crumbs a{ color:var(--brass-lt); }
.crumbs span{ opacity:.6; margin:0 .4rem; }

/* ---------- Blog ---------- */
.post-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.post-card{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; display:flex; flex-direction:column; transition:transform .18s ease, box-shadow .2s ease; }
.post-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow); }
.post-card .pc-body{ padding:1.4rem 1.4rem 1.6rem; display:flex; flex-direction:column; flex:1; }
.post-card .cat{ font-size:.72rem; text-transform:uppercase; letter-spacing:.14em; font-weight:700;
  color:var(--oxblood); margin-bottom:.6rem; }
.post-card h3{ font-size:1.18rem; margin-bottom:.5rem; }
.post-card h3 a{ color:var(--ink); }
.post-card h3 a:hover{ color:var(--oxblood); }
.post-card p{ font-size:.92rem; color:var(--ink-soft); margin-bottom:1rem; flex:1; }
.post-card .meta{ font-size:.78rem; color:var(--muted); }
.post-card .thumb{ aspect-ratio:16/10; background:var(--ivory-2); position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.post-card .thumb .badge{ position:absolute; inset:0; display:grid; place-items:center; }
.post-card .thumb svg{ width:64px; height:64px; opacity:.5; color:var(--brass); }

/* ---------- Article ---------- */
.article{ max-width:760px; margin-inline:auto; }
.article .meta-top{ font-size:.82rem; color:var(--muted); margin-bottom:1.4rem;
  display:flex; gap:1rem; flex-wrap:wrap; align-items:center; }
.article .meta-top .cat{ color:var(--oxblood); font-weight:700; text-transform:uppercase; letter-spacing:.12em; }
.article-body{ font-size:1.06rem; line-height:1.8; color:var(--ink-soft); }
.article-body h2{ margin-top:2.3rem; padding-top:.3rem; }
.article-body h2::before{ content:""; display:block; width:40px; height:2px; background:var(--brass); margin-bottom:.9rem; }
.article-body h3{ margin-top:1.7rem; color:var(--oxblood); }
.article-body ul,.article-body ol{ margin:0 0 1.2em; padding-left:1.3em; }
.article-body li{ margin-bottom:.5em; }
.article-body strong{ color:var(--ink); }
.article-body blockquote{ margin:1.6rem 0; padding:1rem 1.3rem; background:var(--ivory-2);
  border-left:3px solid var(--oxblood); border-radius:var(--radius); font-style:italic; color:var(--ink); }
.article-body .callout{ background:var(--paper); border:1px solid var(--line); border-top:3px solid var(--brass);
  padding:1.3rem 1.4rem; border-radius:var(--radius); margin:1.8rem 0; }
.article-body .callout h4{ font-family:var(--serif); font-size:1.1rem; color:var(--ink); margin:0 0 .5rem; }
.article-body .callout p:last-child{ margin-bottom:0; }
.article-body table{ width:100%; border-collapse:collapse; margin:1.6rem 0; font-size:.95rem; }
.article-body th,.article-body td{ border:1px solid var(--line); padding:.7rem .8rem; text-align:left; }
.article-body th{ background:var(--ivory-2); font-family:var(--sans); font-weight:700; color:var(--ink); }
.toc{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem 1.5rem; margin:1.8rem 0 2.4rem; }
.toc .tt{ font-family:var(--sans); font-size:.76rem; text-transform:uppercase; letter-spacing:.16em; font-weight:700; color:var(--muted); margin-bottom:.7rem; }
.toc ol{ margin:0; padding-left:1.2em; columns:2; column-gap:2rem; }
.toc li{ margin-bottom:.35em; font-size:.92rem; }
.author-box{ display:flex; gap:1.2rem; align-items:center; background:var(--ink); color:#e6ddcd;
  padding:1.5rem; border-radius:var(--radius); margin:2.6rem 0 0; }
.author-box img{ width:78px; height:78px; border-radius:50%; object-fit:cover; border:2px solid var(--brass); flex:none; }
.author-box h4{ color:#fff; margin:0 0 .2rem; }
.author-box p{ margin:0; font-size:.9rem; color:#cfc4b1; }
.author-box a{ color:var(--brass-lt); font-weight:700; }

.inline-cta{ background:var(--ivory-2); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.6rem 1.7rem; margin:2rem 0; text-align:center; }
.inline-cta h4{ font-family:var(--serif); font-size:1.3rem; color:var(--ink); margin:0 0 .4rem; }
.inline-cta p{ margin:0 0 1rem; color:var(--ink-soft); }

.related h3{ margin-bottom:1.2rem; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:#b7ab97; padding:clamp(3rem,6vw,4.4rem) 0 2rem; font-size:.92rem; }
.site-footer h4{ color:#fff; font-family:var(--sans); font-size:.78rem; text-transform:uppercase;
  letter-spacing:.16em; font-weight:700; margin:0 0 1.1rem; }
.footer-grid{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:2rem; }
.footer-grid a{ color:#cfc4b1; }
.footer-grid a:hover{ color:var(--brass-lt); }
.footer-grid ul{ list-style:none; margin:0; padding:0; }
.footer-grid li{ margin-bottom:.55rem; }
.footer-brand .seal{ width:52px; height:52px; margin-bottom:1rem; }
.footer-brand .nm{ font-family:var(--serif); color:#fff; font-size:1.3rem; margin-bottom:.3rem; }
.footer-brand p{ font-size:.9rem; line-height:1.6; }
.footer-bottom{ border-top:1px solid rgba(200,165,98,.25); margin-top:2.6rem; padding-top:1.5rem;
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-size:.82rem; color:#9a8f7c; }
.footer-bottom a{ color:#9a8f7c; }
.disclaimer{ background:#141009; color:#8a8071; font-size:.78rem; line-height:1.6; padding:1.4rem 0; }
.disclaimer .wrap{ max-width:var(--wrap); }

/* Floating call button (mobile) */
.fab{ position:fixed; right:16px; bottom:16px; z-index:70; display:none;
  background:var(--oxblood); color:#fff; width:56px; height:56px; border-radius:50%;
  box-shadow:0 8px 24px -6px rgba(111,26,38,.7); align-items:center; justify-content:center; }
.fab svg{ width:26px; height:26px; }

/* ---------- WhatsApp chat widget ---------- */
.wa-fab{ position:fixed; right:16px; bottom:16px; z-index:71;
  display:inline-flex; align-items:center; gap:.55rem;
  background:#25d366; color:#fff; height:56px; padding:0 20px 0 14px;
  border-radius:28px; text-decoration:none;
  font-family:var(--sans); font-weight:700; font-size:.95rem; letter-spacing:.01em;
  box-shadow:0 10px 26px -8px rgba(37,211,102,.75);
  transition:transform .15s ease, box-shadow .2s ease; }
.wa-fab:hover{ transform:translateY(-2px); color:#fff;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.85); }
.wa-fab svg{ width:30px; height:30px; flex:0 0 auto; }
.wa-fab .wa-label{ white-space:nowrap; }
.wa-fab::before{ content:""; position:absolute; left:15px; top:50%;
  width:34px; height:34px; border-radius:50%; background:#25d366; z-index:-1;
  transform:translateY(-50%); animation:waPulse 2.6s ease-out infinite; }
@keyframes waPulse{
  0%{ opacity:.55; transform:translateY(-50%) scale(1); }
  100%{ opacity:0; transform:translateY(-50%) scale(2.3); } }

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); }
  .post-grid{ grid-template-columns:repeat(2,1fr); }
  .hero .wrap{ grid-template-columns:1fr; }
  .hero-portrait{ max-width:360px; margin-inline:auto; order:-1; }
  .split,.split.rev .split-media{ grid-template-columns:1fr; }
  .split.rev .split-media{ order:0; }
  .contact-grid{ grid-template-columns:1fr; }
  .band-dark .stat-row{ grid-template-columns:repeat(2,1fr); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .toc ol{ columns:1; }
}
@media (max-width:640px){
  body{ font-size:16px; }
  .nav-links{ position:fixed; inset:0 0 0 auto; width:min(80vw,320px); background:var(--ivory);
    flex-direction:column; align-items:flex-start; gap:1.2rem; padding:5rem 1.8rem 2rem;
    transform:translateX(100%); transition:transform .25s ease; box-shadow:-10px 0 40px -10px rgba(0,0,0,.3);
    border-left:1px solid var(--line); }
  .nav-links.open{ transform:translateX(0); }
  .nav-toggle{ display:flex; z-index:80; }
  .grid-3,.grid-4,.grid-2{ grid-template-columns:1fr; }
  .post-grid{ grid-template-columns:1fr; }
  .band-dark .stat-row{ grid-template-columns:1fr 1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .fab{ display:flex; bottom:84px; }
  .wa-fab{ padding:0; width:56px; justify-content:center; border-radius:50%; }
  .wa-fab .wa-label{ display:none; }
  .topbar .tb-left{ display:none; }
  .topbar .wrap{ justify-content:center; }
  .author-box{ flex-direction:column; text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  *{ animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
