:root{
  --paper:#F6F5F1;--ink:#1C2430;--blue:#2A4A7A;--blue-deep:#1E3557;--stone:#5F6B78;--line:#D9D6CE;--ochre:#B8862B;--white:#FFFFFF;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;--sans:"Libre Franklin","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:var(--blue)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.15;margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2.2rem,5.2vw,3.9rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.3rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em;max-width:62ch}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
/* header */
header{border-bottom:1px solid var(--line);background:var(--paper)}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.brand{font-family:var(--serif);font-size:1.25rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.brand small{display:block;font-family:var(--sans);font-size:.72rem;color:var(--stone);letter-spacing:.02em}
.links{display:flex;gap:26px;align-items:center}
.links a{color:var(--ink);text-decoration:none;font-size:.95rem}
.links a:hover{color:var(--blue)}
.links a.lang{color:var(--stone);border:1px solid var(--line);padding:4px 10px;border-radius:3px;font-size:.8rem}
.menu-btn{display:none;background:none;border:1px solid var(--line);padding:8px 12px;font:inherit;border-radius:3px}
@media(max-width:760px){
  .links{display:none;position:absolute;left:0;right:0;top:72px;background:var(--paper);flex-direction:column;align-items:flex-start;padding:16px 24px 24px;border-bottom:1px solid var(--line);gap:16px;z-index:10}
  .links.open{display:flex}
  .menu-btn{display:block}
  header{position:relative}
}
/* buttons */
.btn{display:inline-block;background:var(--blue);color:#fff;text-decoration:none;padding:14px 24px;border-radius:3px;font-weight:600;font-size:1rem}
.btn:hover{background:var(--blue-deep)}
.btn.ghost{background:transparent;color:var(--blue);border:1px solid var(--blue)}
.btn.ghost:hover{background:#fff}
/* hero */
.hero{padding:88px 0 64px}
.hero h1{max-width:18ch}
.hero .lead{font-size:1.25rem;color:var(--stone);max-width:52ch;margin:18px 0 32px}
.hero .fit{margin-top:56px;padding-top:24px;border-top:1px solid var(--line);color:var(--stone);font-size:.95rem;max-width:60ch}
/* price strip */
.strip{background:var(--ink);color:#fff;padding:36px 0}
.strip .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.strip div,.strip .wrap a{border-left:1px solid rgba(255,255,255,.25);padding-left:20px}
.strip b{font-family:var(--serif);font-size:1.9rem;font-weight:500;display:block;line-height:1.1}
.strip span{color:rgba(255,255,255,.75);font-size:.95rem}
@media(max-width:760px){.strip .wrap{grid-template-columns:1fr;gap:20px}}
/* sections */
section{padding:72px 0}
section.alt{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.two{display:grid;grid-template-columns:1fr 1.4fr;gap:56px;align-items:start}
@media(max-width:760px){.two{grid-template-columns:1fr;gap:24px}}
.checks{list-style:none;padding:0;margin:0;max-width:60ch}
.checks li{padding:10px 0 10px 28px;position:relative;border-bottom:1px solid var(--line)}
.checks li::before{content:"";position:absolute;left:0;top:19px;width:14px;height:14px;border-radius:50%;background:var(--ochre)}
/* packages */
.pkg{display:grid;grid-template-columns:1fr 2fr 1fr;gap:32px;padding:32px 0;border-top:1px solid var(--line)}
.pkg:last-child{border-bottom:1px solid var(--line)}
.pkg h3{margin:0 0 6px}
.pkg .price{font-family:var(--serif);font-size:1.6rem;font-weight:500}
.pkg .price small{display:block;font-family:var(--sans);font-size:.8rem;color:var(--stone)}
.pkg ul{margin:.6em 0 0;padding-left:18px;color:var(--stone)}
.pkg .who{color:var(--stone);font-size:.95rem}
@media(max-width:760px){.pkg{grid-template-columns:1fr;gap:12px}}
.note{color:var(--stone);font-size:.95rem;max-width:62ch}
/* compare */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--line);max-width:900px}
.compare div{padding:28px}
.compare div+div{border-left:1px solid var(--line)}
.compare h3{font-size:1.1rem}
.compare ul{padding-left:18px;margin:0;color:var(--stone)}
@media(max-width:760px){.compare{grid-template-columns:1fr}.compare div+div{border-left:0;border-top:1px solid var(--line)}}
/* steps (a real sequence) */
.steps{counter-reset:s;list-style:none;padding:0;margin:0;max-width:60ch}
.steps li{counter-increment:s;padding:16px 0 16px 56px;position:relative;border-bottom:1px solid var(--line)}
.steps li::before{content:counter(s);position:absolute;left:0;top:14px;width:36px;height:36px;border:1px solid var(--ink);border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-size:1.1rem}
.steps b{display:block}
/* experience logos as text */
.exp{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 32px;max-width:900px;padding:0;list-style:none;margin:20px 0 0;color:var(--stone)}
.exp li{border-top:1px solid var(--line);padding-top:8px;font-size:.95rem}
.exp li b{display:block;color:var(--ink);font-weight:500}
@media(max-width:760px){.exp{grid-template-columns:1fr}}
/* team */
.person{display:grid;grid-template-columns:200px 1fr;gap:32px;margin-bottom:48px;align-items:start}
.person img{width:200px;height:200px;object-fit:cover;border-radius:3px;background:var(--line)}
.person .role{color:var(--stone);margin-bottom:8px}
@media(max-width:760px){.person{grid-template-columns:1fr}}
/* cta band */
.band{background:var(--blue);color:#fff;padding:64px 0}
.band h2{max-width:22ch}
.band p{color:rgba(255,255,255,.85)}
.band .btn{background:#fff;color:var(--blue)}
.band .btn:hover{background:var(--paper)}
/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.contact-grid dl{margin:0}
.contact-grid dt{color:var(--stone);font-size:.9rem;margin-top:18px}
.contact-grid dd{margin:0;font-size:1.05rem}
/* footer */
footer{padding:40px 0;color:var(--stone);font-size:.9rem;border-top:1px solid var(--line)}
footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
footer a{color:var(--stone)}
:focus-visible{outline:2px solid var(--ochre);outline-offset:3px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---- polish pass ---- */
header{position:sticky;top:0;z-index:20;transition:box-shadow .3s,background .3s}
header.scrolled{background:rgba(246,245,241,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line)}
.brand img{height:40px;width:auto;display:block}
.brand{display:flex;align-items:center;gap:12px}
/* hero reveal - one orchestrated sequence */
.hero h1,.hero .lead,.hero .btn,.hero .fit{opacity:0;transform:translateY(14px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero .lead{animation-delay:.15s}.hero .btn{animation-delay:.3s}.hero .fit{animation-delay:.45s}
@keyframes rise{to{opacity:1;transform:none}}
/* section reveal on scroll */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.checks li,.pkg,.steps li,.exp li{transition-delay:calc(var(--i,0)*60ms)}
/* hero backdrop: faint azulejo grid in the corner */
.hero{position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:420px;height:420px;pointer-events:none;opacity:.07;
  background-image:linear-gradient(var(--blue) 1px,transparent 1px),linear-gradient(90deg,var(--blue) 1px,transparent 1px);background-size:42px 42px;
  -webkit-mask-image:radial-gradient(circle at 70% 30%,#000 0,transparent 70%);mask-image:radial-gradient(circle at 70% 30%,#000 0,transparent 70%)}
@media(max-width:760px){.hero::after{width:260px;height:260px;right:-80px}}
/* buttons */
.btn{transition:background .25s,transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(42,74,122,.22)}
.band .btn:hover{box-shadow:0 6px 18px rgba(0,0,0,.18)}
/* price strip: thin ochre rule for warmth */
.strip{border-top:3px solid var(--ochre)}
/* team photos: soft frame */
.person img{box-shadow:0 12px 30px rgba(28,36,48,.12)}
/* type refinement */
h1{letter-spacing:-.02em}
.lead{letter-spacing:-.005em}
@media(prefers-reduced-motion:reduce){.hero h1,.hero .lead,.hero .btn,.hero .fit{animation:none;opacity:1;transform:none}.reveal{opacity:1;transform:none;transition:none}}
.reveal .checks li,.reveal .steps li,.reveal .exp li,.reveal .pkg{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease;transition-delay:calc(var(--i,0)*70ms)}
.reveal.in .checks li,.reveal.in .steps li,.reveal.in .exp li,.reveal.in .pkg{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal .checks li,.reveal .steps li,.reveal .exp li,.reveal .pkg{opacity:1;transform:none;transition:none}}
/* logo lockup */
.brand{flex-direction:column;align-items:flex-start;gap:2px}
.brand img{height:46px;width:auto}
.brand small{padding-left:2px}
@media(max-width:760px){.brand img{height:38px}.brand small{display:none}}
footer .wrap{align-items:center}
/* photos (all optional - hidden if the file is missing) */
.hero-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}
.hero.has-photo .hero-grid{grid-template-columns:1.1fr 1fr}
.hero-photo{margin:0;display:none}
.hero.has-photo .hero-photo{display:block;opacity:0;animation:rise 1s .2s cubic-bezier(.2,.7,.2,1) forwards}
.hero-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:3px;box-shadow:0 20px 50px rgba(28,36,48,.16)}
@media(max-width:760px){.hero.has-photo .hero-grid{grid-template-columns:1fr}.hero-photo img{aspect-ratio:4/3}}
.detail{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:3px;margin-top:24px}
.team-photo{width:100%;max-height:480px;object-fit:cover;border-radius:3px;margin:8px 0 40px}
.band{background-color:var(--blue);background-size:cover;background-position:center;position:relative}
.band[style*="band.jpg"]::before{content:"";position:absolute;inset:0;background:rgba(30,53,87,.82)}
.band .wrap{position:relative}

/* ===== v4: navy hero, floating offer card, header lockup ===== */
header{background:#fff}
header.scrolled{background:rgba(255,255,255,.92)}
.nav{height:84px}
.brand{flex-direction:row;align-items:center;gap:16px}
.brand img{height:44px}
.brand small{border-left:1px solid var(--line);padding:2px 0 2px 16px;max-width:170px;line-height:1.35;font-size:.74rem}
@media(max-width:900px){.brand small{display:none}}
@media(max-width:760px){.nav{height:72px}.brand img{height:36px}}

.hero{background:var(--ink) url(hero.jpg) center/cover no-repeat;color:#fff;padding:104px 0 128px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(28,36,48,.94) 40%,rgba(28,36,48,.72))}
.hero::after{content:"";position:absolute;top:auto;left:auto;right:-4%;bottom:-6%;width:min(60vw,720px);height:min(60vw,720px);pointer-events:none;opacity:.22;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><g fill='none' stroke='%23B8862B' stroke-width='.6'><path d='M5 60A45 45 0 0 1 95 60'/><path d='M17 60A33 33 0 0 1 83 60'/><path d='M29 60A21 21 0 0 1 71 60'/><path d='M50 60V15M50 60L18 28M50 60L82 28M50 60L8 45M50 60L92 45'/><path d='M2 63H98'/></g></svg>") no-repeat center/contain;
  -webkit-mask-image:none;mask-image:none}
.hero .wrap{position:relative;z-index:1}
.hero h1{color:#fff;max-width:17ch}
.hero .lead{color:rgba(255,255,255,.78)}
.hero .btn{background:var(--ochre);color:var(--ink)}
.hero .btn:hover{background:#cf9a37;box-shadow:0 8px 22px rgba(0,0,0,.3)}
.hero .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.hero .btn.ghost:hover{background:rgba(255,255,255,.08)}
.hero .fit{border-top-color:rgba(255,255,255,.18);color:rgba(255,255,255,.62)}
.hero .note{color:rgba(255,255,255,.62)}
.hero a:not(.btn){color:#fff}
.hero dt{color:rgba(255,255,255,.6)}
.hero dd{color:#fff}
@media(max-width:760px){.hero{padding:64px 0 96px}.hero::after{right:-30%;bottom:-10%;width:90vw;height:90vw}}

/* offer card overlapping the hero */
.strip{background:transparent;color:var(--ink);padding:0;margin:-64px 24px 0;position:relative;z-index:2;border-top:0}
.strip .wrap{background:#fff;border:1px solid var(--line);border-top:3px solid var(--ochre);border-radius:4px;padding:32px 36px;box-shadow:0 24px 60px rgba(28,36,48,.14)}
.strip div,.strip .wrap a{border-left-color:var(--line)}
.strip b{color:var(--ink)}
.strip span{color:var(--stone)}
@media(max-width:760px){.strip{margin:-48px 12px 0}.strip .wrap{padding:24px}.strip div{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}.strip div:first-child{border-top:0;padding-top:0}}
/* secondary pages: tighter hero */
.hero.compact{padding-bottom:88px}
.hero-photo,.hero-grid{display:none}

/* ===== v5: full dark theme ===== */
:root{--paper:#161C26;--ink:#F3EFE6;--stone:#A9B0BA;--line:rgba(255,255,255,.12);--blue:#8FB3E8;--blue-deep:#2A4A7A;--panel:#1E2632;--white:#F3EFE6}
body{background:var(--paper);color:var(--ink)}
a{color:#D8B76A}
header,header.scrolled{background:rgba(22,28,38,.9);border-bottom-color:var(--line)}
.links a{color:var(--ink)}.links a:hover{color:#D8B76A}
.links a.lang{color:var(--stone);border-color:var(--line)}
.menu-btn{color:var(--ink);border-color:var(--line)}
@media(max-width:760px){.links{background:#161C26;border-bottom-color:var(--line)}}
.hero{background-color:#161C26}
.hero::before{background:linear-gradient(100deg,rgba(22,28,38,.94) 40%,rgba(22,28,38,.72))}
.hero .btn:hover{background:#cf9a37}
section.alt{background:var(--panel)}
.strip .wrap{background:var(--panel);border-color:var(--line)}
.strip b{color:var(--ink)}
.btn{background:var(--ochre);color:#161C26}.btn:hover{background:#cf9a37;color:#161C26;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid rgba(255,255,255,.45)}.btn.ghost:hover{background:rgba(255,255,255,.06)}
.compare{border-color:var(--line);background:var(--panel)}
.compare div+div{border-left-color:var(--line);background:#232E3D}
@media(max-width:760px){.compare div+div{border-top-color:var(--line)}}
.compare ul,.pkg ul,.pkg .who,.note,.exp,.person .role,.contact-grid dt{color:var(--stone)}
.exp li b,.contact-grid dd{color:var(--ink)}
.steps li::before{border-color:#D8B76A;color:#D8B76A}
.checks li::before{background:var(--ochre)}
.pkg .price,.strip b,h1,h2,h3{color:var(--ink)}
.person img{background:var(--panel);box-shadow:0 12px 30px rgba(0,0,0,.4)}
.band{background-color:#2A4A7A}
.band[style*="band.jpg"]::before{background:rgba(30,53,87,.84)}
.band .btn{background:var(--ochre);color:#161C26}.band .btn:hover{background:#cf9a37}
footer{border-top-color:var(--line);color:var(--stone)}footer a{color:var(--stone)}
:focus-visible{outline-color:#D8B76A}
::selection{background:#B8862B;color:#161C26}
/* v6: editorial contrast block replaces the boxed compare */
.compare{display:none}
.vs{max-width:980px}
.vs-head{display:grid;grid-template-columns:1fr 1.25fr;gap:40px;padding:0 0 14px;color:var(--stone);font-size:.9rem;border-bottom:1px solid var(--line)}
.vs-head div:last-child{color:#D8B76A}
.vs-row{display:grid;grid-template-columns:1fr 1.25fr;gap:40px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline}
.vs-them{color:var(--stone);font-size:1rem}
.vs-us{font-family:var(--serif);font-size:1.45rem;line-height:1.25;color:var(--ink);position:relative;padding-left:26px}
.vs-us::before{content:"";position:absolute;left:0;top:.42em;width:12px;height:2px;background:var(--ochre)}
@media(max-width:760px){.vs-head{display:none}.vs-row{grid-template-columns:1fr;gap:6px;padding:20px 0}.vs-them{font-size:.9rem}.vs-them::before{content:"Large firm: ";color:var(--stone)}.vs-us{font-size:1.25rem}}
/* v8 */
.kicker{color:#D8B76A;font-size:.95rem;letter-spacing:.04em;margin:0 0 18px;opacity:0;animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.hero h1{max-width:20ch}
.who-close{margin-top:28px;font-family:var(--serif);font-size:1.25rem;line-height:1.4;color:var(--ink);max-width:48ch}
.vs-tag{display:block;font-family:var(--sans);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);margin-bottom:8px}
.vs-us .vs-tag{color:#D8B76A}
.vs-head{display:none}
.vs-row{align-items:start}
.vs-them{padding-top:4px}
.vs-us::before{top:2.15em}
@media(max-width:760px){.vs-them::before{content:none}.vs-us::before{top:2.05em}}
/* v9: about page team layout */
.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-top:8px}
@media(max-width:760px){.team-grid{grid-template-columns:1fr;gap:48px}}
.person{display:block;margin:0;padding-top:24px;border-top:1px solid var(--ochre)}
.person img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:3px;margin:0 0 24px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
.person .role{font-family:var(--sans);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#D8B76A;margin:0 0 10px}
.person h3{font-size:1.9rem;margin:0 0 14px}
.person p{color:var(--stone);max-width:none;line-height:1.7}
.team-photo{margin:8px 0 48px}
/* v10: comparison on mobile */
@media(max-width:760px){
  .vs-row{grid-template-columns:1fr;gap:10px;padding:22px 0}
  .vs-tag{display:none}
  .vs-them{font-size:.92rem;color:var(--stone);padding:0}
  .vs-them::before{content:"A large firm ";color:#7C8592;font-style:italic}
  .vs-us{font-size:1.2rem;padding-left:16px;border-left:2px solid var(--ochre)}
  .vs-us::before{content:none}
}
/* v11: footer with legal block */
footer{padding:56px 0 36px}
footer .wrap{display:block}
.foot-top{display:flex;justify-content:space-between;gap:32px;flex-wrap:wrap;align-items:flex-start;padding-bottom:28px;border-bottom:1px solid var(--line)}
.foot-top img{display:block;margin-bottom:12px}
.foot-top p{margin:0;color:var(--stone)}
.foot-contact{text-align:right;line-height:1.9}
.foot-contact a{color:var(--ink);text-decoration:none}
.foot-contact a:hover{color:#D8B76A}
.foot-legal{padding-top:22px;font-size:.8rem;color:#7C8592;line-height:1.7}
.foot-legal p{max-width:none;margin:0 0 6px}
.foot-legal a{color:#9AA3AE}
@media(max-width:760px){.foot-contact{text-align:left}}
.foot-label{display:block;font-family:var(--sans);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:#D8B76A;margin-bottom:6px}

/* price strip links */
.strip .wrap a{display:block;color:inherit;text-decoration:none}
.strip .wrap a:hover b{color:var(--gold,#C9A030)}
.strip .wrap em{display:block;font-style:normal;font-size:.85rem;margin-top:10px;color:var(--gold,#C9A030)}
.pkg{scroll-margin-top:96px}
