:root{
  --ink:#211b14;
  --paper:#f3eee1;
  --paper-dim:#ece4d2;
  --panel:#202b23;
  --panel-ink:#e9e4d5;
  --brass:#a67c3d;
  --brass-soft:#cda869;
  --wax:#6e2a34;
  --wax-dark:#551f27;
  --line:#c9bfa6;
  --line-dark:#455043;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  position:relative;
  background:var(--paper);
  color:var(--ink);
  font-family:'Work Sans', -apple-system, sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  opacity:0.05; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
h1,h2,h3,.display{
  font-family:'Cormorant', Georgia, serif;
  font-weight:500;
  line-height:1.08;
  margin:0;
  color:var(--ink);
}
p{margin:0 0 1em;}
a{color:inherit;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px; position:relative; z-index:1;}
.measure{max-width:56ch;}

.skip{position:absolute; left:-999px; top:0; background:var(--wax); color:#fff; padding:10px 16px; z-index:100;}
.skip:focus{left:12px; top:12px;}

.mono{display:inline-flex; align-items:center; justify-content:center; flex:none;}
.mono svg{display:block;}

header{
  position:sticky; top:0; z-index:20;
  background:rgba(243,238,225,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 28px; max-width:1120px; margin:0 auto;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
.wordmark{font-family:'Cormorant', serif; font-size:1.45rem; letter-spacing:0.01em;}
.wordmark em{font-style:italic; color:var(--wax);}
nav ul{list-style:none; display:flex; gap:2rem; margin:0; padding:0;}
nav a{text-decoration:none; font-size:0.95rem; border-bottom:1px solid transparent; padding-bottom:2px; transition:border-color .2s;}
nav a:hover, nav a:focus{border-color:var(--brass);}
.call-btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--wax); color:#fff; text-decoration:none;
  padding:10px 18px; font-size:0.92rem; white-space:nowrap;
  transition:background .2s;
}
.call-btn:hover{background:var(--wax-dark);}
.menu-toggle{display:none; background:none; border:1px solid var(--line); padding:8px 12px; font-size:1rem;}

@media (max-width:820px){
  nav ul{display:none;}
  .call-btn span.long{display:none;}
  .menu-toggle{display:block;}
}

.hero{position:relative; padding:88px 0 0; border-bottom:1px solid var(--line); overflow:hidden;}
.hero-watermark{
  position:absolute; right:-4%; top:50%; transform:translateY(-50%);
  width:640px; max-width:60vw; opacity:0.05; color:var(--ink);
  pointer-events:none; z-index:0;
}
.hero-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:center; padding-bottom:76px; position:relative; z-index:1;}
.eyebrow-line{display:flex; align-items:center; gap:12px; margin-bottom:22px; color:var(--brass); font-size:0.85rem;}
.eyebrow-line .rule{width:0; height:1px; background:var(--brass); animation:draw .9s ease-out .5s forwards;}
h1{font-size:clamp(2.5rem, 4.4vw, 3.75rem);}
.hero p.lede{font-size:1.15rem; margin-top:20px; max-width:44ch; color:#40382c;}
.cta-row{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}
.btn{
  display:inline-block; padding:13px 26px; text-decoration:none;
  font-size:0.95rem; border:1px solid var(--ink); transition:background .2s, color .2s, border-color .2s;
  cursor:pointer; background:none; font-family:inherit;
}
.btn-primary{background:var(--wax); border-color:var(--wax); color:#fff;}
.btn-primary:hover{background:var(--wax-dark); border-color:var(--wax-dark);}
.btn-primary:disabled{opacity:0.6; cursor:not-allowed;}
.btn-ghost:hover{background:var(--ink); color:var(--paper);}

.reveal{opacity:0; animation:fadeUp .7s ease-out forwards;}
.r1{animation-delay:.05s;} .r2{animation-delay:.22s;} .r3{animation-delay:.4s;} .r4{animation-delay:.56s;} .r5{animation-delay:.3s;}
@keyframes fadeUp{from{opacity:0; transform:translateY(16px);} to{opacity:1; transform:translateY(0);}}
@keyframes draw{to{width:34px;}}
@media (prefers-reduced-motion: reduce){
  .reveal{animation:none; opacity:1;}
  .eyebrow-line .rule{animation:none; width:34px;}
}

.img-slot{
  aspect-ratio:4/5; width:100%; position:relative;
  background-image: var(--img, none), repeating-radial-gradient(circle at 30% 20%, rgba(255,255,255,0.35) 0 1px, transparent 1px 7px), linear-gradient(160deg, #ddd0a8, #b98f4a 75%);
  background-size: cover, auto, auto;
  background-position: center, center, center;
  border:1px solid var(--line);
  display:flex; align-items:flex-end; padding:16px;
}
.img-slot.wide{aspect-ratio:16/9;}
.img-slot span{
  background:rgba(33,27,20,0.82); color:var(--paper);
  font-size:0.78rem; padding:6px 10px; font-family:'Work Sans',sans-serif;
}
.hero-frame{position:relative;}
.seal{
  position:absolute; top:-18px; left:-18px; width:96px; height:96px; border-radius:50%;
  background:radial-gradient(circle at 32% 28%, #8a5d2e, var(--wax) 70%);
  color:#f3e6c8; display:flex; align-items:center; justify-content:center; text-align:center;
  font-family:'Cormorant', serif; font-size:0.72rem; line-height:1.15; letter-spacing:0.03em;
  box-shadow:0 6px 18px rgba(33,27,20,0.35); transform:rotate(-9deg); z-index:2;
  border:1px solid rgba(243,230,200,0.35);
}

.ribbon{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:var(--paper-dim); overflow:hidden; padding:16px 0;
}
.ribbon-track{display:flex; width:max-content; gap:2.4rem; animation:scroll 34s linear infinite;}
.ribbon:hover .ribbon-track{animation-play-state:paused;}
.ribbon-track span{
  font-family:'Cormorant', serif; font-style:italic; font-size:1.15rem; color:#5b5240;
  display:flex; align-items:center; gap:2.4rem; white-space:nowrap;
}
.ribbon-track span::after{content:"◆"; font-size:0.55rem; color:var(--brass); font-style:normal; margin-left:2.4rem;}
@keyframes scroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){
  .ribbon-track{animation:none; flex-wrap:wrap; width:auto;}
}

.intro{padding:70px 0; border-bottom:1px solid var(--line);}
.intro-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px;}
.intro h2{font-size:2rem; margin-bottom:18px;}
.dropcap::first-letter{
  font-family:'Cormorant', serif; font-size:3.4rem; float:left; line-height:0.8;
  padding:6px 8px 0 0; color:var(--wax); font-weight:500;
}
.facts{list-style:none; margin:8px 0 0; padding:0; display:grid; gap:0;}
.facts li{
  display:grid; grid-template-columns:44px 1fr; gap:18px;
  padding:20px 0; border-top:1px solid var(--line);
  align-items:baseline;
}
.facts li:last-child{border-bottom:1px solid var(--line);}
.facts .mk{color:var(--brass); font-size:1.1rem;}
.facts .lbl strong{display:block; font-size:1.02rem; margin-bottom:2px;}
.facts .lbl span{color:#5b5240; font-size:0.92rem;}

.services{padding:0;}
.service{display:grid; grid-template-columns:1fr 1fr; min-height:480px;}
.service.reverse .service-media{order:2;}
.service-copy{padding:72px 56px; display:flex; flex-direction:column; justify-content:center;}
.service-copy .tag{color:var(--brass); font-size:0.85rem; margin-bottom:14px;}
.service-copy h2{font-size:2.1rem; margin-bottom:16px;}
.service-copy p{color:#40382c; max-width:42ch;}
.service-media{background:var(--paper-dim); overflow:hidden;}
.service-media .img-slot{height:100%; border:none; transition:transform .5s ease;}
.service-media:hover .img-slot{transform:scale(1.035);}
.service:nth-child(even){background:var(--panel); color:var(--panel-ink);}
.service:nth-child(even) .service-copy p{color:#c7c2b1;}
.service:nth-child(even) h2{color:var(--panel-ink);}
.service:nth-child(even) .btn-ghost{border-color:var(--panel-ink); color:var(--panel-ink);}
.service:nth-child(even) .btn-ghost:hover{background:var(--panel-ink); color:var(--panel);}

@media (max-width:820px){
  .service, .service.reverse{grid-template-columns:1fr;}
  .service.reverse .service-media{order:0;}
  .service-copy{padding:48px 28px;}
  .service-media .img-slot{aspect-ratio:16/9;}
}

.categories{padding:80px 0; border-bottom:1px solid var(--line);}
.categories h2{font-size:2rem; max-width:20ch;}
.cat-list{margin-top:36px; display:flex; flex-wrap:wrap; border-top:1px solid var(--line); border-left:1px solid var(--line);}
.cat-list div{flex:1 1 220px; padding:22px 20px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .2s;}
.cat-list div:hover{background:var(--paper-dim);}
.cat-list h3{font-size:1.15rem; margin-bottom:6px; font-weight:500;}
.cat-list p{font-size:0.9rem; color:#5b5240; margin:0;}

.process{padding:80px 0; background:var(--panel); color:var(--panel-ink); position:relative;}
.process h2{color:var(--panel-ink); font-size:2rem; max-width:22ch;}
.steps{margin-top:44px; display:grid; grid-template-columns:repeat(3,1fr); gap:0;}
.step{padding-left:28px; border-left:1px solid var(--line-dark);}
.step:first-child{border-left:none; padding-left:0;}
.step .n{font-family:'Cormorant', serif; font-size:2.6rem; color:var(--brass-soft); display:block; margin-bottom:10px;}
.step h3{color:var(--panel-ink); font-size:1.2rem; margin-bottom:8px; font-weight:500;}
.step p{color:#c7c2b1; font-size:0.94rem;}
@media (max-width:820px){
  .steps{grid-template-columns:1fr; gap:28px;}
  .step{border-left:none; padding-left:0; border-top:1px solid var(--line-dark); padding-top:24px;}
  .step:first-child{border-top:none; padding-top:0;}
}

.guarantees{padding:72px 0; border-bottom:1px solid var(--line);}
.g-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start;}
.g-grid h2{font-size:2rem; max-width:16ch;}
.g-list{list-style:none; margin:0; padding:0;}
.g-list li{padding:16px 0; border-bottom:1px solid var(--line); display:flex; gap:14px; font-size:0.98rem;}
.g-list li:first-child{border-top:1px solid var(--line);}
.g-list .mark{color:var(--brass); font-size:0.6rem; line-height:1.9;}

.quote{padding:80px 0; border-bottom:1px solid var(--line); position:relative;}
.quote-mark{
  font-family:'Cormorant', serif; font-size:9rem; color:var(--brass); opacity:0.16;
  position:absolute; top:6px; left:20px; line-height:1; z-index:0; user-select:none;
}
.quote blockquote{margin:0; font-family:'Cormorant', serif; font-style:italic; font-size:1.8rem; max-width:32ch; color:var(--ink); position:relative; z-index:1;}
.quote cite{display:block; margin-top:18px; font-style:normal; font-family:'Work Sans',sans-serif; font-size:0.88rem; color:#5b5240;}

.contact{padding:80px 0;}
.contact-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px;}
.contact h2{font-size:2rem; margin-bottom:16px;}

.form-field{margin-bottom:18px;}
.form-field label{display:block; font-size:0.85rem; color:var(--brass); margin-bottom:6px;}
.form-field input, .form-field textarea{
  width:100%; padding:12px 14px; font-family:'Work Sans', sans-serif; font-size:0.98rem;
  background:var(--paper-dim); border:1px solid var(--line); color:var(--ink);
}
.form-field input:focus, .form-field textarea:focus{outline:2px solid var(--brass); outline-offset:1px;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
.form-hp{position:absolute; left:-9999px; top:-9999px;}
.form-status{margin-top:14px; font-size:0.92rem; min-height:1.4em;}
.form-status[data-state="ok"]{color:#3d5a3f;}
.form-status[data-state="error"]{color:var(--wax);}
@media (max-width:560px){.form-row{grid-template-columns:1fr;}}

.contact-list{list-style:none; margin:28px 0 0; padding:0;}
.contact-list li{padding:14px 0; border-top:1px solid var(--line); font-size:0.98rem;}
.contact-list li:last-child{border-bottom:1px solid var(--line);}
.contact-list a{text-decoration:none; border-bottom:1px solid var(--brass);}
.contact-list .k{display:block; font-size:0.8rem; color:var(--brass); margin-bottom:3px;}
.map-slot{aspect-ratio:4/3; margin-top:32px;}

footer{background:var(--ink); color:#b9b09a; padding:36px 0; font-size:0.85rem; position:relative; z-index:1;}
.footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px;}
footer a{color:#d9cead; text-decoration:none;}

@media (max-width:820px){
  .hero-grid, .intro-grid, .g-grid, .contact-grid{grid-template-columns:1fr; gap:32px;}
  .service-copy{padding:48px 28px;}
  .seal{width:78px; height:78px; font-size:0.62rem;}
}

/* FAQ */
.faq{padding:72px 0; border-bottom:1px solid var(--line);}
.faq h2{font-size:2rem; margin-bottom:30px;}
.faq-list{max-width:76ch;}
.faq-list details{border-top:1px solid var(--line); padding:18px 0;}
.faq-list details:last-child{border-bottom:1px solid var(--line);}
.faq-list summary{
  cursor:pointer; font-family:'Cormorant', serif; font-size:1.25rem; font-weight:500;
  list-style:none; display:flex; justify-content:space-between; align-items:baseline; gap:16px;
}
.faq-list summary::-webkit-details-marker{display:none;}
.faq-list summary::after{content:"+"; color:var(--brass); font-family:'Work Sans',sans-serif; font-size:1.1rem;}
.faq-list details[open] summary::after{content:"–";}
.faq-list p{margin-top:12px; color:#40382c; max-width:60ch;}

/* Consent checkbox */
.form-consent{font-size:0.88rem; color:#40382c;}
.form-consent label{display:flex; align-items:flex-start; gap:10px; color:inherit; font-size:inherit; margin-bottom:0;}
.form-consent input[type="checkbox"]{width:16px; height:16px; margin-top:3px; accent-color:var(--wax); flex:none;}
.form-consent a{border-bottom:1px solid var(--brass); text-decoration:none;}

/* Footer legal links */
.footer-legal{display:flex; gap:18px;}
.footer-legal a{border-bottom:1px solid transparent;}
.footer-legal a:hover{border-color:var(--brass-soft);}

/* Cookie banner */
.cookie-banner{
  position:fixed; left:0; right:0; bottom:0; z-index:50;
  background:var(--ink); color:#ddd6c4; border-top:1px solid var(--line-dark);
}
.cookie-inner{display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px 28px; flex-wrap:wrap;}
.cookie-inner p{margin:0; font-size:0.9rem; max-width:64ch;}
.cookie-inner a{color:#e7dcb8; border-bottom:1px solid var(--brass-soft); text-decoration:none;}
.cookie-actions{display:flex; gap:12px; flex:none;}
.cookie-actions .btn{padding:9px 18px; font-size:0.88rem;}
.cookie-actions .btn-ghost{border-color:#77705d; color:#ddd6c4;}
.cookie-actions .btn-ghost:hover{background:#ddd6c4; color:var(--ink);}
@media (max-width:640px){.cookie-inner{flex-direction:column; align-items:stretch; text-align:left;} .cookie-actions{justify-content:flex-end;}}

/* Legal pages (privacidad.html / cookies.html) */
.legal-page{padding:64px 0 90px;}
.legal-page h1{font-size:2.4rem; margin-bottom:6px;}
.legal-updated{color:#5b5240; font-size:0.88rem; margin-bottom:36px;}
.legal-page h2{font-family:'Cormorant', serif; font-size:1.4rem; font-weight:500; margin:34px 0 10px;}
.legal-page p{max-width:74ch; color:#3a3226;}
.legal-page a{color:var(--wax); border-bottom:1px solid var(--brass);}
.legal-table{width:100%; border-collapse:collapse; margin:16px 0; max-width:80ch;}
.legal-table th, .legal-table td{border:1px solid var(--line); padding:10px 12px; text-align:left; font-size:0.92rem;}
.legal-table th{background:var(--paper-dim); font-weight:600;}
