@font-face{font-family:'DM Serif Display';src:url(/assets/fonts/dm-serif-display-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Serif Display';src:url(/assets/fonts/dm-serif-display-latin-400-italic.woff2) format('woff2');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'DM Sans';src:url(/assets/fonts/dm-sans-latin-400-normal.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(/assets/fonts/dm-sans-latin-500-normal.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(/assets/fonts/dm-sans-latin-600-normal.woff2) format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  --ivory:#FAF6EF;
  --boulevard:#565258;
  --boulevard-deep:#3F3B41;
  --bisque:#EDCBB6;
  --bisque-soft:#F5E3D7;
  --blue:#A9BCCC;
  --blush:#F9C39F;
  --card:#FFFDF9;
  --line:#E8DFD3;
  --text:#565258;
  --title:#3F3B41;
  --logo-filter:none;
  --serif:"DM Serif Display", Georgia, "Times New Roman", serif;
  --sans:"DM Sans", "Helvetica Neue", Arial, sans-serif;
  --hh:88px;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ivory:#1C1A1D; --bisque:#3A2F2A; --bisque-soft:#2A2426; --blue:#A9BCCC; --card:#242126; --line:#3A353B;
    --text:#D9D3CC; --title:#F3EDE5; --logo-filter:brightness(2.4); color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ivory:#1C1A1D; --bisque:#3A2F2A; --bisque-soft:#2A2426; --blue:#A9BCCC; --card:#242126; --line:#3A353B;
  --text:#D9D3CC; --title:#F3EDE5; --logo-filter:brightness(2.4); color-scheme:dark;
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + var(--hh) + 16px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--text);font-family:var(--sans);font-weight:400;font-size:1.0625rem;line-height:1.7}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--ivory)}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--boulevard);outline-offset:3px}
.wrap{width:min(1200px,100% - 2.5rem);margin-inline:auto}
h1,h2,h3{font-family:var(--serif);font-weight:400;color:var(--title);line-height:1.1;margin:0 0 .6em;letter-spacing:-.01em;text-wrap:balance;overflow-wrap:break-word}
h2{font-size:clamp(2rem,3.6vw,3.1rem);letter-spacing:-.015em}
h3{font-size:clamp(1.4rem,1.9vw,1.6rem);letter-spacing:0;line-height:1.2}
p{margin:0 0 1.1em;max-width:62ch;text-wrap:pretty}
.kicker{display:block;font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--boulevard);margin-bottom:1.1rem}
.kicker::before{content:"";display:inline-block;width:28px;height:1px;background:currentColor;vertical-align:middle;margin-right:.8rem}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;font:600 .82rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;padding:1.1rem 1.7rem;border-radius:4px;border:1px solid var(--boulevard);background:var(--boulevard);color:#FAF6EF;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:var(--boulevard-deep);border-color:var(--boulevard-deep)}
.btn.outline{background:transparent;color:var(--title);border-color:var(--title)}
.btn.outline:hover{background:var(--title);color:var(--ivory)}
.btn-row{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}
.more{font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--title);text-decoration:none;border-bottom:1px solid var(--title);padding-bottom:3px}
.more:hover{border-color:var(--blue)}
[data-theme="dark"] .btn:not(.outline){background:#F3EDE5;color:#3F3B41;border-color:#F3EDE5}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn:not(.outline){background:#F3EDE5;color:#3F3B41;border-color:#F3EDE5}}

/* Cabecera */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:color-mix(in srgb,var(--ivory) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:var(--hh);gap:1.5rem}
.brand img{height:50px;width:auto;filter:var(--logo-filter)}
.nav{display:flex;align-items:center;gap:1.8rem}
.nav>a:not(.btn),.drop>button{font:500 .82rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--title);text-decoration:none;background:none;border:0;padding:0;cursor:pointer}
.nav>a[aria-current="page"]{border-bottom:1px solid var(--title);padding-bottom:4px}
.nav .btn{padding:.9rem 1.2rem;font-size:.76rem}
.drop{position:relative}
.drop>button{display:flex;align-items:center;gap:.45rem}
.drop>button::after{content:"";width:5px;height:5px;border-right:1.3px solid currentColor;border-bottom:1.3px solid currentColor;transform:rotate(45deg) translateY(-2px)}
.drop-menu{position:absolute;top:calc(100% + 22px);left:-1rem;width:370px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.5rem;display:none;box-shadow:0 22px 44px -26px rgba(63,59,65,.35)}
.drop-menu a{display:block;padding:.7rem .9rem;border-radius:6px;text-decoration:none;color:var(--title);font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.drop-menu a:hover{background:var(--bisque-soft)}
.drop:hover .drop-menu,.drop:focus-within .drop-menu{display:block}
.drop::after{content:"";position:absolute;left:-1rem;right:-1rem;top:100%;height:24px}
.menu-toggle{display:none;background:none;border:1px solid var(--line);border-radius:6px;width:46px;height:42px;cursor:pointer;color:var(--title)}
.menu-toggle span{display:block;width:20px;height:1.3px;background:currentColor;margin:5px auto;transition:transform .2s,opacity .2s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.3px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.3px) rotate(-45deg)}
@media (max-width:1120px){
  :root{--hh:76px}
  .brand img{height:42px}
  .menu-toggle{display:block}
  .nav{position:fixed;inset:calc(var(--hh) + env(safe-area-inset-top,0px)) 0 auto 0;flex-direction:column;align-items:stretch;gap:0;background:var(--ivory);border-bottom:1px solid var(--line);padding:.5rem 1.25rem 1.5rem;display:none;max-height:calc(100vh - var(--hh));overflow:auto}
  .nav.open{display:flex}
  .nav>a:not(.btn),.drop>button{padding:1.05rem 0;border-bottom:1px solid var(--line);width:100%;text-align:left;font-size:.85rem}
  .nav>a[aria-current="page"]{border-bottom:1px solid var(--line)}
  .drop-menu{position:static;display:block;border:0;box-shadow:none;background:none;padding:.3rem 0 .6rem .8rem;width:auto}
  .drop>button::after,.drop::after{display:none}
  .nav .btn{margin-top:1.2rem;padding:1.1rem}
}

/* Hero */
.hero{overflow:hidden;border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;min-height:min(780px,calc(100vh - var(--hh)))}
.hero-copy{padding:4rem 0}
.display{font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,6vw,5.3rem);line-height:1;letter-spacing:-.02em;color:#2F2C33;margin:0 0 1.5rem;text-wrap:balance}
[data-theme="dark"] .display{color:var(--title)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .display{color:var(--title)}}
.display em{font-style:italic}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(1.45rem,2.2vw,1.85rem);letter-spacing:0;line-height:1.25;color:var(--title);margin:0 0 1rem;max-width:30ch}
.hero .lead{font-size:1.08rem;max-width:48ch}
.hero-art{position:relative;align-self:stretch;min-height:580px}
.hero-photo{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:95%;width:auto;max-width:none;z-index:2}
.hero-art::before{content:"";position:absolute;left:16%;right:0;top:18%;bottom:0;background:var(--blue);border-radius:3px 3px 0 0;z-index:0}
.hero-art::after{content:"";position:absolute;left:8%;right:8%;top:11%;bottom:7%;border:1px solid var(--boulevard);opacity:.35;z-index:1;pointer-events:none}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:1fr;min-height:0;gap:0}
  .hero-copy{padding:3rem 0 2rem}
  .hero-art{min-height:480px}
}

/* Secciones */
.block{padding:7rem 0}
.block.bisque{background:var(--bisque-soft)}
.head{max-width:700px;margin-bottom:3.2rem}
.head.center{margin-inline:auto;text-align:center}
.head.center p{margin-inline:auto}
@media (max-width:900px){.block{padding:4.8rem 0}}

/* Presentación */
.intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:5.5rem;align-items:center}
.framed{position:relative;max-width:440px;width:100%;aspect-ratio:4/5}
.framed::before{content:"";position:absolute;left:16%;right:0;top:16%;bottom:0;background:var(--blue);border-radius:3px 3px 0 0;z-index:0}
.framed::after{content:"";position:absolute;left:6%;right:8%;top:9%;bottom:6%;border:1px solid var(--boulevard);opacity:.35;z-index:1;pointer-events:none}
.framed img{position:absolute;left:50%;bottom:0;transform:translateX(-50%);height:100%;width:auto;max-width:none;z-index:2}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.35rem,2vw,1.6rem);line-height:1.35;color:var(--title);border-left:2px solid var(--bisque);padding-left:1.3rem;margin:1.8rem 0}
@media (max-width:900px){.intro{grid-template-columns:1fr;gap:3rem}.framed{max-width:340px}}

/* Servicios */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:2.8rem 2rem}
.service{display:flex;flex-direction:column;text-decoration:none;color:inherit;position:relative}
.service .ph{overflow:hidden;border-radius:4px;margin-bottom:1.4rem;background:var(--bisque-soft)}
.service img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .6s ease}
.service:hover img{transform:scale(1.035)}
.service .num{font-family:var(--serif);font-style:italic;font-size:1.05rem;color:var(--boulevard);margin-bottom:.3rem}
.service h3{margin-bottom:.5rem}
.service p{font-size:.95rem;margin-bottom:1.1rem;flex:1}
.service .more{align-self:flex-start}
.badge{position:absolute;top:1rem;left:1rem;z-index:2;background:var(--ivory);color:var(--title);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:.5rem .8rem;border-radius:3px}
.help-line{margin-top:3.4rem;padding:1.6rem 2rem;background:var(--card);border:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center}
.help-line p{margin:0;font-family:var(--serif);font-size:1.35rem;color:var(--title)}
@media (min-width:981px){.services{grid-template-columns:repeat(6,1fr)}.service{grid-column:span 2}.service:nth-child(4){grid-column:2 / span 2}}
@media (max-width:980px){.services{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.services{grid-template-columns:1fr}}

/* Método */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;counter-reset:paso}
.steps li{counter-increment:paso;padding-top:1.6rem;border-top:1px solid var(--boulevard)}
.steps li::before{content:"0" counter(paso);display:block;font-family:var(--serif);font-weight:400;font-size:2.6rem;line-height:1;color:var(--boulevard);margin-bottom:1.2rem}
.steps h3{font-size:1.4rem}
.steps p{margin:0;font-size:.95rem}
@media (max-width:900px){.steps{grid-template-columns:1fr;gap:2.2rem}}

/* Talleres */
.workshop{background:var(--blue);color:#3F3B41}
.workshop h2,.workshop h3,.workshop .kicker{color:#2F2C33}
.workshop .grid{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center}
.workshop-photo{position:relative}
.workshop-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.checks{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1.6rem}
.checks li{padding-left:1.5rem;position:relative;font-size:.95rem}
.checks li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:5px;border-left:1.4px solid #3F3B41;border-bottom:1.4px solid #3F3B41;transform:rotate(-45deg)}
.workshop .btn{background:#3F3B41;border-color:#3F3B41;color:#FAF6EF}
.workshop .btn:hover{background:#2F2C33}
.workshop .btn.outline{background:transparent;color:#2F2C33;border-color:#2F2C33}
.workshop .btn.outline:hover{background:#2F2C33;color:#FAF6EF}
@media (max-width:900px){.workshop .grid{grid-template-columns:1fr;gap:3rem}.checks{grid-template-columns:1fr}}

/* Tarjeta regalo */
.gift{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.card-stage{display:grid;place-items:center;padding:3rem 1rem;background:var(--bisque-soft);border-radius:4px}
.giftcard-img{width:min(460px,100%);height:auto;border-radius:16px;box-shadow:0 34px 60px -30px rgba(63,59,65,.5);transform:rotate(-3deg)}
@media (max-width:900px){.gift{grid-template-columns:1fr;gap:2.5rem}}

/* Opiniones */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.review{margin:0;border:1px solid var(--line);background:var(--card);border-radius:6px;padding:2rem 1.9rem 1.7rem;display:flex;flex-direction:column;gap:1.1rem;box-shadow:0 24px 48px -40px rgba(63,59,65,.45)}
.review .stars{color:#D9934F;font-size:1.05rem;letter-spacing:.18em;line-height:1}
.review blockquote{margin:0;flex:1;font-size:.98rem;line-height:1.7;color:var(--text)}
.review blockquote p{margin:0;max-width:none}
.review figcaption{border-top:1px solid var(--line);padding-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.review .who{font-family:var(--serif);font-size:1.2rem;color:var(--title)}
.review .src{font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--title);text-decoration:none;border-bottom:1px solid var(--blue);padding-bottom:2px}
.review .src:hover{border-color:var(--title)}
.reviews-cta{text-align:center;margin-top:2.6rem}
@media (max-width:900px){.reviews{grid-template-columns:1fr}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:start}
.faq details{border-bottom:1px solid var(--line);padding:1.3rem 0}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1.5rem;font-family:var(--sans);font-weight:500;font-size:1.05rem;color:var(--title)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;font-weight:400;font-size:1.4rem;line-height:1;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:.8rem 0 0;font-size:.95rem}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:1.5rem}}

/* Contacto */
.contact{display:grid;grid-template-columns:.75fr 1.25fr;gap:4rem;align-items:start}
.contact-info dl{margin:2rem 0 0}
.contact-info dt{font-size:.76rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--title)}
.contact-info dd{margin:.2rem 0 1.3rem}
.contact-info a{color:var(--title)}
.form{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:2.4rem;box-shadow:0 30px 60px -48px rgba(63,59,65,.45)}
.field{margin-bottom:1.3rem;border:0;padding:0;min-width:0}
.field>label:not(.consent),.field legend{display:block;font-weight:600;color:var(--title);font-size:.92rem;margin-bottom:.45rem;padding:0}
.req{color:var(--boulevard)}
.hint{font-size:.85rem;margin:-.15rem 0 .55rem}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
input[type=text],input[type=tel],input[type=email],select,textarea{width:100%;font:inherit;font-size:.98rem;color:var(--title);background:var(--ivory);border:1px solid #D9CEC1;border-radius:4px;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--boulevard);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 45%,transparent)}
textarea{min-height:130px;resize:vertical}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text) 50%),linear-gradient(135deg,var(--text) 50%,transparent 50%);background-position:calc(100% - 20px) 52%,calc(100% - 15px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.5rem}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}
.choice label{display:flex;gap:.6rem;align-items:center;border:1px solid #D9CEC1;border-radius:4px;padding:.8rem .9rem;cursor:pointer;background:var(--ivory);color:var(--title);font-size:.92rem}
.choice label:has(input:checked){border-color:var(--boulevard);box-shadow:inset 0 0 0 1px var(--boulevard);background:var(--bisque-soft)}
.choice input,.consent input{accent-color:var(--boulevard);margin:0}
.address{display:none}
.address.show{display:grid}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;margin:.3rem 0 .4rem}
.consent input{margin-top:.3rem}
.privacy-box{font-size:.78rem;line-height:1.6;background:var(--ivory);border:1px solid var(--line);border-radius:4px;padding:.8rem 1rem;margin:0 0 1.4rem}
.privacy-box p{margin:0;max-width:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.error{display:none;color:#A1262C;font-size:.84rem;margin-top:.35rem}
.invalid .error{display:block}
.invalid input,.invalid select{border-color:#A1262C}
[data-theme="dark"] .error{color:#F4ABAE}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .error{color:#F4ABAE}}
.done{display:none}
.done.show{display:block}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:2.5rem}.form{padding:1.6rem}}
@media (max-width:600px){.row2,.choice{grid-template-columns:1fr}}

/* Footer */
footer{background:#3F3B41;color:#DDD6CE;padding:4.8rem 0 2.5rem;font-size:.9rem}
.foot{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:3rem}
.foot img{height:62px;width:auto;filter:brightness(0) invert(1);opacity:.92;margin-bottom:1.2rem}
.foot .ft{font-family:var(--sans);font-size:.76rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#FAF6EF;margin-bottom:1.1rem}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.55rem}
.foot a{color:#F1EBE3;text-decoration:none}
.foot a:hover{text-decoration:underline}
.tagline{font-family:var(--serif);font-style:italic;font-size:1.4rem;color:#FAF6EF}
.legal{margin-top:3.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.8rem}
@media (max-width:900px){.foot{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.foot{grid-template-columns:1fr}}


@media (prefers-reduced-motion:no-preference){
  .hero-photo{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
    @keyframes rise{from{opacity:0;transform:translate(-50%,32px)}to{opacity:1;transform:translate(-50%,0)}}
}

/* Páginas interiores */
.page-head{padding:4.5rem 0 2rem}
.page-head h1{font-size:clamp(2.4rem,5vw,3.6rem)}
.legal-page{max-width:780px;padding-bottom:6rem}
.legal-page h2{font-size:clamp(1.5rem,2.4vw,1.9rem);margin-top:2.6rem}
.legal-page h3{font-size:1.25rem;margin-top:2rem}
.legal-page p,.legal-page li{max-width:none}
.legal-page ul{padding-left:1.2rem}
.legal-page table{width:100%;border-collapse:collapse;margin:1.2rem 0 1.6rem;font-size:.92rem}
.legal-page .tbl{overflow-x:auto}
.legal-page th,.legal-page td{text-align:left;vertical-align:top;padding:.7rem .8rem;border-bottom:1px solid var(--line)}
.legal-page th{color:var(--title);font-weight:600;background:var(--bisque-soft)}
.legal-page a{color:var(--title)}
.legal-page .legal-data{display:block;width:min(551px,100%);height:auto;margin:1.2rem 0 .4rem}
.pending{background:#FFF1C9;color:#5A4500;padding:0 .3em;border-radius:3px}
.state-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto 1.4rem}
.state-icon.ok{background:var(--blue);color:#2F2C33}
.state-icon.ko{background:var(--bisque);color:#2F2C33}
.thanks{text-align:center;padding:7rem 0}
.thanks p{margin-inline:auto}
/* Aviso de cookies */
.cookie-bar{position:fixed;left:1rem;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:90;max-width:560px;margin-left:auto;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 60px -30px rgba(63,59,65,.55);padding:1.3rem 1.4rem;font-size:.92rem;display:none}
.cookie-bar.show{display:block}
.cookie-bar p{margin:0 0 1rem}
.cookie-bar .btn-row{margin-top:0;gap:.6rem}
.cookie-bar .btn{padding:.85rem 1.2rem}
.foot .social{display:flex;flex-wrap:nowrap;gap:.6rem;margin:.2rem 0 .9rem}
.foot .social a{flex:none;width:42px;height:42px;border:1px solid rgba(250,246,239,.35);border-radius:50%;display:grid;place-items:center;color:#FAF6EF;transition:background .2s,border-color .2s,color .2s}
.foot .social a:hover{background:#FAF6EF;border-color:#FAF6EF;color:#3F3B41;text-decoration:none}
.linklike{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}

/* Páginas de servicio */
.svc-hero{padding:3.2rem 0 5.5rem;border-bottom:1px solid var(--line)}
.svc-hero .grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:center}
.svc-hero h1{font-size:clamp(2.2rem,4.4vw,3.5rem)}
.svc-hero .lead{font-size:1.1rem;max-width:52ch}
.crumbs{font-size:.86rem;margin-bottom:1.6rem;color:var(--text)}
.crumbs a{color:inherit}
.photo-frame{position:relative;max-width:470px;width:100%;margin-left:auto}
.photo-frame::before{content:"";position:absolute;right:-20px;bottom:-20px;width:72%;height:72%;background:var(--blue);border-radius:3px;z-index:0}
.photo-frame img{position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.photo-frame.alt{margin-left:0;margin-right:auto}
.photo-frame.alt::before{right:auto;left:-20px;background:var(--bisque)}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:4.5rem;align-items:center}
.two-col.rev{grid-template-columns:1.1fr .9fr}
.note-card{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:2rem}
.note-card h3{margin-bottom:1rem}
.checks.one{grid-template-columns:1fr;margin-top:0}
.inc{list-style:none;padding:0;margin:1.8rem 0 0;display:grid;gap:1.4rem}
.inc li{padding-left:1.3rem;border-left:2px solid var(--blue)}
.inc strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.25rem;color:var(--title);margin-bottom:.25rem}
.steps.four{grid-template-columns:repeat(4,1fr)}
.result-band{background:var(--blue)}
.result{max-width:760px;text-align:center}
.result h2{color:#2F2C33}
.result p{margin-inline:auto;color:#3F3B41;font-size:1.08rem}
.result .zone{font-size:.95rem}
.result .btn-row{justify-content:center}
.result .btn{background:#3F3B41;border-color:#3F3B41;color:#FAF6EF}
.services.related{grid-template-columns:repeat(3,1fr)}
.services.related .service{grid-column:auto!important}
@media (max-width:900px){
  .svc-hero .grid,.two-col,.two-col.rev{grid-template-columns:1fr;gap:3rem}
  .photo-frame{margin:0 auto;max-width:380px}
  .photo-frame.alt{margin:0 auto}
  .steps.four{grid-template-columns:1fr 1fr}
  .services.related{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){.steps.four,.services.related{grid-template-columns:1fr}}

/* Colorimetría */
.seasons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.seasons-grid.three{grid-template-columns:repeat(3,1fr)}
.season-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.4rem;text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.season-card:hover{transform:translateY(-3px);box-shadow:0 24px 48px -34px rgba(63,59,65,.5)}
.season-card .strip{display:flex;height:64px;border-radius:4px;overflow:hidden;margin-bottom:1.1rem}
.season-card .strip i{flex:1}
.season-card h3{margin-bottom:.3rem}
.season-card p{font-size:.95rem;flex:1;margin-bottom:1rem}
.season-card .more{align-self:flex-start}
.pal{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.pal li{font-size:.85rem;color:var(--title)}
.pal span{display:block;aspect-ratio:1;border-radius:4px;margin-bottom:.45rem;box-shadow:inset 0 0 0 1px rgba(63,59,65,.12)}
.season-hero{max-width:470px;margin-left:auto;width:100%}
.season-hero{position:relative}
.season-hero .stripes{display:flex;height:min(440px,60vw);border-radius:6px;overflow:hidden;box-shadow:0 30px 60px -40px rgba(63,59,65,.6)}
.season-hero .stripes i{flex:1}
.season-tag{position:absolute;left:-1.2rem;bottom:1.6rem;background:var(--ivory);font-family:var(--serif);font-size:1.6rem;color:var(--title);padding:.5rem 1.2rem;border-radius:3px;box-shadow:0 14px 30px -20px rgba(63,59,65,.5)}
.traits{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.traits li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.6rem}
.traits strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.35rem;color:var(--title);margin-bottom:.4rem}
.note-card h3 + p{margin-bottom:1.4rem}
.checks.tips{grid-template-columns:repeat(3,1fr);gap:1rem 2rem;margin-top:0}
@media (max-width:980px){.seasons-grid{grid-template-columns:1fr 1fr}}
@media (max-width:900px){.traits,.checks.tips,.seasons-grid.three{grid-template-columns:1fr}.season-hero{margin:0 auto}}
@media (max-width:560px){.seasons-grid{grid-template-columns:1fr}.pal{grid-template-columns:repeat(4,1fr);gap:.6rem}.pal li{font-size:.72rem}}

/* Sobre mí, contacto, tarjeta regalo, landings locales */
.local-hero .crumbs{margin-bottom:1.2rem}
.hero h1.display{font-family:var(--serif);font-size:clamp(2.8rem,5.6vw,4.9rem);line-height:1.02;letter-spacing:-.02em;text-transform:none;max-width:none;color:#2F2C33;margin:0 0 1.4rem}
.hero h1.display em{font-style:italic}
.values{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem}
.values li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.5rem;font-size:.92rem}
.values strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.35rem;color:var(--title);margin-bottom:.5rem}
.contact-page{padding-top:4rem}
.contact-page h1{font-size:clamp(2.2rem,4vw,3.2rem)}
.gift-hero{display:grid;place-items:center;padding:1rem}
.services.related.two{grid-template-columns:repeat(2,1fr);max-width:820px;margin:2.6rem auto 0}
.vform textarea{min-height:110px}
.benefits{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.benefits li{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.6rem}
.benefits strong{display:block;font-family:var(--serif);font-weight:400;font-size:1.3rem;color:var(--title);margin-bottom:.45rem}
.zones{list-style:none;padding:0;margin:1.6rem 0 0;display:flex;flex-wrap:wrap;gap:.5rem}
.zones li{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:.45rem .9rem;font-size:.88rem;color:var(--title)}
.zones a{color:inherit;text-decoration:none}
.defs{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.defs h3{margin-bottom:.6rem}
@media (max-width:1100px){.values{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.values,.benefits{grid-template-columns:1fr 1fr}.defs{grid-template-columns:1fr}.services.related.two{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.values,.benefits,.services.related.two{grid-template-columns:1fr}}

.zones-sub{font-size:1.3rem;margin:2.4rem 0 .2rem}
.zone-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.zone-cols.two{grid-template-columns:1fr 1fr}
.zone-col{background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1.6rem}
.zone-col h3{margin-bottom:1rem}
.zone-col ul{list-style:none;padding:0;margin:0;columns:2;column-gap:1.2rem}
.zone-cols:not(.two) .zone-col ul{columns:1}
.zone-col li{margin-bottom:.45rem;font-size:.95rem;break-inside:avoid}
.zone-col a{color:var(--title)}
@media (max-width:980px){.zone-cols{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.zone-cols,.zone-cols.two{grid-template-columns:1fr}}

/* Móvil: foto de la portada primero y botón de reserva arriba del menú */
@media (max-width:900px){
  .hero .hero-art{order:-1;min-height:420px;margin:0 0 1.6rem}
  .hero .hero-copy{padding-top:0}
  .nav .btn{order:-1;margin:.6rem 0 .9rem;width:100%;text-align:center}
}
