:root { --ink:#422e2a; --ink-deep:#a65a42; --mist:#f3e7e2; --paper:#fcfaf8; --sand:#ead9d0; --line:rgba(89,55,47,.18); --accent:#875154; --white:#fffdfb; --footer:#593a32; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; font-size:16px; line-height:1.55; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
[hidden] { display:none!important; }
button { color:inherit; font:inherit; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
:where(a,button,summary,input):focus-visible { outline:3px solid #236d52; outline-offset:4px; }
.skip-link { position:fixed; left:1rem; top:-4rem; z-index:100; background:var(--white); padding:.75rem 1rem; border-radius:.25rem; }
.skip-link:focus { top:1rem; }
.site-header { min-height:5.7rem; display:flex; align-items:center; gap:2rem; padding:1rem clamp(1.4rem,4vw,5rem); border-bottom:1px solid var(--line); background:rgba(249,247,242,.94); backdrop-filter:blur(12px); position:sticky; top:0; z-index:20; }
.brand { display:flex; flex-direction:column; line-height:1.03; min-width:13.5rem; }
.brand span { font:500 1.27rem/1 "Newsreader",serif; letter-spacing:-.04em; }
.brand em { font-style:italic; }
.brand small { margin-top:.35rem; font-size:.62rem; letter-spacing:.09em; text-transform:uppercase; }
nav { margin-left:auto; display:flex; gap:1.5rem; align-items:center; font-size:.84rem; font-weight:600; }
nav a:hover,.text-link:hover { color:var(--accent); }
.header-cta,.button { display:inline-flex; align-items:center; justify-content:center; gap:.8rem; font-size:.78rem; font-weight:700; letter-spacing:.045em; text-transform:uppercase; border-radius:999px; transition:transform .2s ease, background .2s ease; }
.header-cta { padding:.8rem 1.15rem; color:var(--white); background:var(--ink); white-space:nowrap; }
.header-cta:hover,.button:hover { transform:translateY(-2px); }
.menu-button { display:none; }
.hero { max-width:1440px; margin:auto; min-height:calc(100svh - 5.7rem); display:grid; grid-template-columns:minmax(0,1.03fr) minmax(20rem,.97fr); align-items:stretch; }
.hero-copy { padding:clamp(5rem,11vw,10rem) clamp(1.4rem,8vw,8rem); display:flex; flex-direction:column; justify-content:center; }
.eyebrow { margin:0 0 1.35rem; color:var(--accent); font-size:.72rem; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:"Newsreader",serif; font-weight:500; letter-spacing:-.052em; line-height:.96; }
h1 { max-width:11ch; font-size:clamp(3.25rem,6vw,6.3rem); }
h2 { font-size:clamp(2.55rem,4vw,4.6rem); }
.hero-text { max-width:33rem; margin:2rem 0; font-size:clamp(1rem,1.5vw,1.18rem); color:#735650; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1.1rem; }
.button { padding:1rem 1.45rem; }
.button-primary { color:var(--white); background:var(--ink); }
.button-link { padding:.75rem .2rem; text-transform:none; border-bottom:1px solid var(--ink); border-radius:0; letter-spacing:0; }
.credentials { margin:3rem 0 0; max-width:31rem; color:#607375; font-size:.72rem; line-height:1.7; }
.hero-image { margin:0; min-height:36rem; position:relative; overflow:hidden; background:var(--mist); }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.hero-image:after { content:""; position:absolute; inset:auto 0 0; height:30%; background:linear-gradient(transparent,rgba(89,58,50,.65)); }
.hero-image figcaption { color:white; position:absolute; left:2.3rem; bottom:1.8rem; z-index:1; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; }
.section { padding:clamp(5.5rem,10vw,9rem) clamp(1.4rem,8vw,8rem); }
.intro { background:var(--mist); }
.intro-grid { display:grid; grid-template-columns:minmax(15rem,1fr) minmax(17rem,.72fr); gap:10vw; align-items:end; }
.intro-grid h2 { max-width:10ch; }
.intro-grid p { max-width:31rem; margin:0; color:#745950; font-size:1.15rem; }
.consultation { max-width:1320px; margin:auto; display:grid; grid-template-columns:.8fr 1.2fr; gap:10vw; }
.section-heading h2 { max-width:12ch; }
.steps { list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }
.steps li { display:grid; grid-template-columns:3.2rem 1fr; gap:1rem; padding:1.7rem 0; border-bottom:1px solid var(--line); }
.steps li>span,.areas article>span { color:var(--accent); font-size:.74rem; font-weight:700; }
h3 { margin:0 0 .4rem; font-size:1.08rem; letter-spacing:-.02em; }
.steps p,.areas p { margin:0; color:#755c56; font-size:.94rem; }
.areas { color:var(--white); background:var(--ink-deep); }
.areas .eyebrow,.areas article>span { color:var(--white); }
.areas .section-heading h2 { max-width:13ch; }
.areas-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:4rem; border-top:1px solid rgba(255,255,255,.22); }
.areas article { min-height:14rem; padding:1.6rem 1.6rem 1.2rem 0; margin-right:1.5rem; border-bottom:1px solid rgba(255,255,255,.22); display:flex; flex-direction:column; }
.areas h3 { margin-top:auto; font-size:1.22rem; }
.areas p { color:#f7e7df; }
.about { max-width:1320px; margin:auto; display:grid; grid-template-columns:.94fr 1.06fr; gap:clamp(2rem,10vw,10rem); align-items:center; }
.about-image { min-height:34rem; overflow:hidden; background:var(--sand); }
.about-image img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.about-copy h2 { max-width:10ch; }
.about-copy p { max-width:35rem; color:#745b55; }
.text-link { display:inline-flex; align-items:center; gap:.6rem; margin-top:1rem; padding-bottom:.35rem; border-bottom:1px solid currentColor; font-size:.84rem; font-weight:700; }
.proof { max-width:1320px; margin:auto; display:grid; grid-template-columns:.65fr 1.35fr; gap:clamp(3rem,10vw,10rem); background:var(--paper); }
.proof-intro { align-self:start; }
.proof-stat { display:flex; flex-direction:column; gap:.5rem; margin:1.9rem 0 0; padding-top:1rem; border-top:1px solid var(--line); }
.proof-stat strong { color:var(--ink-deep); font:500 clamp(5.4rem,8vw,8rem)/.75 "Newsreader",serif; letter-spacing:-.075em; }
.proof-stat span { max-width:10ch; font-size:.76rem; font-weight:700; letter-spacing:.09em; line-height:1.3; text-transform:uppercase; }
.proof-copy h2 { max-width:13ch; }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; margin-top:3.7rem; background:var(--line); }
.review { min-height:16rem; margin:0; padding:clamp(1.5rem,3vw,2.4rem); display:flex; flex-direction:column; justify-content:space-between; background:var(--mist); }
.review blockquote { max-width:21ch; margin:0; font:500 clamp(1.35rem,2vw,1.8rem)/1.05 "Newsreader",serif; letter-spacing:-.035em; }
.review figcaption { margin-top:2rem; color:#755c56; font-size:.74rem; font-weight:700; line-height:1.45; }
.review figcaption span { display:block; margin-top:.25rem; font-weight:500; }
.faq { background:var(--sand); }
.faq .section-heading { max-width:1320px; margin:auto; }
.faq-list { max-width:1320px; margin:3.5rem auto 0; border-top:1px solid var(--line); }
details { border-bottom:1px solid var(--line); }
summary { padding:1.45rem 0; display:flex; justify-content:space-between; gap:2rem; cursor:pointer; font-size:1.08rem; font-weight:600; list-style:none; }
summary::-webkit-details-marker { display:none; }
summary span { color:var(--accent); font-size:1.45rem; line-height:.8; }
details[open] summary span { transform:rotate(45deg); }
details p { max-width:45rem; margin:0; padding:0 0 1.6rem; color:#745b55; }
.location { display:grid; grid-template-columns:.86fr 1.14fr; gap:5vw; background:var(--mist); }
.location-copy h2 { max-width:8ch; }
address { margin:2rem 0 .65rem; font-style:normal; font-size:1.1rem; line-height:1.7; }
.location-copy>p { color:#745b55; }
.map-embed { min-height:28rem; display:grid; background:var(--sand); }
.location iframe { width:100%; height:100%; min-height:28rem; border:0; filter:saturate(.7) contrast(.9); }
.map-placeholder { min-height:28rem; padding:clamp(2rem,5vw,4.5rem); display:flex; flex-direction:column; align-items:flex-start; justify-content:center; background:linear-gradient(135deg,rgba(255,253,251,.78),rgba(234,217,208,.9)); }
.map-placeholder h3 { max-width:13ch; font:500 clamp(2rem,4vw,3.4rem)/1 "Newsreader",serif; letter-spacing:-.045em; }
.map-placeholder>p:not(.eyebrow) { max-width:28rem; color:#745b55; }
.map-placeholder .button { margin-top:.8rem; border:0; cursor:pointer; }
.closing { display:flex; align-items:end; justify-content:space-between; gap:2rem; color:var(--white); background:var(--accent); }
.closing h2 { margin-bottom:0; max-width:9ch; }
.closing .eyebrow { color:#ffe5d7; }
.button-light { color:var(--ink); background:var(--white); white-space:nowrap; }
footer { padding:2.8rem clamp(1.4rem,8vw,8rem); color:#f0ddd4; background:var(--footer); display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2rem; font-size:.75rem; }
.footer-brand { display:flex; flex-direction:column; color:var(--white); }
.footer-brand strong { font:500 1.2rem "Newsreader",serif; }
.footer-brand span { margin-top:.25rem; }
.footer-info,.footer-links { display:flex; flex-direction:column; gap:.4rem; }
.footer-links a:hover,.footer-links button:hover { color:white; }
.footer-links button { width:max-content; border:0; padding:0; color:inherit; background:none; cursor:pointer; font-size:inherit; text-align:left; }
footer small { grid-column:1/-1; margin-top:1.3rem; padding-top:1rem; border-top:1px solid rgba(255,255,255,.18); font-size:.68rem; }
.floating-whatsapp { position:fixed; right:1.2rem; bottom:1.2rem; z-index:15; display:flex; gap:.55rem; align-items:center; padding:.8rem 1rem; color:var(--white); background:#236d52; border-radius:999px; box-shadow:0 10px 24px rgba(12,48,39,.23); font-size:.76rem; font-weight:700; transition:opacity .2s ease,transform .2s ease; }
.consent-pending .floating-whatsapp { opacity:0; pointer-events:none; transform:translateY(.5rem); }
.privacy-banner { position:fixed; left:0; right:0; bottom:0; z-index:80; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:clamp(1.2rem,4vw,4rem); padding:1.2rem clamp(1.2rem,4vw,4.5rem) max(1.2rem,env(safe-area-inset-bottom)); color:var(--white); background:var(--footer); border-top:1px solid rgba(255,255,255,.18); box-shadow:0 -18px 50px rgba(53,31,25,.18); }
.privacy-banner strong { font:500 1.35rem/1.1 "Newsreader",serif; }
.privacy-banner p { max-width:66ch; margin:.35rem 0 .2rem; color:#f3e5de; font-size:.82rem; line-height:1.45; }
.privacy-banner a { border-bottom:1px solid currentColor; font-size:.76rem; font-weight:700; }
.privacy-banner-actions,.privacy-dialog-actions { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; }
.privacy-button { min-height:2.75rem; padding:.7rem 1rem; border-radius:999px; cursor:pointer; font-size:.72rem; font-weight:700; line-height:1.2; }
.privacy-button-quiet { color:var(--ink); background:transparent; border:1px solid var(--line); }
.privacy-button-primary { color:var(--white); background:var(--accent); border:1px solid var(--accent); }
.privacy-banner .privacy-button-quiet { color:var(--white); border-color:rgba(255,255,255,.45); }
.privacy-banner .privacy-button-primary { color:var(--ink); background:var(--white); border-color:var(--white); }
.privacy-dialog { width:min(42rem,calc(100% - 2rem)); max-height:calc(100svh - 2rem); margin:auto; padding:0; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:.45rem; box-shadow:0 30px 80px rgba(53,31,25,.3); }
.privacy-dialog::backdrop { background:rgba(46,31,27,.58); backdrop-filter:blur(3px); }
.privacy-dialog form { padding:clamp(1.4rem,4vw,2.5rem); }
.privacy-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; }
.privacy-dialog-heading .eyebrow { margin-bottom:.75rem; }
.privacy-dialog h2 { max-width:15ch; margin-bottom:1.1rem; font-size:clamp(2.1rem,5vw,3.2rem); }
.privacy-dialog>form>p { max-width:56ch; color:#745b55; }
.privacy-dialog-close { width:2.75rem; height:2.75rem; flex:0 0 auto; border:1px solid var(--line); border-radius:50%; background:transparent; cursor:pointer; font-size:1.5rem; line-height:1; }
.privacy-option { display:grid; grid-template-columns:1.3rem 1fr; gap:.9rem; align-items:start; padding:1rem 0; border-top:1px solid var(--line); cursor:pointer; }
.privacy-option input { width:1.15rem; height:1.15rem; margin:.2rem 0 0; accent-color:var(--accent); }
.privacy-option strong,.privacy-option small { display:block; }
.privacy-option small { margin-top:.15rem; color:#745b55; font-size:.78rem; line-height:1.45; }
.privacy-dialog-actions { margin-top:1.4rem; }
.legal-page { max-width:900px; margin:auto; }
.legal-page h1 { max-width:12ch; font-size:clamp(2.8rem,6vw,5rem); }
.legal-page h2 { margin-top:3rem; font-size:clamp(1.8rem,4vw,2.6rem); letter-spacing:-.035em; }
.legal-page p,.legal-page li { color:#745b55; }
.legal-page p a { color:var(--ink); text-decoration:underline; text-underline-offset:.15em; }
.legal-page li+li { margin-top:.45rem; }
.legal-actions { display:flex; flex-wrap:wrap; gap:1.3rem; align-items:center; margin-top:2.5rem; }
.legal-actions button { border:0; padding:0 0 .35rem; color:var(--ink); background:none; border-bottom:1px solid currentColor; cursor:pointer; font-size:.84rem; font-weight:700; }
@media (prefers-reduced-motion:no-preference) {
  .motion-enabled .hero-copy > *, .motion-enabled .hero-image { opacity:0; transform:translateY(1.15rem); transition:opacity .72s ease, transform .88s cubic-bezier(.2,.75,.25,1); }
  .motion-enabled .hero-copy > :nth-child(2) { transition-delay:90ms; }
  .motion-enabled .hero-copy > :nth-child(3) { transition-delay:160ms; }
  .motion-enabled .hero-copy > :nth-child(4) { transition-delay:230ms; }
  .motion-enabled .hero-copy > :nth-child(5) { transition-delay:300ms; }
  .motion-enabled .hero-image { transform:translateX(2rem) scale(1.015); transition-delay:140ms; }
  .motion-enabled .hero.is-active .hero-copy > *, .motion-enabled .hero.is-active .hero-image { opacity:1; transform:translate3d(0,0,0); }
  .motion-enabled .hero-image img { transform:scale(1.035); transition:transform 2.4s cubic-bezier(.2,.75,.25,1); }
  .motion-enabled .hero.is-active .hero-image img { transform:scale(1); }
  .motion-enabled .reveal { opacity:0; transform:translateY(1.15rem); transition:opacity .65s ease var(--reveal-delay,0ms), transform .8s cubic-bezier(.2,.75,.25,1) var(--reveal-delay,0ms); }
  .motion-enabled .reveal.is-visible { opacity:1; transform:translate3d(0,0,0); }
  .motion-enabled .areas article { transition-property:opacity,transform,background-color; }
  .motion-enabled .areas article:hover { background-color:rgba(255,253,251,.07); }
}
@media (max-width:900px) { .site-header { gap:1rem; } nav { gap:.85rem; } nav a { font-size:.72rem; } .hero { grid-template-columns:1fr; } .hero-image { min-height:32rem; max-height:44rem; } .intro-grid,.consultation,.about,.proof,.location { grid-template-columns:1fr; gap:3rem; } .proof-copy h2 { max-width:15ch; } .areas-grid { grid-template-columns:repeat(2,1fr); } .closing { align-items:flex-start; flex-direction:column; } .privacy-banner { grid-template-columns:1fr; gap:1rem; } .privacy-banner-actions { justify-content:flex-start; flex-wrap:wrap; } }
@media (max-width:680px) { .site-header { min-height:4.8rem; } .brand { min-width:0; } .brand span { font-size:1.1rem; } .brand small { font-size:.52rem; } .header-cta { display:none; } .menu-button { display:flex; align-items:center; gap:.65rem; margin-left:auto; border:0; padding:.6rem 0; color:var(--ink); background:none; font:700 .72rem "DM Sans",sans-serif; letter-spacing:.06em; text-transform:uppercase; } .menu-button span { position:relative; display:block; width:1.1rem; height:1px; background:currentColor; } .menu-button span:before,.menu-button span:after { content:""; position:absolute; left:0; width:1.1rem; height:1px; background:currentColor; } .menu-button span:before { top:-.35rem; } .menu-button span:after { top:.35rem; } nav { display:none; position:absolute; top:100%; left:0; right:0; padding:1rem 1.4rem 1.4rem; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; gap:1rem; } .site-header.menu-open nav { display:flex; } .hero-copy { padding-top:4.7rem; padding-bottom:4.7rem; } h1 { font-size:clamp(3.15rem,15vw,4.5rem); } .hero-image { min-height:27rem; } .hero-image figcaption { left:1.4rem; bottom:1.2rem; } .areas-grid,.review-grid { grid-template-columns:1fr; } .areas-grid { margin-top:2.7rem; } .areas article { min-height:11rem; margin-right:0; padding-right:0; } .about-image { min-height:26rem; } .review { min-height:13.5rem; } .map-embed,.map-placeholder,.location iframe { min-height:20rem; } footer { grid-template-columns:1fr; gap:1.25rem; } .floating-whatsapp span { display:none; } .floating-whatsapp { width:3.2rem; height:3.2rem; justify-content:center; padding:0; font-size:1.4rem; } .privacy-banner { max-height:90svh; overflow:auto; padding:1rem 1rem max(1rem,env(safe-area-inset-bottom)); } .privacy-banner p { font-size:.76rem; } .privacy-banner-actions { display:grid; grid-template-columns:1fr 1fr; width:100%; } .privacy-banner-actions .privacy-button-primary { grid-column:1/-1; grid-row:1; } .privacy-button { min-height:2.9rem; } .privacy-dialog-actions { align-items:stretch; flex-direction:column-reverse; } .privacy-dialog-actions .privacy-button { width:100%; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { transition:none!important; } }
