@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@1,500&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f0e9;color:#171717;font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}.nav{position:fixed;z-index:20;top:0;width:100%;height:82px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;color:#fff;transition:.3s}.nav.scrolled{background:rgba(18,18,18,.94);backdrop-filter:blur(10px)}.brand img{display:block;width:145px;max-height:55px;object-fit:contain;filter:invert(1)}.nav nav{display:flex;gap:27px;align-items:center;font-size:13px}.nav-cta{border:1px solid #fff;padding:10px 17px;border-radius:30px}.menu{display:none;background:none;border:0;color:#fff;font-size:25px}.hero{height:100svh;min-height:650px;position:relative;color:#fff;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;animation:slowzoom 16s ease-out forwards}.shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.12)),linear-gradient(0deg,rgba(0,0,0,.3),transparent 60%)}@keyframes slowzoom{to{transform:scale(1.06)}}.hero-copy{position:absolute;left:7vw;bottom:11vh;max-width:800px}.eyebrow{font-size:12px;letter-spacing:.25em;font-weight:600}.dark{color:#777}.hero h1,.section-head h2,.intro h2,.about h2,.quote h2{font-size:clamp(42px,6vw,86px);line-height:.98;letter-spacing:-.045em;margin:18px 0 25px;font-weight:400}.hero h1 em,h2 em{font-family:'Playfair Display',serif;font-weight:500}.hero-copy>p:not(.eyebrow){font-size:17px;max-width:560px}.actions{display:flex;gap:12px;margin-top:35px}.actions a{padding:14px 22px;background:#fff;color:#111;border-radius:30px;font-size:13px;font-weight:600}.actions .ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.65)}.intro{padding:130px 7vw;max-width:1200px}.intro h2{font-size:clamp(38px,5vw,70px)}.categories{padding:0 5vw 130px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.card{height:680px;position:relative;overflow:hidden;color:#fff}.card img{width:100%;height:100%;object-fit:cover;transition:.7s}.card:hover img{transform:scale(1.035)}.card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.65),transparent 55%)}.card div{position:absolute;z-index:2;bottom:30px;left:30px}.card span{font-size:11px}.card h3{font-size:42px;margin:7px 0}.card p{margin:0;opacity:.85}.film{background:#111;color:#fff;padding:120px 7vw}.section-head{max-width:950px}.section-head h2{font-size:clamp(42px,5vw,72px)}.film video{display:block;width:min(1100px,100%);margin:55px auto 0;max-height:76vh;background:#000}.gallery{padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.gallery img{width:100%;height:72vh;object-fit:cover}.packages{padding:130px 7vw}.lead{font-size:17px;color:#666;max-width:650px;line-height:1.7}.package-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:65px}.package{position:relative;border:1px solid #d2d2d2;padding:38px;min-height:440px;display:flex;flex-direction:column}.package.featured{background:#171717;color:#fff;border-color:#171717}.badge{position:absolute;top:0;right:0;padding:9px 13px;background:#fff;color:#111;font-size:10px;letter-spacing:.14em}.package>span{font-size:11px;color:#888}.package h3{font-size:36px;margin:20px 0 3px}.package .tag{margin-top:0;color:#888}.package ul{padding-left:18px;line-height:2;color:#666}.package.featured ul,.package.featured .tag{color:#bbb}.package a{margin-top:auto;border-top:1px solid #aaa;padding-top:18px;font-weight:600;font-size:13px}.services{padding:80px 7vw 130px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin-top:70px;border-top:1px solid #bbb;padding-top:35px}.service-grid b{font-size:12px;color:#888}.service-grid h3{font-size:28px}.service-grid p{line-height:1.7;color:#555}.about{padding:60px 7vw 140px;display:grid;grid-template-columns:.8fr 1fr;gap:8vw;align-items:center}.about img{width:100%;height:720px;object-fit:cover}.about h2{font-size:clamp(38px,4.5vw,65px)}.about div>p:last-child{font-size:17px;line-height:1.8;color:#555;max-width:650px}.quote{background:#171717;color:#fff;padding:120px 7vw;display:grid;grid-template-columns:.8fr 1fr;gap:8vw}.quote h2{font-size:clamp(42px,5vw,72px)}.quote-copy>p:last-child{color:#aaa;line-height:1.7;max-width:520px}.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quote-form label,.quote-form fieldset{font-size:12px;letter-spacing:.05em}.quote-form input,.quote-form select,.quote-form textarea{width:100%;margin-top:9px;background:transparent;border:0;border-bottom:1px solid #777;color:#fff;padding:12px 3px;font:inherit;outline:none}.quote-form select option{color:#111}.quote-form textarea{border:1px solid #555;padding:12px;resize:vertical}.quote-form fieldset{grid-column:1/-1;border:1px solid #555;padding:18px}.quote-form legend{padding:0 8px}.quote-form .check{display:inline-block;margin:8px 16px 8px 0;letter-spacing:0}.quote-form .check input{width:auto;margin:0}.wide{grid-column:1/-1}.quote-form button{grid-column:1/-1;border:0;border-radius:30px;padding:16px 22px;background:#fff;color:#111;font-weight:600;cursor:pointer;font-size:14px}.whatsapp{position:fixed;z-index:15;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#111;font-weight:700;box-shadow:0 5px 25px #0003}footer{background:#0c0c0c;color:#aaa;padding:35px 5vw;display:flex;align-items:center;gap:30px;justify-content:space-between;font-size:12px}footer img{width:100px;filter:invert(1);opacity:.8}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.nav{height:68px}.nav nav{display:none;position:absolute;top:68px;left:0;right:0;background:#111;padding:25px 5vw;flex-direction:column;align-items:flex-start}.nav nav.open{display:flex}.menu{display:block}.brand img{width:115px}.hero-copy{left:6vw;right:6vw;bottom:9vh}.actions{flex-wrap:wrap}.intro{padding:90px 6vw}.categories{grid-template-columns:1fr;padding:0 4vw 90px}.card{height:72vh}.film{padding:90px 5vw}.gallery{grid-template-columns:1fr;padding:8px;gap:8px}.gallery img{height:65vh}.packages{padding:90px 6vw}.package-grid,.service-grid{grid-template-columns:1fr}.services{padding:70px 6vw 90px}.about{grid-template-columns:1fr;padding:30px 6vw 90px}.about img{height:60vh}.quote{grid-template-columns:1fr;padding:90px 6vw}.quote-form{grid-template-columns:1fr}.quote-form fieldset,.wide,.quote-form button{grid-column:1}footer{gap:12px;flex-direction:column;align-items:flex-start}}

.gift{margin:12px 0 24px;padding:13px 14px;border:1px solid #d2d2d2;font-size:13px;line-height:1.45}.package.featured .gift{border-color:#555;color:#eee}.included-extra p{margin:4px 0 10px;color:#aaa;font-size:12px;letter-spacing:0}.included-extra select{margin-top:4px}.gift-note{margin:0;padding:13px 15px;border:1px solid #555;color:#ddd;font-size:13px;letter-spacing:0}
.form-note{color:#aaa;font-size:13px;line-height:1.6;margin:0;border-left:2px solid #777;padding-left:14px}

@media(min-width:801px) and (max-width:1200px){.nav nav{gap:12px;font-size:12px}.nav{padding:0 3vw}.brand img{width:120px}}
.birthday-intro{padding-top:0;padding-bottom:65px;scroll-margin-top:100px}.birthday-categories .card div a{position:relative;z-index:3}

.card[href="bodas/"]{background:#111}.card[href="bodas/"]>img{object-fit:contain;object-position:center top}.birthday-categories .card{background:#111}.birthday-categories .card>img{object-fit:contain;object-position:center top}.pack-summary{font-size:14px;line-height:1.6;color:#666;margin:5px 0 22px}.featured .pack-summary{color:#bbb}.package h4{font-size:11px;text-transform:uppercase;letter-spacing:.13em;margin:14px 0 4px}.package ul{margin:4px 0 12px;line-height:1.7}.package-grid{align-items:stretch}.package .tag{font-size:15px;line-height:1.5;min-height:45px}.package .gift{margin-top:auto}.package>a{margin-top:0}.package{padding:32px}.film video{aspect-ratio:16/9;object-fit:contain}.video-note{color:#aaa;font-size:13px;text-align:center}
/* Tarjetas con la proporción vertical de las fotografías. */
.categories .card{height:auto;aspect-ratio:2/3}.categories .card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}.categories .card:hover>img{transform:none}


/* Comentarios reales de Instagram, asociados a sus historias de XV. */
.testimonials{padding:100px 7vw 20px}
.testimonial-eyebrow{color:#555}
.testimonial-card{margin:40px 0 0;padding:clamp(24px,4vw,48px);border:1px solid #d2d2d2;background:#f7f0e9;color:#171717}
.testimonial-context{margin:0 0 20px;color:#555;font-size:12px;line-height:1.6;letter-spacing:.04em}
.testimonial-card blockquote{margin:0;max-width:950px}
.testimonial-card blockquote p{margin:0;font-family:'Playfair Display',serif;font-style:italic;font-weight:500;font-size:clamp(24px,3vw,40px);line-height:1.4;letter-spacing:-.02em}
.testimonial-card figcaption{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;margin-top:28px;padding-top:20px;border-top:1px solid #d2d2d2;font-size:13px;line-height:1.6}
.testimonial-card figcaption span{color:#555;overflow-wrap:anywhere}
.testimonial-card figcaption a{font-weight:600;text-decoration:underline;text-underline-offset:4px}
.testimonial-card figcaption a:focus-visible{outline:3px solid #555;outline-offset:5px}
.wedding>.testimonial-card{margin-top:32px}
@media(max-width:800px){.testimonials{padding:70px 6vw 0}.testimonial-card{margin-top:30px}.testimonial-card figcaption{align-items:flex-start;flex-direction:column;gap:12px}}

/* Pasos de la consulta y orientación para elegir una propuesta. */
.package-meeting-note{max-width:760px;margin:32px 0 0;color:#555;font-size:15px;line-height:1.7}
.package-meeting-note a{text-decoration:underline;text-underline-offset:4px;font-weight:600;color:#171717}
.quote-copy>.meeting-intro{color:#bbb;line-height:1.7;max-width:520px}
.consultation-steps{list-style:none;padding:0;margin:32px 0 0;max-width:520px;display:grid;gap:20px}
.consultation-steps li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:16px;padding-top:20px;border-top:1px solid #555}
.consultation-steps li>span{font-size:12px;color:#bbb;line-height:1.6}
.consultation-steps h3{font-size:15px;line-height:1.5;font-weight:500;margin:0 0 5px}
.consultation-steps p{font-size:14px;color:#bbb;line-height:1.6;margin:0}
.package-meeting-note a:focus-visible{outline:3px solid #555;outline-offset:5px}
.wedding-contact>p:not(.eyebrow){max-width:680px}
@media(max-width:800px){.package-meeting-note{font-size:14px}.consultation-steps{gap:16px}.consultation-steps li{gap:12px;padding-top:16px}}

/* Contacto por email en todas las páginas. */
footer{flex-wrap:wrap}
.footer-email{max-width:100%;overflow-wrap:anywhere;line-height:1.6}
.footer-email:hover{text-decoration:underline;text-underline-offset:4px}
.footer-email:focus-visible{outline:2px solid #fff;outline-offset:5px}

.footer-social{display:flex;flex-wrap:wrap;gap:16px;line-height:1.6}
.footer-social a:hover{text-decoration:underline;text-underline-offset:4px;color:#fff}
.footer-social a:focus-visible{outline:2px solid #fff;outline-offset:5px}

/* Base y alcance geográfico de Abadía. */
.about .about-description{font-size:17px;line-height:1.8;color:#555;max-width:650px}
.coverage-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:28px 0 0;padding:24px 0;border-top:1px solid #d2d2d2;border-bottom:1px solid #d2d2d2}
.coverage-details dt{font-size:12px;font-weight:500;color:#555;margin-bottom:8px}
.coverage-details dd{margin:0;font-size:clamp(20px,2vw,28px);line-height:1.3;letter-spacing:-.02em}
.about .coverage-description{font-size:15px;line-height:1.7;color:#555;margin-top:20px}
@media(max-width:420px){.coverage-details{gap:18px}.coverage-details dd{font-size:22px}}

.footer-location{display:grid;gap:6px;line-height:1.6}

/* Propuestas con contraste sobre el fondo claro de Abadía. */
.packages .package{background:#34383b;color:#fff;border:1px solid #34383b;box-shadow:0 12px 28px rgba(0,0,0,.12)}
.packages .package.featured{background:#171717;border-color:#171717}
.packages .package>span,.packages .package .tag,.packages .package .pack-summary,.packages .package ul{color:#d3d5d6}
.packages .package .gift{color:#f7f0e9;border-color:#747a7f;background:rgba(255,255,255,.04)}
.packages .package>a{display:block;background:#f7f0e9;color:#171717;border:0;border-radius:30px;padding:14px 18px;text-align:center;font-size:14px;line-height:1.5}
.packages .package>a:hover{background:#fff}
.packages .package>a:focus-visible{outline:3px solid #fff;outline-offset:5px}
.packages .package .badge{background:#f7f0e9;color:#171717}
/* Marca más legible y fecha independiente del calendario del teléfono. */
.nav{height:120px}.brand{display:flex;align-items:center;flex-shrink:0}.brand img{width:auto;height:100px;max-height:none}footer img{width:auto;height:140px;max-width:100%;object-fit:contain}
.quote-form input,.quote-form select,.quote-form textarea{font-size:16px;min-height:48px}.date-help{display:block;color:#bbb;font-size:12px;line-height:1.5;letter-spacing:0;margin-top:8px}.quote-form input:focus-visible{outline:2px solid #f7f0e9;outline-offset:4px}
html{scroll-padding-top:130px}
@media(max-width:800px){.nav{height:100px}.nav nav{top:100px}.brand img{height:82px;width:auto}.hero-copy{bottom:7vh}html{scroll-padding-top:110px}footer img{height:120px}}

/* Versión horizontal oficial de la marca. */
.brand img{width:250px;height:auto;max-height:110px;object-fit:contain}footer img{width:280px;height:auto;max-width:100%;opacity:1}
@media(min-width:801px) and (max-width:1200px){.brand img{width:220px}.nav nav{gap:10px}}
@media(max-width:800px){.brand img{width:200px;height:auto;max-height:88px}footer img{width:240px;height:auto}}
@media(max-width:360px){.brand img{width:180px}}

/* Acceso reconocible a WhatsApp, con espacio para el borde seguro del teléfono. */
.whatsapp{background:#fff;color:#111;width:56px;height:56px;right:max(18px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));border:1px solid #ddd;box-shadow:0 4px 18px #0004}
.whatsapp svg{display:block;width:30px;height:30px}.whatsapp:hover{background:#f7f0e9}.whatsapp:focus-visible{outline:3px solid #111;outline-offset:4px;box-shadow:0 0 0 7px #fff}.whatsapp[hidden]{display:none}
@media(max-width:800px){#inicio .actions{max-width:calc(100% - 72px)}}
