/* victorbruzos.com — soft beige, limited dark green, gold and black
   Type: Source Serif 4 (headings) · Public Sans (body) */
:root{
  --bg:#F7F3EA; --dim:#F0EADC; --card:#FBF8F1;
  --ink:#1A1915; --body:#343229; --mut:#6E695B;
  --line:#E0D8C6; --green:#24543A; --green-deep:#1B4030;
  --gold:#A8862F; --gold-line:#CBB272; --footer:#1B1A16;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --wrap:1060px; --pad:clamp(20px,4vw,40px);
}
*{box-sizing:border-box;margin:0;padding:0}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
body{background:var(--bg);color:var(--body);font-family:var(--sans);font-size:1.05rem;line-height:1.72;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
a:hover{color:var(--green-deep)}
:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;background:var(--footer);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}

/* type */
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.18;letter-spacing:-.008em;color:var(--ink)}
h1{font-size:clamp(2rem,4.3vw,2.95rem)}
h2{font-size:clamp(1.45rem,2.7vw,1.9rem)}
h3{font-size:1.18rem;line-height:1.35}
.lede{font-size:clamp(1.07rem,1.75vw,1.24rem);color:var(--mut);line-height:1.65;max-width:62ch}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(247,243,234,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--gold-line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:1rem}
.brand{font-family:var(--serif);font-weight:700;font-size:1.16rem;color:var(--ink);text-decoration:none;white-space:nowrap;line-height:1.25}
.brand small{display:block;font-family:var(--sans);font-weight:500;font-size:.66rem;letter-spacing:.09em;color:var(--mut);text-transform:uppercase}
.nav-toggle{display:none}
.nav-btn{display:none;font-family:var(--sans);font-weight:600;font-size:.82rem;letter-spacing:.04em;border:1px solid var(--line);background:none;padding:.45rem .85rem;cursor:pointer;color:var(--ink)}
nav.primary ul{display:flex;gap:1.45rem;list-style:none;align-items:center}
nav.primary a{font-size:.93rem;font-weight:500;color:var(--body);text-decoration:none;padding:.35rem 0}
nav.primary a:hover{color:var(--green-deep);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1.5px}
nav.primary a[aria-current="page"]{color:var(--green-deep);font-weight:600;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
@media (max-width:920px){
  .nav-btn{display:inline-block}
  nav.primary{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 16px 32px rgba(26,25,21,.08)}
  .nav-toggle:checked ~ nav.primary{display:block}
  nav.primary ul{flex-direction:column;align-items:stretch;gap:0;padding:.4rem var(--pad) 1rem}
  nav.primary li{border-top:1px solid var(--line)}
  nav.primary li:first-child{border-top:none}
  nav.primary a{display:block;padding:.85rem 0}
}

/* hero */
.hero{padding:clamp(2.7rem,5.6vw,4.4rem) 0}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.hero h1{margin-bottom:1.05rem}
.hero .lede{margin-bottom:.95rem}
.hero .sub{max-width:60ch;color:var(--body)}
.portrait{border:1px solid var(--line)}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr}.hero .portrait{max-width:440px}}

/* sections */
section.band{padding:clamp(2.7rem,5.4vw,4rem) 0;border-top:1px solid var(--line)}
section.band.dim{background:var(--dim)}
.section-head{max-width:70ch;margin-bottom:1.9rem}
.section-head p{color:var(--mut);margin-top:.7rem}

/* item grids */
.grid{display:grid;grid-template-columns:1fr 1fr;gap:1.8rem 3rem}
@media (max-width:760px){.grid{grid-template-columns:1fr}}
.item{border-top:1px solid var(--line);padding-top:1.1rem;position:relative}
.item h3{margin-bottom:.4rem}
.item h3 a{text-decoration:none;color:var(--ink)}
.item h3 a::before{content:"";position:absolute;inset:0}
.item:hover h3 a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1.5px;color:var(--green-deep)}
.item p{font-size:.95rem;color:var(--body)}
.item .meta{font-size:.84rem;color:var(--mut);margin-top:.5rem}

/* text links */
.textlink{font-weight:600;font-size:.96rem;color:var(--green);text-underline-offset:4px}
.textlink:hover{color:var(--green-deep)}
.textlink::after{content:" \2192"}
.after-grid{margin-top:1.9rem}

/* FAQ */
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:baseline;padding:1.05rem 0;font-family:var(--serif);font-weight:600;font-size:1.06rem;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.15rem;font-family:var(--sans);font-weight:400}
.faq details[open] summary::after{content:"\2212"}
.faq .a{padding:0 0 1.25rem;color:var(--body);max-width:72ch}
.faq .a p+p{margin-top:.7rem}

/* breadcrumbs + page head */
.crumbs{font-size:.8rem;color:var(--mut);padding:1rem 0 0}
.crumbs a{color:var(--mut);text-decoration:none}
.crumbs a:hover{color:var(--green-deep);text-decoration:underline}
.crumbs span[aria-current]{color:var(--ink)}
.page-head{padding:clamp(2rem,4.3vw,3.2rem) 0 clamp(1.4rem,2.8vw,2.1rem);border-bottom:1px solid var(--line)}
.page-head .lede{margin-top:.9rem}
.meta-line{font-size:.85rem;color:var(--mut);margin-top:1rem}

/* prose pages */
.prose{max-width:74ch;padding:clamp(2rem,3.8vw,2.8rem) 0}
.prose h2{margin:2.25rem 0 .85rem}
.prose h3{margin:1.65rem 0 .55rem}
.prose p{margin:0 0 1.05rem}
.prose ul,.prose ol{margin:0 0 1.05rem 1.3rem}
.prose li{margin-bottom:.45rem}
.prose a{text-underline-offset:3px}
.prose .callout{border:1px solid var(--line);border-top:2px solid var(--gold-line);background:var(--card);padding:1.05rem 1.25rem;margin:1.6rem 0;font-size:.95rem}
.prose table{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:.94rem}
.prose th{font-family:var(--sans);font-weight:600;font-size:.84rem;text-align:left;color:var(--ink)}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:.65rem .8rem .65rem 0;vertical-align:top}

/* two-column (about, contact) */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4rem);align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.factline{display:grid;gap:.85rem;border-top:1px solid var(--line);padding-top:1.3rem;margin-top:1.5rem}
.factline div{display:grid;grid-template-columns:140px 1fr;gap:1rem;font-size:.94rem}
.factline dt{font-weight:600;font-size:.84rem;color:var(--mut);padding-top:.1rem}
.factline dd{color:var(--ink)}
@media (max-width:560px){.factline div{grid-template-columns:1fr;gap:.15rem}}
.photo{border:1px solid var(--line)}
.wide-photo{margin-top:clamp(1.5rem,3.2vw,2.2rem)}

/* footer */
footer.site{background:var(--footer);color:#C9C4B4;font-size:.9rem;margin-top:clamp(2.4rem,4.8vw,3.8rem);border-top:3px solid var(--gold-line)}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:2rem;padding:2.7rem 0 2rem}
@media (max-width:860px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media (max-width:560px){footer.site .cols{grid-template-columns:1fr}}
footer.site h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-line);margin-bottom:.85rem;font-weight:600}
footer.site ul{list-style:none;display:grid;gap:.45rem}
footer.site a{color:#DDD8C9;text-decoration:none}
footer.site a:hover{color:#fff;text-decoration:underline}
footer.site .brandline{font-family:var(--serif);font-weight:700;color:#F7F3EA;font-size:1.12rem}
footer.site .brandline small{display:block;font-family:var(--sans);font-weight:500;font-size:.64rem;letter-spacing:.09em;color:#98937F;text-transform:uppercase;margin-top:.3rem}
footer.site .legal{border-top:1px solid #35332B;padding:1.5rem 0 2.1rem;font-size:.78rem;line-height:1.65;color:#98937F}
footer.site .legal p+p{margin-top:.6rem}

/* v4 homepage: Malloy-mirrored sections */
.brand-logo{height:58px;width:auto;display:block}
.kicker{font-family:var(--sans);font-weight:600;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.55rem}
.hero2{background:linear-gradient(rgba(18,26,20,.62),rgba(14,22,16,.78)),none;padding:clamp(3rem,7vw,5.4rem) 0}
.hero2 .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4rem);align-items:center}
.hero2 h1{color:#F7F3EA;font-size:clamp(1.65rem,3.4vw,2.6rem);line-height:1.25}
.hero2 .rule{width:130px;height:3px;background:var(--gold-line);margin:1.3rem 0}
.hero2 p{color:#DAD5C5;max-width:56ch}
.hero2 .portrait{border:1px solid rgba(203,178,114,.55)}
@media (max-width:860px){.hero2 .wrap{grid-template-columns:1fr}.hero2 .portrait{max-width:340px}}
.strip{background:var(--dim);border-top:2px solid var(--gold-line);border-bottom:1px solid var(--line)}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;padding-top:1.05rem;padding-bottom:1.05rem}
.strip div{text-align:center;font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-deep)}
@media (max-width:760px){.strip .wrap{grid-template-columns:1fr;gap:.45rem}}
.center-head{text-align:center;max-width:72ch;margin:0 auto 2rem}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media (max-width:900px){.tiles{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.tiles{grid-template-columns:1fr}}
.tile{background:var(--card);border:1px solid var(--line);border-top:2px solid var(--gold-line);padding:1.25rem 1.2rem 1.1rem;position:relative;display:flex;flex-direction:column;gap:.5rem}
.tile h3{font-size:1.07rem}
.tile a{font-weight:600;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green);text-decoration:none}
.tile a::before{content:"";position:absolute;inset:0}
.tile:hover{border-color:var(--green)}
.tile:hover a{text-decoration:underline;text-underline-offset:4px}

/* v5: Centaur sitewide, larger logo, clock tower hero, signature */
@font-face{font-family:'Sorts Mill Goudy';src:url('/fonts/SortsMillGoudy-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Sorts Mill Goudy';src:url('/fonts/SortsMillGoudy-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap}
/* Licensed Centaur web font slot: add files to /fonts and uncomment
@font-face{font-family:'Centaur';src:url('/fonts/Centaur.woff2') format('woff2');font-display:swap} */
:root{--serif:'Centaur','Sorts Mill Goudy',Georgia,'Times New Roman',serif;--sans:'Centaur','Sorts Mill Goudy',Georgia,'Times New Roman',serif}
body{font-size-adjust:.46;line-height:1.62}
h1,h2,h3,.brand,.faq summary,footer.site .brandline{font-weight:400;font-size-adjust:none}
h1{font-size:clamp(2.2rem,4.6vw,3.2rem)}
h2{font-size:clamp(1.7rem,3vw,2.25rem)}
h3{font-size:1.32rem}
strong,b{font-weight:700}
.brand-logo{height:96px;width:auto}
.site-header .wrap{padding-top:.7rem;padding-bottom:.7rem}
nav.primary a{font-size:1.02rem;letter-spacing:.02em}
@media (max-width:920px){.brand-logo{height:66px}}
.hero2{background:linear-gradient(rgba(16,42,28,.74),rgba(11,30,20,.82)),url('/images/palm-beach-clock-tower.webp') center 35%/cover no-repeat}
.hero2 h1{font-size:clamp(2rem,3.8vw,2.9rem);line-height:1.18}
.hero2 p{color:#E4DFD0;max-width:54ch}
.hero2 p+p{margin-top:.75rem}
.hero2 .kicker{color:var(--gold-line)}
.hero2 .signature{width:min(250px,60%);height:auto;margin-top:1.4rem;opacity:.95}
.hero2 .portrait{box-shadow:0 18px 40px rgba(0,0,0,.35)}

/* v6: larger logo, slightly wider content */
:root{--wrap:1160px}
.brand-logo{height:116px}
@media (max-width:920px){.brand-logo{height:74px}}
.hero2 p{max-width:58ch}

/* v7: logo +10%, justified hero copy */
.brand-logo{height:128px}
@media (max-width:920px){.brand-logo{height:80px}}
.hero2 p:not(.kicker){text-align:justify;text-justify:inter-word}


/* v9: foundations section, photo left / text right */
.split.flip{grid-template-columns:.95fr 1.05fr;align-items:center}
@media (max-width:860px){.split.flip{grid-template-columns:1fr}}
.split.flip .photo{width:100%;height:auto}
.split.flip p+p{margin-top:.85rem}

/* v10: hero heading flush with justified copy; full-width section headings */
.hero2 .copy{--h:clamp(2rem,3.8vw,2.9rem)}
.hero2 .copy h1{font-size:var(--h)}
@media (min-width:861px){
  .hero2 .copy{width:min-content;max-width:100%}
  .hero2 .copy h1 .l{display:block;white-space:nowrap}
  .hero2 .copy p{max-width:none}
}
.section-head.wide{max-width:none;margin-bottom:1.8rem}

/* uniformity: every kicker label is gold, inside or outside section heads */
.section-head .kicker,.center-head .kicker{color:var(--gold)}

/* v12: foundations, heading sets the text width; photo fills the rest */
.found{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:clamp(2rem,4vw,3.4rem);align-items:stretch}
.found .photo{width:100%;height:100%;object-fit:cover;object-position:62% 60%;min-height:340px}
.found-copy{width:min-content}
.found-copy h2{white-space:nowrap;margin-bottom:.9rem}
.found-copy p+p{margin-top:.85rem}
@media (max-width:860px){
  .found{grid-template-columns:1fr}
  .found-copy{width:auto}
  .found-copy h2{white-space:normal}
  .found .photo{height:auto;min-height:0}
}

/* v12: practice areas as manila folders */
.folders{display:grid;grid-template-columns:repeat(4,1fr);gap:2.4rem 1.4rem;padding-top:.6rem}
@media (max-width:1000px){.folders{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.folders{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.folders{grid-template-columns:1fr}}
.folder{--manila:#E3D1A2;--manila-dk:#D3BC84;position:relative;display:block;padding-top:20px;text-decoration:none;color:var(--ink);transition:transform .28s ease;outline-offset:6px}
.folder::before{content:"";position:absolute;top:0;left:0;width:44%;height:24px;background:var(--manila-dk);border-radius:7px 9px 0 0;box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.folder::after{content:"";position:absolute;top:20px;left:0;right:0;bottom:0;background:var(--manila-dk);border-radius:0 7px 7px 7px}
.folder .sheet{position:absolute;z-index:1;left:9%;right:9%;top:28px;height:62%;background:#FDFBF6;border:1px solid #E6DFCF;border-radius:2px;
  background-image:repeating-linear-gradient(#FDFBF6 0 13px,#E9E3D4 13px 14px);background-position:0 22px;
  box-shadow:0 1px 2px rgba(0,0,0,.06);transition:transform .32s ease}
.folder .front{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:space-between;min-height:132px;margin-top:14px;
  padding:1.15rem 1.1rem 1rem;background:linear-gradient(var(--manila),#DDC995);border-radius:3px 7px 7px 7px;
  box-shadow:0 -1px 0 rgba(255,255,255,.45) inset,0 6px 14px rgba(60,48,20,.12);transition:box-shadow .28s ease}
.folder .label{font-family:var(--serif);font-size:1.18rem;line-height:1.25}
.folder .more{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-deep);opacity:0;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease}
.folder:hover,.folder:focus-visible{transform:translateY(-10px)}
.folder:hover .sheet,.folder:focus-visible .sheet{transform:translateY(-26px)}
.folder:hover .front,.folder:focus-visible .front{box-shadow:0 -1px 0 rgba(255,255,255,.45) inset,0 16px 28px rgba(60,48,20,.22)}
.folder:hover .more,.folder:focus-visible .more{opacity:1;transform:none}
@media (hover:none){.folder .more{opacity:1;transform:none}.folder .sheet{transform:translateY(-10px)}}
@media (max-width:440px){.folders{grid-template-columns:repeat(2,1fr);gap:1.8rem .9rem}.folder .front{min-height:112px;padding:.9rem .8rem .8rem}.folder .label{font-size:1.02rem}}
@media (max-width:330px){.folders{grid-template-columns:1fr}}

/* v14: practice areas as a filing drawer, in the site's own materials */
.cabinet{--step:54px;--fh:168px;--open:64px;--tabw:26%;--tabh:40px;position:relative;padding:.4rem 0 calc(var(--open) + .4rem)}
.file{position:relative;display:block;height:var(--fh);isolation:isolate;text-decoration:none;color:var(--ink);
  transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.file + .file{margin-top:calc(var(--step) - var(--fh))}
.file .tab{position:absolute;z-index:2;top:0;left:var(--x);width:var(--tabw);height:calc(var(--tabh) + 1px);
  display:flex;align-items:center;justify-content:center;padding:0 .9rem;text-align:center;
  background:var(--card);border:1px solid var(--line);border-bottom:none;border-top:2px solid var(--gold-line);border-radius:6px 6px 0 0}
.file .label{font-family:var(--serif);font-size:1.08rem;line-height:1.12;transition:color .25s}
.file .body{position:absolute;z-index:1;top:var(--tabh);left:0;right:0;bottom:0;background:var(--card);
  border:1px solid var(--line);border-radius:0 0 6px 6px;box-shadow:0 -6px 14px rgba(26,25,21,.045)}
.file .more{position:absolute;z-index:3;top:calc(var(--tabh) + 14px);left:var(--x);width:var(--tabw);text-align:center;
  font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--green-deep);
  opacity:0;transform:translateY(-3px);transition:opacity .25s ease,transform .25s ease}
.file:hover,.file:focus-visible{transform:translateY(-4px)}
.file:hover ~ .file,.file:focus-visible ~ .file{transform:translateY(var(--open))}
.file:hover .label,.file:focus-visible .label{color:var(--green-deep)}
.file:hover .more,.file:focus-visible .more{opacity:1;transform:none}
.file:hover .tab,.file:focus-visible .tab{border-top-color:var(--green)}
.file:focus-visible{outline:none}
.file:focus-visible .tab{box-shadow:0 0 0 2px var(--green)}
@media (max-width:760px){
  .cabinet{--step:52px;--tabw:62%}
  .file .tab{left:var(--xm)}
  .file .more{left:var(--xm)}
  .file .label{font-size:.98rem}
}
.cabinet{--tabw:29%;--fh:136px}
@media (max-width:760px){.cabinet{--tabw:62%}}
.cabinet{--fh:164px}

/* v15: uniform justified body text across main content */
main .section-head p:not(.kicker),main .split p,main .found-copy p,main .prose p,main .prose li{text-align:justify;text-justify:inter-word}
main .center-head p{text-align:center}

/* v15: folder refinements, quieter and more tailored */
.file .tab{background:#FCFAF5;border-top-width:1.5px;border-radius:5px 5px 0 0}
.file .label{letter-spacing:.012em;color:#2A2822}
.file .body{background:linear-gradient(#FCFAF5,#F8F4EA 70%);box-shadow:0 -4px 10px rgba(26,25,21,.03)}
.file .more{font-size:.72rem;letter-spacing:.22em}
.file .more::before{content:"";display:block;width:28px;height:1px;margin:0 auto .5rem;background:var(--gold-line)}
.file:hover .body,.file:focus-visible .body{box-shadow:0 10px 24px rgba(26,25,21,.08),0 -4px 10px rgba(26,25,21,.03)}
.file,.file .label,.file .tab,.file .body{transition:transform .38s cubic-bezier(.2,.7,.2,1),color .3s,border-color .3s,box-shadow .38s}
.file .tab{border-top:2px solid var(--gold-line)}
.file:hover .tab,.file:focus-visible .tab{border-top-color:var(--green)}

/* v16: uniform tabs sized to the longest label, even diagonal, refined folder detail */
.cabinet{--n:11;--tabw:min(19.5rem,44%)}
.file .tab,.file .more{left:calc((100% - var(--tabw)) * var(--i) / var(--n));width:var(--tabw)}
.file .label{white-space:nowrap}
/* a faint score line just under each folder's top edge, as on a real file folder */
.file .body::before{content:"";position:absolute;left:14px;right:14px;top:9px;height:1px;background:linear-gradient(90deg,transparent,rgba(168,134,47,.22) 12%,rgba(168,134,47,.22) 88%,transparent)}
.file .tab{box-shadow:inset 0 1px 0 rgba(255,255,255,.7)}
.file .body{border-radius:0 3px 6px 6px}
.file:hover .body::before,.file:focus-visible .body::before{background:linear-gradient(90deg,transparent,rgba(36,84,58,.28) 12%,rgba(36,84,58,.28) 88%,transparent)}
@media (max-width:760px){
  .cabinet{--tabw:64%;--tabh:52px;--step:64px;--fh:176px}
  .file .tab,.file .more{left:calc((100% - var(--tabw)) * var(--i) / var(--n))}
  .file .tab{padding:.5rem .9rem .4rem}
  .file .label{white-space:normal;line-height:1.15}
}
@media (max-width:760px){.file .tab{padding:.45rem .9rem}}

/* v17: practice areas as a scroll reel */
.reel-section{padding:0}
.reel-section .center-head{margin-bottom:1.2rem}
.reel-list{list-style:none;margin:0;padding:clamp(2.6rem,5vw,4rem) 0;display:flex;flex-direction:column;align-items:center}
.reel-item{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:96px;padding:.4rem 1rem;text-decoration:none;color:var(--ink);transform-origin:center}
.reel-item .label{font-family:var(--serif);font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:1.1;text-align:center;transition:color .2s}
.reel-item .more{font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--green-deep);margin-top:.45rem}
.reel-item .more::after{content:" \2192"}
.reel-item:hover .label,.reel-item:focus-visible .label{color:var(--green-deep)}
.reel-item:focus-visible{outline:none}
.reel-item:focus-visible .label{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
/* enhanced (JS) mode: pinned panel, rolling list inside a gold-ruled window */
.reel-on .reel-track{position:relative}
.reel-on .reel-sticky{position:sticky;display:flex;align-items:center;overflow:hidden}
.reel-on .reel-sticky > .wrap{width:100%}
.reel-on .reel-window{position:relative;height:min(470px,62vh);overflow:hidden;
  -webkit-mask-image:linear-gradient(transparent,#000 26%,#000 74%,transparent);mask-image:linear-gradient(transparent,#000 26%,#000 74%,transparent)}
.reel-on .reel-list{padding:0;position:absolute;left:0;right:0;top:0;will-change:transform}
.reel-on .reel-item{height:96px;min-height:0;will-change:transform,opacity}
.reel-on .reel-item .more{opacity:0;transition:opacity .2s}
.reel-on .reel-item.active .more{opacity:1}
.reel-frame{display:none}
.reel-on .reel-frame{display:block;position:absolute;left:50%;transform:translateX(-50%);width:min(560px,86%);top:calc(50% - 50px);height:100px;
  border-top:1px solid var(--gold-line);border-bottom:1px solid var(--gold-line);pointer-events:none}
@media (max-width:760px){
  .reel-on .reel-window{height:min(400px,56vh)}
  .reel-item .label{font-size:1.55rem}
}

/* family section mirrors foundations: one-line heading sets the text width, photo fills the rest */
.found-rev{grid-template-columns:auto minmax(260px,1fr)}
.found-rev .photo{object-position:center 22%}
@media (max-width:860px){.found-rev{grid-template-columns:1fr}.found-rev .photo{order:-1}}

/* v18: reel over the West Palm Beach skyline, compact */
.reel-section{background:#10261A;border-top:none}
.reel-sticky{background:linear-gradient(rgba(16,42,28,.78),rgba(11,30,20,.86)),url('/images/west-palm-beach-skyline.webp') center 45%/cover no-repeat;padding:clamp(2.6rem,5vw,3.6rem) 0}
.reel-on .reel-sticky{padding:0}
.reel-section .center-head h2{color:#F7F3EA}
.reel-section .center-head .kicker{color:var(--gold-line)}
.reel-item{color:#F2EDE0}
.reel-item .more{color:var(--gold-line)}
.reel-item:hover .label,.reel-item:focus-visible .label{color:var(--gold-line)}
.reel-on .reel-item{height:84px}
.reel-on .reel-window{height:min(360px,48vh)}
.reel-on .reel-frame{top:calc(50% - 44px);height:88px;border-color:rgba(203,178,114,.75)}
.reel-item .label{font-size:clamp(1.6rem,2.5vw,2.15rem)}
.reel-section .center-head{margin-bottom:.4rem}
@media (max-width:760px){.reel-on .reel-window{height:min(320px,46vh)}.reel-item .label{font-size:1.45rem}}

/* v19: reel snaps each topic into the gold frame; no beige gaps around the section */
section.band.reel-section{padding:0;background:#10261A;border-top:none}
html{scroll-snap-type:y proximity}
.reel-snap{position:absolute;left:0;width:1px;height:1px;scroll-snap-align:start;pointer-events:none}
.reel-on .reel-item{pointer-events:none}
.reel-on .reel-item.active{pointer-events:auto}
/* v20: stepping handled in script; native snapping removed so the page never pulls back at the ends */
html{scroll-snap-type:none}
.reel-snap{display:none}

/* v21: simplified footer (logo + contact), centered legal */
footer.site .cols{grid-template-columns:1fr auto;gap:3rem;align-items:start}
@media (max-width:860px){footer.site .cols{grid-template-columns:1fr auto}}
@media (max-width:620px){footer.site .cols{grid-template-columns:1fr;gap:2rem}}
footer.site .foot-logo{display:block;width:170px;height:auto}
footer.site .foot-brand p{margin-top:1.1rem;max-width:40ch;color:#C9C4B4}
footer.site .foot-contact{min-width:15rem}
footer.site .ask{display:block;font-style:italic;font-size:.8rem;color:#98937F;margin-top:.15rem}
footer.site .meet-label{margin-top:1.1rem;color:#C9C4B4}
footer.site ul.meet{list-style:disc;padding-left:1.15rem;margin-top:.45rem;gap:.3rem;color:#DDD8C9}
footer.site ul.meet li::marker{color:var(--gold-line)}
footer.site .legal{text-align:center}
footer.site .legal p{max-width:62rem;margin-left:auto;margin-right:auto}
/* v22: footer refinements */
footer.site .foot-brand p{text-align:justify}
footer.site .ask{font-size:.9rem;color:#DDD8C9;margin-top:.2rem;letter-spacing:.01em}
footer.site .foot-social{display:flex;align-items:center;gap:1.1rem;margin-top:1.2rem}
footer.site .foot-social a{display:inline-flex;color:#FFFFFF;line-height:0}
footer.site .foot-social a:hover,footer.site .foot-social a:focus-visible{color:var(--gold-line);text-decoration:none}
footer.site .foot-social svg{height:24px;width:auto;display:block}
footer.site .foot-brand p{max-width:27rem}
footer.site .ask{font-size:.86rem}
/* v23: brand column narrower, icons centered under the text */
footer.site .foot-brand{max-width:23rem}
footer.site .foot-brand p{max-width:none}
footer.site .foot-social{justify-content:center}
footer.site .foot-social{width:170px;justify-content:center}

/* v24: reel is a self-contained wheel; page scrolls normally outside it */
.reel-on .reel-sticky{position:static;height:auto;padding:clamp(2.6rem,5vw,3.6rem) 0;display:block;overflow:visible}
.reel-on .reel-track{height:auto}
.reel-on .reel-window{width:min(640px,100%);margin:0 auto;height:360px;outline:none;touch-action:pan-x}
.reel-on .reel-window:focus-visible .reel-frame{border-color:#E4D3A0}
.reel-on .reel-frame{width:min(560px,92%)}
.reel-on .reel-item,.reel-on .reel-item.active{pointer-events:auto;cursor:pointer}
.reel-section .center-head{margin-bottom:1rem}
@media (max-width:760px){.reel-on .reel-window{height:320px}}
/* footer: text block matches the logo */
footer.site .foot-logo{width:250px}
footer.site .foot-brand{max-width:250px}
footer.site .foot-social{width:250px}
footer.site .foot-logo,footer.site .foot-brand,footer.site .foot-social{width:230px;max-width:230px}

/* v25: family lineage tree */
.family{align-items:center}
.lineage{list-style:none;margin:0 auto;padding:0;display:flex;flex-direction:column;align-items:flex-start;width:max-content}
.lineage li{display:flex;align-items:center;gap:1.4rem}
.lineage img{width:132px;height:132px;border-radius:50%;object-fit:cover;border:2px solid var(--gold-line);box-shadow:0 0 0 5px var(--dim),0 0 0 6px rgba(168,134,47,.35);background:#ddd}
.lineage .gen{display:flex;flex-direction:column}
.lineage .who{font-family:var(--serif);font-size:1.35rem;color:var(--ink);line-height:1.15}
.lineage .ord{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-top:.3rem}
.lineage li.dots{width:132px;height:52px;justify-content:center;position:relative}
.lineage li.dots::before{content:"";width:6px;height:40px;background:radial-gradient(circle,var(--gold) 2.4px,transparent 2.9px) center top/6px 13px repeat-y}
@media (max-width:860px){.lineage{margin-top:1.5rem}}
/* footer: contact block vertically centered against the brand block */
footer.site .cols{align-items:center}
/* v26: larger lineage portraits */
.lineage img{width:168px;height:168px}
.lineage li.dots{width:168px;height:48px}
@media (max-width:560px){.lineage img{width:128px;height:128px}.lineage li.dots{width:128px}.lineage .who{font-size:1.2rem}}
.lineage .ord{line-height:1.6}
.family{grid-template-columns:auto minmax(260px,1fr)}
.family .lineage{margin:0}
@media (max-width:860px){.family{grid-template-columns:minmax(0,1fr)}.family .lineage{margin:0 auto}}
@media (max-width:560px){.lineage li{gap:1rem}.lineage .ord{font-size:.66rem;letter-spacing:.14em}}
.family{grid-template-columns:minmax(260px,1fr) auto}
.family .lineage{margin:0 auto}
@media (max-width:860px){.family{grid-template-columns:minmax(0,1fr)}}
footer.site{margin-top:0}

/* v27: equal-height Foundations and Practice Areas bands; About Victor */
@media (min-width:861px){
  section.band.found-sec{min-height:600px;display:flex;align-items:stretch}
  section.band.found-sec > .wrap{width:100%}
  .found-sec .found-copy{align-self:center}
  .reel-on .reel-sticky{min-height:600px;display:flex;align-items:center;padding-top:0;padding-bottom:0}
  .reel-on .reel-sticky > .wrap{width:100%}
}
.about-sec .found-rev .photo{object-position:28% 30%}
main p,footer.site p{text-wrap:pretty}
/* v28: Foundations photo matches its text height, like About Victor */
@media (min-width:861px){
  section.band.found-sec{align-items:center}
  section.band.found-sec > .wrap.found{align-items:stretch}
  .found-sec .found-copy{align-self:auto}
}
/* v29: square photos in the Foundations and About Victor rows */
@media (min-width:861px){
  .found img.photo{min-height:0;align-self:start;object-fit:cover}
  .found:not(.found-rev) img.photo{justify-self:start}
  .found-rev img.photo{justify-self:end}
  .found-sec .found-copy,.about-sec .found-copy{align-self:start}
}
.found-sec .found img.photo{object-position:50% 60%}
/* v30: About Victor two-line heading; copy fills the row, photo squares to it */
h2.two-line .l{display:block;white-space:nowrap}
@media (min-width:861px){
  .found-rev.flex-copy{grid-template-columns:minmax(0,1fr) auto}
  .flex-copy .found-copy{width:auto}
  .flex-copy .found-copy h2{white-space:normal}
}
@media (max-width:860px){h2.two-line .l{display:inline;white-space:normal}}
/* v31: Foundations matches About Victor (square photo sized to text); centered team section */
@media (min-width:861px){
  .found.flex-copy:not(.found-rev){grid-template-columns:auto minmax(0,1fr)}
  .found.flex-copy:not(.found-rev) img.photo{justify-self:start}
}
.team-sec .section-head{margin-left:auto;margin-right:auto;text-align:center}
.team-sec .section-head p:not(.kicker):not(.after-grid){text-align:justify;text-align-last:center}
.team-sec .section-head .after-grid{text-align:center}
.lineage .rel{font-size:.86rem;font-style:italic;color:var(--body);margin-top:.1rem}

/* v32: subtle load and scroll reveals (skipped entirely for reduced-motion users) */
.anim [data-r]{opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.65,.25,1)}
.anim [data-r="rise"]{transform:translateY(46px);transition:opacity 1.2s ease,transform 1.4s cubic-bezier(.2,.65,.25,1)}
.anim [data-r="write"]{transform:none;clip-path:inset(0 100% 0 0);transition:clip-path 2s cubic-bezier(.45,.05,.35,1) 1.1s,opacity .4s ease 1.1s}
.anim [data-r].in{opacity:1;transform:none}
.anim [data-r="write"].in{clip-path:inset(0 0 0 0);opacity:.95}
.hero2 .signature{opacity:.95}

/* footer logo slightly smaller; icons stay centered under it */
footer.site .foot-logo{width:180px;max-width:180px}
footer.site .foot-social{width:180px;max-width:180px}

/* v33: About page */
.about-hero .hero-sub{font-family:var(--serif);font-size:1.25rem;color:var(--gold-line);margin-bottom:.4rem;text-align:left !important}
.creds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.2rem;margin-top:2rem}
.creds h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:400;padding-bottom:.6rem;margin-bottom:.9rem;border-bottom:1px solid var(--gold-line)}
.creds p{color:var(--ink);line-height:1.45}
.creds p+p{margin-top:.9rem}
.creds p span{color:var(--body);font-size:.92em}
@media (max-width:980px){.creds{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.creds{grid-template-columns:1fr}}
.legacy-teaser{margin-left:auto;margin-right:auto;text-align:center}
.legacy-teaser p:not(.kicker):not(.after-grid){text-align:justify;text-align-last:center}
.about-hero .copy{width:auto}
.legacy-teaser .after-grid{text-align:center}

/* v34: simple bio-style About page */
.bio-head{padding:clamp(1.6rem,3.5vw,2.6rem) 0 clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.bio-head-grid{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:center}
.bio-photo{width:100%;height:auto;display:block;border:1px solid var(--gold-line)}
.bio-id h1{margin:.2rem 0 .5rem}
.bio-title{font-family:var(--serif);font-size:1.25rem;color:var(--green-deep)}
.bio-firm{margin-top:.8rem;color:var(--body)}
.bio-contact{list-style:none;margin:1.1rem 0 0;padding:1rem 0 0;border-top:1px solid var(--line);display:grid;gap:.35rem}
.bio-contact a{color:var(--ink)}
.bio-contact .ask{font-style:italic;color:var(--body);margin-left:.4rem}
.bio-contact .sep{color:var(--gold-line);margin:0 .4rem}
.bio-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(2rem,5vw,4.2rem);align-items:start}
.bio-main h2{font-size:clamp(1.5rem,2.4vw,1.85rem);margin:2.2rem 0 .8rem}
.bio-main h2:first-child{margin-top:0}
.bio-main p{text-align:justify}
.bio-main p+p{margin-top:.85rem}
.bio-main a.inline{color:var(--green-deep)}
.bio-figs{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.4rem}
.bio-figs figure{margin:0}
.bio-figs img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border:1px solid var(--line)}
.bio-figs figcaption{font-size:.85rem;font-style:italic;color:var(--body);margin-top:.5rem;text-align:center}
.bio-side{border-left:1px solid var(--gold-line);padding-left:1.8rem;display:grid;gap:1.8rem}
.bio-side h3{font-family:var(--sans);font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:400;margin-bottom:.6rem}
.bio-side ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.bio-side li{line-height:1.45;color:var(--ink)}
.bio-side li span{color:var(--body);font-size:.92em}
@media (max-width:860px){
  .bio-head-grid{grid-template-columns:1fr}
  .bio-photo{max-width:300px}
  .bio-body{grid-template-columns:1fr}
  .bio-side{border-left:none;border-top:1px solid var(--gold-line);padding-left:0;padding-top:1.8rem}
}
@media (max-width:480px){.bio-figs{grid-template-columns:1fr}}

/* v35: About header over the courthouse photo with green tint */
.bio-head{background:linear-gradient(rgba(16,42,28,.80),rgba(11,30,20,.88)),url('/images/west-palm-beach-courthouse.webp') center 55%/cover no-repeat;border-bottom:3px solid var(--gold-line);padding:clamp(2.6rem,5vw,4rem) 0}
.bio-head .kicker{color:var(--gold-line)}
.bio-head h1{color:#F7F3EA}
.bio-head .bio-title{color:var(--gold-line)}
.bio-head .bio-firm{color:#DDD8C9}
.bio-head .bio-contact{border-top-color:rgba(203,178,114,.45)}
.bio-head .bio-contact a{color:#F2EDE0}
.bio-head .bio-contact a:hover{color:var(--gold-line)}
.bio-head .bio-contact .ask{color:#C9C4B4}
.bio-photo{box-shadow:0 18px 40px rgba(0,0,0,.35)}
.crumbs{display:none}

/* v36: dashed lists in the About sidebar; footer brand block one width */
.bio-side ul.dash li{position:relative;padding-left:1.1rem}
.bio-side ul.dash li::before{content:"";position:absolute;left:0;top:.72em;width:.55rem;height:1px;background:var(--gold)}
footer.site .foot-brand,footer.site .foot-logo,footer.site .foot-social{width:180px;max-width:180px}
footer.site .foot-brand p{max-width:none;hyphens:auto;-webkit-hyphens:auto}
footer.site .foot-brand p{hyphens:manual;-webkit-hyphens:manual}
footer.site .foot-brand,footer.site .foot-logo,footer.site .foot-social{width:200px;max-width:200px}

/* v37: Services page (wheel in a tinted header, text panels below) */
.svc-head{background:linear-gradient(rgba(16,42,28,.82),rgba(11,30,20,.9)),url('/images/rocket-launch.webp') center 40%/cover no-repeat;padding:clamp(2.2rem,4vw,3rem) 0 clamp(1.8rem,3.4vw,2.6rem);border-bottom:3px solid var(--gold-line)}
.svc-head .center-head{margin-bottom:.4rem}
.svc-head .center-head .kicker{color:var(--gold-line)}
.svc-head h1{color:#F7F3EA;margin:.2rem 0 0}
.svc-head.reel-on .reel-window{height:300px}
@media (max-width:760px){.svc-head.reel-on .reel-window{height:276px}}
.svc-body{padding-top:clamp(2.2rem,4.4vw,3.2rem)}
.svc-top{text-align:center;max-width:46rem;margin:0 auto 1.4rem}
.svc-top h2{margin:.2rem 0 0}
.svc-sub{font-family:var(--serif);font-size:1.2rem;color:var(--green-deep);margin-top:.5rem}
.svc-copy{max-width:46rem;margin:0 auto}
main .svc-copy p{text-align:justify}
.svc-copy p+p{margin-top:.9rem}
.svc-copy a.inline{color:var(--green-deep)}
main .svc-copy p.svc-hint{font-style:italic;color:var(--body);text-align:center;font-size:.95rem}
.svc-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 2.6rem;margin-top:2.4rem}
.svc-group h3{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;font-weight:400;padding-bottom:.6rem;margin-bottom:.8rem;border-bottom:1px solid var(--gold-line)}
.svc-group h3 a{color:var(--gold);text-decoration:none}
.svc-group h3 a:hover,.svc-group h3 a:focus-visible{color:var(--green-deep)}
ul.dash{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
ul.dash li{position:relative;padding-left:1.1rem;line-height:1.45;color:var(--ink)}
ul.dash li::before{content:"";position:absolute;left:0;top:.72em;width:.55rem;height:1px;background:var(--gold)}
main .svc-fields{max-width:46rem;margin:2.6rem auto 0;text-align:center;color:var(--body)}
.svc-fields span{display:block;font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem}
@media (max-width:980px){.svc-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc-groups{grid-template-columns:1fr}}
.svc-panels:not(.svc-js) .svc-panel+.svc-panel{margin-top:3.4rem;padding-top:3rem;border-top:1px solid var(--line)}
.svc-js .svc-panel{display:none}
.svc-js .svc-panel.on{display:block;animation:svcIn .55s ease both}
@keyframes svcIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.svc-js .svc-panel.on{animation:none}}
/* v38: larger, centered category headings on All Services */
.svc-group h3{font-size:.98rem;letter-spacing:.16em;text-align:center}
.svc-group{display:grid;grid-template-rows:subgrid;grid-row:span 2;row-gap:0}
.svc-group h3{display:flex;align-items:flex-end;justify-content:center;margin-bottom:.8rem}
.svc-group ul.dash{align-content:start}
/* v39: larger category headings; footnote under a list item */
.svc-group h3{font-size:1.12rem;letter-spacing:.14em}
ul.dash li .note{display:block;font-size:.8rem;font-style:italic;color:var(--body);margin-top:.15rem}
.svc-group h3{font-size:1.3rem;letter-spacing:.12em}

/* v40: item headings inside each service write-up */
.svc-copy h3.svc-item{font-family:var(--serif);font-weight:400;font-size:1.4rem;line-height:1.25;color:var(--ink);margin:2rem 0 .55rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.svc-copy > p:first-child{margin-bottom:.4rem}
.svc-copy h3.svc-item + p{margin-top:0}
.svc-copy > p.svc-more{margin-top:2rem;padding-top:1.2rem;border-top:1px solid var(--gold-line);font-style:italic}
main .svc-copy > p.svc-more{text-align:left}

/* v41: headers-only dash list inside a service write-up (IP Agreements & Licensing) */
.svc-copy ul.svc-list{margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--line);gap:.6rem}
/* v42: lead-in line above a headers-only list; the divider moves above the lead-in */
.svc-copy p.svc-lead{margin-top:2rem;padding-top:1.3rem;border-top:1px solid var(--line)}
.svc-copy p.svc-lead + ul.svc-list{margin-top:.8rem;padding-top:0;border-top:0}

/* v43: Contact page (header like About and Services; body reuses the About grid and sidebar) */
.ct-head{background:linear-gradient(rgba(16,42,28,.80),rgba(11,30,20,.88)),url('/images/lady-justice.webp') center 42%/cover no-repeat;border-bottom:3px solid var(--gold-line);padding:clamp(2.6rem,5vw,4rem) 0}
.ct-head .center-head{margin-bottom:0}
.ct-head .kicker{color:var(--gold-line)}
.ct-head h1{color:#F7F3EA;margin:.2rem 0 0}
.ct-head .bio-contact{max-width:26rem;margin:1.2rem auto 0;border-top-color:rgba(203,178,114,.45);justify-items:center}
.ct-head .bio-contact a{color:#F2EDE0}
.ct-head .bio-contact a:hover{color:var(--gold-line)}
.ct-head .bio-contact .ask{color:#C9C4B4}
.ct-main [hidden]{display:none!important}
.ct-form{display:grid;gap:1.15rem;margin-top:.2rem}
.ct-field label{display:block;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:.4rem}
.ct-field .opt{letter-spacing:.04em;text-transform:none;font-style:italic;color:var(--mut)}
.ct-field input,.ct-field textarea{display:block;width:100%;font:inherit;font-size:1.05rem;line-height:1.45;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:0;padding:.72rem .85rem;-webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s}
.ct-field textarea{min-height:11rem;resize:vertical}
.ct-field input:focus,.ct-field textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(203,178,114,.35)}
.ct-two{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}
.ct-hp{position:absolute!important;left:-10000px;width:1px;height:1px;overflow:hidden}
.ct-ack{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;font-size:.98rem;line-height:1.5;color:var(--body);cursor:pointer}
.ct-ack input{width:1.05rem;height:1.05rem;margin:.22rem 0 0;accent-color:var(--green-deep)}
.ct-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.4rem}
.ct-send{font:inherit;font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;color:#F7F3EA;background:var(--green-deep);border:1px solid var(--green-deep);border-radius:0;padding:.9rem 2.2rem;cursor:pointer;transition:background .2s,color .2s}
.ct-send:hover,.ct-send:focus-visible{background:transparent;color:var(--green-deep)}
.ct-send:focus-visible{outline:2px solid var(--gold-line);outline-offset:3px}
.ct-send[disabled]{opacity:.65;cursor:default}
.ct-status{margin:0;font-size:.98rem;color:var(--body)}
.ct-status:empty{display:none}
.ct-status.err{color:#8A2E1F;flex-basis:100%}
.ct-status a{color:inherit}
.ct-done{border-top:1px solid var(--gold-line);padding-top:1.2rem;outline:none}
.ct-done h3{font-size:1.5rem;margin:0 0 .4rem}
.ct-turnstile:empty{display:none}
.bio-side a{color:var(--ink)}
@media (max-width:640px){.ct-two{grid-template-columns:1fr}}
main .ct-status,main .ct-done p{text-align:left}

/* v44: Contact form, meeting preference and message hint */
.ct-meet{border:0;margin:0;padding:0;min-width:0}
.ct-meet legend{padding:0;font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:.6rem}
.ct-opts{display:flex;flex-wrap:wrap;gap:.55rem 1.8rem}
.ct-opt{display:inline-flex;align-items:center;gap:.55rem;cursor:pointer;font-size:1.05rem;color:var(--ink)}
.ct-opt input{width:1.05rem;height:1.05rem;margin:0;accent-color:var(--green-deep)}
.ct-loc{margin-top:1.05rem;animation:ctIn .3s ease both}
@keyframes ctIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.ct-loc{animation:none}}
.ct-field select{display:block;width:100%;max-width:22rem;font:inherit;font-size:1.05rem;line-height:1.45;color:var(--ink);background:var(--card) 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 1.5l5 5 5-5' fill='none' stroke='%23A8862F' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right .9rem center;border:1px solid var(--line);border-radius:0;padding:.72rem 2.4rem .72rem .85rem;-webkit-appearance:none;appearance:none;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.ct-field select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(203,178,114,.35)}
.ct-hint{margin:-.15rem 0 .5rem;font-size:.95rem;font-style:italic;color:var(--mut)}
main .ct-hint{text-align:left}
