:root { --paper:#f4f1eb; --ink:#1f1d1a; --muted:#817b72; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Mono", monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.hero { min-height:100svh; position:relative; color:#fff; overflow:hidden; }
.hero-image, .veil { position:absolute; inset:0; width:100%; height:100%; }
.hero-image { object-fit:cover; object-position:center 44%; filter:saturate(.72) brightness(.66); }
.veil { background:linear-gradient(180deg,rgba(20,17,14,.23),rgba(20,17,14,.06) 40%,rgba(20,17,14,.4)); }
.topbar { display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; padding:26px 30px; }
.monogram { color:#fff; text-decoration:none; font:500 20px/1 "Cormorant Garamond",serif; letter-spacing:.15em; }
.menu { cursor:pointer; width:30px; padding:6px 0; border:0; background:transparent; display:grid; gap:5px; }
.menu span { height:1px; display:block; background:#fff; }
.menu.is-open span:first-child { transform:translateY(3px) rotate(45deg); }.menu.is-open span:last-child { transform:translateY(-3px) rotate(-45deg); }
.site-menu { position:absolute; z-index:3; top:0; right:0; width:min(430px,100%); min-height:100svh; padding:100px 50px; background:#26221e; transform:translateX(100%); transition:transform .45s cubic-bezier(.77,0,.18,1); display:flex; flex-direction:column; gap:17px; }.site-menu.is-open { transform:translateX(0); }.site-menu a { color:#f4f1eb; text-decoration:none; font:400 clamp(41px,5vw,65px)/.9 "Cormorant Garamond",serif; letter-spacing:-.02em; text-transform:none; }.site-menu a:hover { color:#c6b8a5; }
.hero-title { position:absolute; z-index:1; top:50%; width:100%; transform:translateY(-45%); text-align:center; padding:20px; }
h1,h2,h3,p { margin:0; }
h1 { font:400 clamp(53px,8.4vw,143px)/.9 "Cormorant Garamond",serif; letter-spacing:.13em; text-transform:uppercase; }
.hero-title p { margin-top:22px; font-size:9px; letter-spacing:.42em; }
.scroll { position:absolute; z-index:1; bottom:30px; left:50%; transform:translateX(-50%); color:#fff; text-decoration:none; font-size:9px; display:grid; gap:12px; text-align:center; }
.scroll i { font-size:19px; font-style:normal; }
.intro { max-width:1050px; padding:160px 45px 120px; margin:auto; text-align:center; }
.eyebrow { color:var(--muted); font-size:9px; letter-spacing:.22em; }
h2 { margin:27px 0; font:400 clamp(44px,6vw,90px)/.9 "Cormorant Garamond",serif; text-transform:none; letter-spacing:-.025em; }
.intro-copy { max-width:385px; margin:0 auto; color:#6e6961; font:10px/1.9 "DM Mono",monospace; letter-spacing:.06em; text-transform:none; }
.services { padding:150px 30px; background:#e2ddd3; text-align:center; }.services h2 { margin-bottom:22px; }.services-lead { max-width:420px; margin:0 auto; color:#6e6961; font:10px/1.9 "DM Mono",monospace; text-transform:none; letter-spacing:.06em; }.service-links { width:min(760px,100%); margin:65px auto 0; border-top:1px solid #c8c0b5; }.service-links a { color:var(--ink); padding:19px 0; border-bottom:1px solid #c8c0b5; display:grid; grid-template-columns:50px 1fr auto; text-align:left; text-decoration:none; font:400 31px/1 "Cormorant Garamond",serif; letter-spacing:-.02em; text-transform:none; }.service-links a span { color:var(--muted); font:8px/3 "DM Mono",monospace; letter-spacing:.08em; }.service-links a b { font:20px/1 "Cormorant Garamond",serif; font-weight:400; }.service-detail { min-height:63vh; padding:130px max(8vw,30px); display:flex; flex-direction:column; justify-content:center; }.service-detail > p:not(.eyebrow) { max-width:530px; color:#6e6961; font:11px/2 "DM Mono",monospace; text-transform:none; letter-spacing:.04em; }.service-detail a,.reserve-button { width:max-content; color:var(--ink); text-decoration:none; margin-top:32px; padding:0 0 7px; border:0; border-bottom:1px solid #b5aca0; background:transparent; font:9px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }.service-detail a span,.reserve-button span { padding-left:19px; font-size:14px; }.service-actions { display:flex; flex-wrap:wrap; gap:28px; }.dark-detail { color:#eeeae3; background:#292520; }.dark-detail .eyebrow,.dark-detail > p:not(.eyebrow) { color:#c6bdb0; }.dark-detail a,.dark-detail .reserve-button { color:#eeeae3; border-color:#817b72; }
.gallery { width:min(1280px,calc(100% - 80px)); margin:0 auto; padding-bottom:170px; display:grid; grid-template-columns:repeat(3,1fr); align-items:start; gap:28px; }
.story { color:inherit; text-decoration:none; display:block; }.story img { width:100%; aspect-ratio: .7; object-fit:cover; display:block; filter:saturate(.78); }.story:hover img { opacity:.82; }
.story:nth-child(2) img { object-position:center; filter:grayscale(1) contrast(.95); }
.story.offset { padding-top:92px; }
.story div { padding-top:16px; }.story p { color:var(--muted); font-size:8px; }.story h3 { font:400 25px/1.1 "Cormorant Garamond",serif; letter-spacing:0; text-transform:none; margin-top:8px; }
.about { background:#26221e; color:#eeeae3; min-height:62vh; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:110px 20px; }.about .eyebrow { color:#b8aea1; }.about h2 { margin-bottom:38px; }.contact-form-wrap { width:min(550px,100%); margin-top:75px; text-align:left; }.contact-form-wrap > .eyebrow { text-align:center; margin-bottom:22px; }.contact-form { display:grid; gap:16px; }.contact-form label { display:grid; gap:8px; color:#b8aea1; font-size:8px; }.wedding-fields { display:grid; gap:16px; }.contact-form input,.contact-form select,.contact-form textarea { width:100%; color:#eeeae3; border:0; border-bottom:1px solid #817b72; outline:0; background:transparent; padding:7px 0; border-radius:0; font:10px/1.5 "DM Mono",monospace; letter-spacing:.03em; }.contact-form textarea { resize:vertical; }.contact-form ::placeholder { color:#91887d; }.contact-form button { justify-self:center; cursor:pointer; margin-top:15px; color:#eeeae3; border:0; border-bottom:1px solid #817b72; padding:0 0 8px; background:transparent; font:9px "DM Mono",monospace; letter-spacing:.12em; text-transform:uppercase; }.contact-form button span { padding-left:20px; font-size:14px; }.no-scroll { overflow:hidden; }.booking-modal { display:none; position:fixed; z-index:20; inset:0; background:rgba(21,18,15,.65); padding:25px; align-items:center; justify-content:center; }.booking-modal.is-open { display:flex; }.booking-panel { position:relative; width:min(900px,100%); height:min(88svh,760px); padding:38px; background:var(--paper); animation:booking-in .3s ease-out; }.booking-panel h2 { font-size:42px; margin:14px 0 25px; }.booking-close { position:absolute; right:22px; top:18px; color:var(--ink); border:0; background:transparent; font:31px/1 "Cormorant Garamond",serif; cursor:pointer; }.booking-frame-wrap,.booking-frame-wrap iframe { width:100%; height:calc(100% - 90px); border:0; }.booking-placeholder { height:100%; display:flex; align-items:center; justify-content:center; text-align:center; color:#6e6961; font:11px/1.8 "DM Mono",monospace; text-transform:none; letter-spacing:.03em; }.booking-placeholder strong { margin:0 4px; color:var(--ink); }@keyframes booking-in { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
footer { display:flex; justify-content:space-between; gap:20px; padding:23px 30px; color:#817b72; font-size:8px; background:#26221e; }
@media (max-width:700px) { .topbar { padding:21px 18px; }.site-menu { width:100%; padding:105px 30px; }.hero-title p { letter-spacing:.23em; }.intro { padding:100px 27px 74px; }.services { padding:100px 27px; }.service-links { margin-top:45px; }.service-links a { font-size:27px; grid-template-columns:38px 1fr auto; }.service-detail { min-height:58vh; padding:95px 27px; }.service-actions { gap:20px; }.gallery { width:calc(100% - 38px); grid-template-columns:1fr; gap:55px; padding-bottom:100px; }.story.offset { padding-top:0; }.story img { aspect-ratio:.76; }.about { min-height:52vh; } .booking-modal { padding:0; }.booking-panel { width:100%; height:100svh; padding:76px 20px 20px; }.booking-panel h2 { font-size:35px; }.booking-frame-wrap,.booking-frame-wrap iframe { height:calc(100% - 75px); } footer { padding:20px 18px; flex-direction:column; } }

/* Galería interna */
.gallery-page { background:#eeebe4; }.gallery-header { height:112px; padding:25px 30px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid #d9d3ca; }.gallery-mark { color:var(--ink); }.gallery-header-title { text-align:center; }.gallery-header-title p { color:var(--muted); font-size:8px; margin-bottom:5px; }.gallery-header h1 { font-size:29px; letter-spacing:.08em; }.back { justify-self:end; color:var(--ink); text-decoration:none; font-size:9px; }.back span { padding-left:10px; font-size:14px; }.story-opening { min-height:44vh; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:65px 20px; text-align:center; }.story-opening p { max-width:350px; font:400 clamp(30px,4vw,54px)/.98 "Cormorant Garamond",serif; letter-spacing:-.02em; text-transform:none; }.story-opening span { color:var(--muted); font-size:8px; margin-top:32px; }.photo-story { overflow:hidden; }.photo { margin:0; }.photo img { width:100%; display:block; }.photo.full { width:100%; }.photo-pair { width:min(1060px,calc(100% - 12vw)); margin:13vw auto; display:grid; align-items:start; grid-template-columns:1.05fr .8fr; gap:8vw; }.photo-pair.reverse { grid-template-columns:.8fr 1.05fr; }.photo.down { margin-top:20vw; }.photo.wide { width:min(1240px,calc(100% - 8vw)); margin:0 auto 13vw; }.photo.portrait-last { width:min(530px,calc(100% - 23vw)); margin:0 auto 14vw; }.story-end { background:#26221e; min-height:45vh; display:flex; flex-direction:column; justify-content:center; align-items:center; color:#eeeae3; }.story-end p { font:400 clamp(36px,5vw,70px)/1 "Cormorant Garamond",serif; letter-spacing:.06em; text-transform:uppercase; }.story-end a { color:#eeeae3; text-decoration:none; border-bottom:1px solid #817b72; padding-bottom:8px; margin-top:30px; font-size:8px; }.story-end span { padding-left:20px; font-size:14px; }
@media (max-width:700px) { .gallery-header { height:78px; padding:17px 18px; }.gallery-header h1 { font-size:20px; }.gallery-header-title p { font-size:7px; }.back { font-size:8px; }.story-opening { min-height:40vh; }.photo-pair,.photo-pair.reverse { width:calc(100% - 38px); grid-template-columns:1fr; gap:45px; margin:80px auto; }.photo.down { margin-top:0; }.photo.wide { width:calc(100% - 22px); margin-bottom:80px; }.photo.portrait-last { width:calc(100% - 76px); margin-bottom:80px; } }

/* Índice de historias */
.stories-page { background:#f4f1eb; }.stories-list { width:min(1500px,calc(100% - 10vw)); margin:0 auto; padding-bottom:170px; }.stories-intro { min-height:36vh; display:flex; align-items:center; justify-content:center; text-align:center; }.stories-intro p { max-width:430px; font:400 clamp(31px,4vw,55px)/.95 "Cormorant Garamond",serif; letter-spacing:-.02em; text-transform:none; }.wedding-card { width:59%; margin:0 0 14vw; }.wedding-card.card-offset { width:56%; margin-left:auto; }.wedding-link { color:var(--ink); text-decoration:none; display:block; }.wedding-link img { display:block; width:100%; aspect-ratio:.82; object-fit:cover; filter:saturate(.78); transition:opacity .3s; }.wedding-card:nth-of-type(3) img { aspect-ratio:1.32; }.wedding-link:hover img { opacity:.8; }.wedding-caption { padding:20px 0 0; text-align:center; }.wedding-caption p { color:var(--muted); font-size:8px; }.wedding-caption h2 { margin:8px 0 14px; font-size:clamp(39px,5vw,72px); letter-spacing:-.02em; }.wedding-caption span { color:#6e6961; font-size:8px; padding-bottom:5px; border-bottom:1px solid #aaa297; }
@media (max-width:700px) { .stories-list { width:calc(100% - 38px); padding-bottom:100px; }.stories-intro { min-height:31vh; }.wedding-card,.wedding-card.card-offset { width:100%; margin:0 0 80px; }.wedding-link img,.wedding-card:nth-of-type(3) img { aspect-ratio:.8; }.wedding-caption h2 { font-size:42px; } }

/* Página de mascotas */
.pets-feature { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(260px,.72fr); align-items:center; gap:10vw; }.pets-feature .wedding-card { width:100%; margin:0; }.pets-copy { padding-bottom:65px; }.pets-copy h2 { margin:25px 0; font-size:clamp(39px,4.2vw,65px); }.pets-copy > p:last-child { max-width:360px; color:#6e6961; font:11px/2 "DM Mono",monospace; letter-spacing:.035em; text-transform:none; }
@media (max-width:700px) { .pets-feature { grid-template-columns:1fr; gap:15px; }.pets-feature .wedding-card { margin:0; }.pets-copy { padding:0 0 75px; }.pets-copy h2 { font-size:43px; } }

/* Historia individual */
.couple-cover { width:100%; max-height:100svh; overflow:hidden; }.couple-cover img { width:100%; height:100%; max-height:100svh; object-fit:cover; object-position:center 48%; display:block; }.couple-story-intro { min-height:37vh; display:flex; align-items:center; justify-content:center; padding:40px 20px; text-align:center; }.couple-story-intro p { font:400 clamp(34px,4vw,58px)/.96 "Cormorant Garamond",serif; letter-spacing:-.02em; text-transform:none; }.couple-wide { width:min(1240px,calc(100% - 10vw)); margin:0 auto 11vw; }.couple-portrait { width:min(660px,calc(100% - 26vw)); margin:0 auto 13vw; }
@media (max-width:700px) { .couple-cover { height:78svh; }.couple-cover img { height:100%; }.couple-story-intro { min-height:30vh; }.couple-wide { width:calc(100% - 22px); margin-bottom:70px; }.couple-portrait { width:calc(100% - 68px); margin-bottom:75px; } }

/* Historia de Aria */
.aria-cover { width:100%; height:min(100svh,1100px); overflow:hidden; }.aria-cover img { width:100%; height:100%; object-fit:cover; object-position:center 32%; display:block; }.aria-portrait { width:min(720px,calc(100% - 24vw)); margin:0 auto 12vw; }.aria-story .couple-story-intro { background:#f4f1eb; }
.aria-wide { width:min(1240px,calc(100% - 10vw)); margin:0 auto 12vw; }
@media (max-width:700px) { .aria-cover { height:78svh; }.aria-portrait { width:calc(100% - 62px); margin-bottom:75px; }.aria-wide { width:calc(100% - 22px); margin-bottom:75px; } }
