@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500&display=swap');
:root{--paper:#faf6ed;--ink:#30221d;--muted:#705b50;--wine:#692c3f;--line:#dfd2c2;--serif:"Playfair Display",Georgia,serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "DM Sans",system-ui,sans-serif}
img{max-width:100%;display:block;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
.wrap{width:min(1160px,calc(100% - 72px));margin-inline:auto}
.header{min-height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:18px}
.brand img{border-radius:50%}
nav{display:flex;gap:32px;color:var(--muted);font-weight:600}
nav a:hover,.text-link:hover{color:#9c445f}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:6px;padding:13px 20px;color:#fff8ee;background:var(--wine);font-weight:700;text-align:center}
.button:hover{background:#50202f}.button.small{padding:9px 14px;font-size:.86rem}
.text-link{border:0;background:none;color:var(--wine);padding:0;font-weight:700;text-underline-offset:5px;text-align:left}
.text-link:hover{text-decoration:underline}
.hero{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;padding-block:52px 75px}
.hero-copy{padding-block:24px}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.19em;text-transform:uppercase;color:var(--wine);margin:0 0 14px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.08;margin:0}
h1{font-size:clamp(3.4rem,7vw,6.3rem);letter-spacing:-.07em}
h2{font-size:clamp(2.3rem,5vw,4.1rem);letter-spacing:-.048em}
h3{font-size:1.55rem}
em{color:var(--wine);font-weight:500}
.lead{font-size:1.14rem;max-width:450px}
p{color:var(--muted)}
.actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:28px}
figure{margin:0}
.hero-photo{position:relative;background:#e9dacb;overflow:hidden;border-radius:48% 48% 7px 7px / 25% 25% 7px 7px}
.hero-photo img{width:100%;height:clamp(370px,43vw,550px);object-position:center 38%}
.hero-photo figcaption{position:absolute;inset:auto 0 0;padding:25px 20px 14px;color:white;background:linear-gradient(transparent,#24170ed9);font-size:.88rem}
.occasion,.products,.gallery{padding-block:58px 80px}
.occasion{border-top:1px solid var(--line)}
.section-title{margin-bottom:28px;max-width:660px}
.occasions,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.occasions article,.card{background:#fffaf3;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.occasions article,.card-body{padding:24px}
.occasions article>span{display:none}
.card img{width:100%;height:255px}
.card p{min-height:3.3em}
.film{background:#382524;color:#fff7eb;padding-block:55px}
.film-grid,.story-grid,.order-grid{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.film .eyebrow,.film em,.film p{color:#f0d5ca}

.button.light{background:#f2dbcc;color:#492439}
.button.light:hover{background:#fff0e6}
.story,.order{background:#efe4d3;padding-block:65px}
.story img{border-radius:9px;width:min(100%,380px);height:auto;justify-self:center}
.gallery-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:22px}
.gallery-nav{display:flex;gap:6px}
.gallery-nav button{border:1px solid var(--line);border-radius:100%;background:transparent;color:var(--wine);width:42px;height:42px}
.gallery-nav button:hover{background:#efe4d3}
.rail{display:flex;gap:16px;overflow:auto;scroll-snap-type:x mandatory;scrollbar-color:#b19a8e transparent;padding-bottom:10px}
.rail figure{flex:0 0 calc((100% - 48px)/4);scroll-snap-align:start;background:#fffaf3;border-radius:8px;overflow:hidden}
.rail img{width:100%;aspect-ratio:4/5}
.rail figcaption{padding:10px 12px;font-size:.85rem;color:var(--muted)}
.faq h3{margin-bottom:14px}
details{padding:11px 0;border-bottom:1px solid #d7c5b3}
summary{font-weight:600;cursor:pointer}
details p{margin:8px 0}
.footer{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding-block:22px;font-size:.9rem}
.footer small{margin-left:auto;color:var(--muted)}
dialog{width:min(480px,calc(100% - 32px));border:1px solid var(--line);border-radius:12px;padding:28px;background:var(--paper);color:var(--ink)}
dialog::backdrop{background:#21140fb3}
dialog h2{font-size:2rem}
.close{float:right;border:0;background:none;color:var(--wine);font-size:1.5rem}
blockquote{margin:14px 0 20px;border-left:3px solid var(--wine);padding:8px 14px;background:#efe4d3;color:var(--ink)}
:focus-visible{outline:2px solid #a04a63;outline-offset:4px}
@media(max-width:760px){
.wrap{width:calc(100% - 36px)}.header{min-height:78px}.brand img{width:57px;height:57px}nav{display:none}
.hero,.film-grid,.story-grid,.order-grid{grid-template-columns:1fr;gap:24px}
.hero{padding-block:24px 42px}.hero-copy{padding-block:16px}.hero-photo img{height:390px}
.occasions,.cards{grid-template-columns:1fr;gap:13px}.card p{min-height:0}.card img{height:235px}
.occasion,.products,.gallery,.story,.order,.film{padding-block:43px}
.film-grid video{order:2}.rail figure{flex-basis:72%}
.gallery-nav button{width:33px;height:33px}.footer{gap:10px 15px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.brand{display:inline-flex;align-items:center;gap:11px;line-height:1}
.brand span{display:grid;gap:5px}
.brand small{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:.64rem}
.brand strong{font:600 1.55rem/1 var(--serif)}
.hero-photo img{object-position:center 51%}
.birthday{padding-block:65px 0}

@media(max-width:760px){.brand{gap:6px}.brand strong{font-size:1.25rem}.brand small{font-size:.56rem}.header{gap:8px}.button.small{padding:8px 10px}.birthday{padding-top:44px}}

.film-grid video,.testimonial-grid video{display:block;width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:9px}
.film-grid video{max-width:330px;justify-self:center}
.testimonials{padding-block:58px 70px;border-top:1px solid var(--line)}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:930px}
.testimonial-grid figcaption{margin-top:8px;color:var(--muted);font-size:.9rem}
@media(max-width:760px){
  .film-grid video{max-width:none}
  .testimonials{padding-block:43px}
  .testimonial-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:12px}
  .testimonial-grid figure{flex:0 0 82%;scroll-snap-align:start}
}
.reasons{padding-bottom:64px}
@media(max-width:760px){.reasons{padding-bottom:43px}}

.occasion .occasions{align-items:start}
.occasion-video{padding:0;border:0}
.occasion-video summary{width:fit-content}
.occasion-video video{display:block;width:100%;max-width:350px;aspect-ratio:9/16;margin:14px auto 0;border-radius:8px;object-fit:cover}

.whatsapp-float{position:fixed;z-index:5;right:max(16px,env(safe-area-inset-right));bottom:calc(18px + env(safe-area-inset-bottom));display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#177044;color:white;box-shadow:0 4px 15px #30221d40}
.whatsapp-float:hover{background:#105635}
@media(max-width:760px){.occasion-card{padding:18px 20px}.occasion-card p{margin:8px 0 12px}.footer{padding-right:66px}}



@media(prefers-reduced-motion:no-preference){
  .card-enter{--entry-x:-24px;--return-x:-10px;animation:card-enter .5s ease-out}
  .card-enter:nth-child(even){--entry-x:24px;--return-x:10px}
  .card-enter.has-entered{animation-name:card-return;animation-duration:.34s}
  .whatsapp-float{animation:whatsapp-float 4.8s ease-in-out infinite}
  .whatsapp-float:is(:hover,:focus-visible){animation-play-state:paused}
  @supports (animation-timeline:view()){
    .hero-photo img{animation:photo-scroll linear both;animation-timeline:view();animation-range:exit 0% exit 100%}
    .story-grid img{animation:photo-scroll linear both;animation-timeline:view()}
  }
}
@keyframes card-enter{from{opacity:.65;transform:translateX(var(--entry-x))}to{opacity:1;transform:translateX(0)}}
@keyframes card-return{from{opacity:.85;transform:translateX(var(--return-x))}to{opacity:1;transform:translateX(0)}}
@keyframes whatsapp-float{0%,55%,100%{transform:translateY(0)}75%{transform:translateY(-5px)}}
@keyframes photo-scroll{from{scale:1}to{scale:1.035}}

.occasion-video:not([open]) .video-collapse,.occasion-video[open] .video-expand{display:none}
