:root { --ink:#111; --paper:#fff; --quiet:#f4f4f2; --line:rgba(17,17,17,.18); --display:"Playfair Display", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; --mono:"DM Mono", monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:var(--sans); font-size:16px; line-height:1.5; }
img { display:block; max-width:100%; }
a { color:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:12px; transform:translateY(-140%); background:#fff; border:1px solid #111; z-index:99; padding:9px 12px; font-size:13px; }
.skip-link:focus { transform:translateY(0); }
.site-header { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 4.8vw; background:rgba(255,255,255,.95); border-bottom:1px solid transparent; position:relative; z-index:20; }
.site-header--solid { border-color:var(--line); }
.wordmark { font-family:var(--sans); letter-spacing:.12em; font-size:12px; font-weight:600; text-decoration:none; }
.site-nav { display:flex; align-items:center; gap:clamp(14px,2vw,30px); font-size:12px; letter-spacing:.04em; }
.site-nav a { text-decoration:none; color:rgba(17,17,17,.65); }
.site-nav a:hover,.site-nav .is-active { color:var(--ink); }
.site-nav .nav-inquire { margin-left:2px; border:1px solid var(--ink); color:var(--ink); padding:9px 15px; }
.menu-toggle { display:none; border:0; background:transparent; width:42px; height:42px; padding:11px; cursor:pointer; }
.menu-toggle span:not(.sr-only) { display:block; height:1px; width:20px; background:#111; margin:5px 0; transition:transform .2s; }
.section-pad { padding:clamp(78px,10vw,154px) 7vw; }
.eyebrow { margin:0 0 22px; text-transform:uppercase; font-family:var(--mono); font-size:10px; letter-spacing:.14em; }
.eyebrow--light { color:#fff; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--display); font-weight:500; letter-spacing:-.045em; line-height:.96; }
h1 { font-size:clamp(58px,9.2vw,140px); }
h2 { font-size:clamp(42px,6vw,88px); }
h1 em,h2 em { font-weight:500; }
.home-hero { min-height:calc(100svh - 76px); position:relative; display:grid; align-items:end; overflow:hidden; color:#fff; }
.home-hero__image,.home-hero__veil { position:absolute; inset:0; }
.home-hero__image { background:url("/assets/images/home-studio.png?v=20260816-hero2") center 48%/cover no-repeat; transform:scale(1.04); animation:hero-image-in 1.35s cubic-bezier(.2,.65,.2,1) both; }
.home-hero__veil { background:linear-gradient(90deg,rgba(0,0,0,.66),rgba(0,0,0,.08) 76%), linear-gradient(0deg,rgba(0,0,0,.22),transparent 48%); }
.home-hero__content { position:relative; padding:0 7vw clamp(60px,9vw,120px); max-width:800px; animation:hero-content-in .9s .18s cubic-bezier(.2,.65,.2,1) both; }
.home-hero__content h1 { margin-bottom:26px; }
.hero-copy { max-width:430px; font-size:clamp(16px,1.5vw,20px); line-height:1.5; }
.button-row { margin-top:36px; display:flex; align-items:center; flex-wrap:wrap; gap:20px 28px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:0 20px; font-size:12px; letter-spacing:.04em; text-decoration:none; transition:background .2s,color .2s,border .2s; }
.button--light { background:#fff; color:#111; border:1px solid #fff; }
.button--light:hover { background:transparent; color:#fff; }
.button--dark { background:#111; color:#fff; border:1px solid #111; }
.button--dark:hover { background:#fff; color:#111; }
.text-link { display:inline-flex; gap:8px; padding-bottom:4px; border-bottom:1px solid currentColor; text-decoration:none; font-size:12px; letter-spacing:.03em; }
.text-link--light { color:#fff; }
[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.65,.2,1),transform .7s cubic-bezier(.2,.65,.2,1); }
[data-reveal].is-revealed { opacity:1; transform:none; }
@keyframes hero-image-in { from { opacity:.6; transform:scale(1.1); } to { opacity:1; transform:scale(1.04); } }
@keyframes hero-content-in { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
.intro { border-bottom:1px solid var(--line); }
.intro-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr); gap:11vw; align-items:end; }
.intro-grid h2 { margin:0; }
.intro-copy { max-width:390px; font-size:17px; line-height:1.65; }
.intro-copy p { margin-bottom:24px; }
.section-heading { max-width:580px; margin-bottom:50px; }
.section-heading h2 { margin-bottom:20px; }
#collection-title { scroll-margin-top:24px; }
.section-heading > p:last-child { max-width:400px; line-height:1.6; }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; min-height:540px; }
.collection-card { position:relative; min-height:420px; overflow:hidden; background:#ddd; }
.collection-card img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; filter:brightness(.82); transition:transform .9s cubic-bezier(.2,.65,.2,1),filter .5s ease; }
.collection-card__label { color:#fff; position:absolute; bottom:0; left:0; right:0; padding:25px; background:linear-gradient(0deg,rgba(0,0,0,.65),transparent); }
.collection-card__label span,.collection-card--dark > span { font:10px var(--mono); letter-spacing:.12em; }
.collection-card h3 { margin:8px 0 3px; font:500 clamp(24px,2vw,34px)/1 var(--display); letter-spacing:-.03em; }
.collection-card p { margin:0; font-size:12px; opacity:.88; }
.collection-card--wide { min-height:420px; }
/* La secuencia alterna una firma icónica, una composición personalizada y
   una flower box. Cada encuadre responde a su propia fotografía, sin alterar
   la retícula ni recortar otras piezas de The collection. */
.collection-card--signature { background:#faf8f5; }
.collection-card--signature img { object-fit:contain; object-position:center; transform:none; filter:none; mix-blend-mode:multiply; }
.collection-card--custom-moments img { object-position:center 56%; transform:none; }
.collection-card--flower-box img { object-position:center 55%; transform:scale(1); filter:brightness(.86); }
.collection-card[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .75s cubic-bezier(.2,.65,.2,1),transform .75s cubic-bezier(.2,.65,.2,1); }
.collection-card[data-reveal].is-revealed { opacity:1; transform:none; }
.collection-card[data-reveal]:nth-child(2) { transition-delay:.1s; }
.collection-card[data-reveal]:nth-child(3) { transition-delay:.2s; }
@media (hover:hover) and (pointer:fine) { .collection-card:hover img { transform:scale(1.035); filter:brightness(.9); } .collection-card--signature:hover img { transform:scale(1.018); filter:none; } .collection-card--custom-moments:hover img { transform:scale(1.018); } }
.collection-card--dark { color:#fff; background:#111; padding:26px; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; }
.collection-card--dark p { max-width:190px; margin-bottom:28px; line-height:1.55; }
.experiences { background:#fff; scroll-margin-top:0; border-top:1px solid var(--line); }
.experiences__heading { max-width:680px; padding-bottom:clamp(54px,6vw,88px); }
.experiences__heading h2 { margin-bottom:21px; scroll-margin-top:24px; }
.experiences__heading > p:last-child { max-width:360px; font-size:16px; line-height:1.65; }
.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; padding-top:0; }
.experience-card { position:relative; display:block; min-height:clamp(420px,48vw,650px); overflow:hidden; color:#fff; text-decoration:none; background:#111; }
.experience-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.65,.2,1); }
.experience-card__veil { position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,0,.63),rgba(0,0,0,.02) 65%); }
.experience-card__body { position:absolute; z-index:1; left:clamp(22px,3vw,38px); right:22px; bottom:clamp(24px,3vw,40px); }
.experience-card__body strong { display:block; font:500 clamp(34px,4vw,58px)/.98 var(--display); letter-spacing:-.05em; }
.experience-card__body small { display:block; margin-top:10px; font-size:13px; color:rgba(255,255,255,.8); }
@media (hover:hover) and (pointer:fine) { .experience-card:hover img { transform:scale(1.045); } }
.bloom-feature { display:grid; grid-template-columns:1.12fr .88fr; min-height:min(720px,78vw); background:#111; color:#fff; scroll-margin-top:18px; }
.bloom-feature__image { min-height:490px; background:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,.02)),url("/assets/images/bloom-bar-hero.png") center/cover; }
.bloom-feature__content { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding-top:clamp(90px,12vw,170px); padding-bottom:clamp(90px,12vw,170px); }
.bloom-feature__content h2 { margin:22px 0; }
.bloom-feature__content > p:not(.eyebrow) { max-width:380px; margin:0 0 34px; line-height:1.65; color:rgba(255,255,255,.75); }
.bloom-feature .text-link { color:#fff; }
.closing { text-align:center; }
.closing h2 { margin-bottom:35px; }
.site-footer { padding:35px 4.8vw; background:#111; color:#fff; display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center; font-size:11px; }
.site-footer .footer-links { display:flex; gap:20px; }
.site-footer a { text-decoration:none; }
.site-footer .wordmark { color:#fff; }
.site-footer p { margin:0; justify-self:end; color:rgba(255,255,255,.66); }
.site-footer--editorial { grid-template-columns:minmax(180px,1.35fr) repeat(3,minmax(118px,.6fr)); gap:46px clamp(28px,5vw,84px); align-items:start; padding:clamp(56px,7vw,90px) 7vw 24px; }
.site-footer--editorial .footer-brand { display:grid; align-content:start; }
.site-footer--editorial .footer-brand .wordmark { font-size:13px; letter-spacing:.18em; }
/* El footer termina con el nombre de la casa. La línea "Where flowers become
   art." pertenece a la narrativa editorial, no a este cierre repetido. */
.site-footer--editorial .footer-brand p { display:none; }
.site-footer--editorial .footer-group { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.site-footer--editorial .footer-group a { color:rgba(255,255,255,.7); font-size:12px; transition:color .18s ease; }
.site-footer--editorial .footer-group a:hover,.site-footer--editorial .footer-group a:focus-visible { color:#fff; }
.site-footer--editorial .footer-label { justify-self:auto; margin:0 0 5px; color:#fff; font:10px var(--mono); letter-spacing:.13em; text-transform:uppercase; }
.site-footer--editorial .footer-meta { grid-column:1/-1; width:100%; justify-self:auto; margin-top:6px; padding-top:17px; border-top:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.48); font-size:10px; }
.legal-page { background:#fff; }
.legal-hero { min-height:clamp(330px,47vw,540px); display:flex; flex-direction:column; justify-content:flex-end; border-bottom:1px solid var(--line); }
.legal-hero h1 { margin:0; max-width:760px; }
.legal-hero > p:last-child { margin:32px 0 0; color:rgba(17,17,17,.58); font:10px var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.legal-copy { max-width:960px; padding-top:clamp(62px,8vw,118px); padding-bottom:clamp(82px,11vw,160px); }
.legal-copy a { text-underline-offset:4px; }
.legal-lede { max-width:680px; margin:0 0 clamp(66px,9vw,114px); font:400 clamp(24px,3vw,38px)/1.28 var(--display); letter-spacing:-.035em; }
.legal-copy section { display:grid; grid-template-columns:minmax(170px,.53fr) minmax(0,1fr); gap:clamp(25px,5vw,80px); padding:34px 0; border-top:1px solid var(--line); }
.legal-copy h2 { margin:0; font-size:clamp(24px,2.8vw,38px); }
.legal-copy section p { grid-column:2; max-width:590px; margin:0 0 17px; color:rgba(17,17,17,.72); font-size:15px; line-height:1.72; }
.legal-copy section p + p { margin-top:-6px; }
.inquiry-page { min-height:100vh; background:var(--paper); }
.inquiry-hero { min-height:clamp(370px,46vw,560px); padding-top:clamp(78px,10vw,132px); padding-bottom:clamp(54px,7vw,94px); display:grid; align-content:end; border-bottom:1px solid var(--line); }
.inquiry-hero h1 { margin:0; }
.inquiry-hero__intro { max-width:400px; margin:27px 0 0 auto; line-height:1.65; }
.inquiry-shell { display:grid; grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr); border-bottom:1px solid var(--line); }
.inquiry-service { display:grid; align-content:start; gap:0; padding:clamp(44px,7vw,96px) 7vw; background:#fff; border-right:1px solid var(--line); }
.inquiry-service button { position:relative; width:calc(100% + 34px); display:grid; grid-template-columns:28px 1fr; gap:15px; margin:0 -17px; padding:23px 17px; border:0; border-top:1px solid rgba(17,17,17,.22); background:transparent; color:rgba(17,17,17,.48); text-align:left; cursor:pointer; transition:background .18s ease,color .18s ease,transform .18s ease; }
.inquiry-service button:last-child { border-bottom:1px solid rgba(17,17,17,.22); }
.inquiry-service button::after { content:""; position:absolute; right:17px; top:50%; width:0; height:1px; background:#111; transform:translateY(-50%); transition:width .18s ease; }
.inquiry-service button:hover { background:#111; color:#fff; transform:translateX(4px); }
.inquiry-service button:hover small { color:rgba(255,255,255,.67); }
.inquiry-service button:hover::after { width:14px; background:#fff; }
.inquiry-service button.is-selected { background:#111; color:#fff; transform:none; }
.inquiry-service button.is-selected small { color:rgba(255,255,255,.67); }
.inquiry-service button.is-selected::after { width:14px; background:#fff; }
.inquiry-service button.is-selected:hover { background:#1d1d1d; transform:none; }
.inquiry-service button:focus-visible { outline:2px solid #111; outline-offset:3px; z-index:1; }
.inquiry-service__number { padding-top:7px; font:10px var(--mono); letter-spacing:.08em; }
.inquiry-service strong { display:block; font:500 clamp(25px,2.7vw,38px)/.95 var(--display); letter-spacing:-.04em; }
.inquiry-service small { display:block; margin-top:7px; color:rgba(17,17,17,.55); font-size:12px; line-height:1.5; }
.inquiry-form { padding:clamp(58px,8vw,112px) 7vw; }
.inquiry-section { padding:0 0 45px; margin-bottom:45px; border-bottom:1px solid var(--line); }
.inquiry-section:last-of-type { margin-bottom:28px; }
.inquiry-section__head { display:flex; align-items:center; gap:13px; margin-bottom:29px; }
.inquiry-section__head b { font:10px var(--mono); letter-spacing:.1em; }
.inquiry-section__head span { font:500 10px var(--mono); letter-spacing:.12em; text-transform:uppercase; }
.inquiry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px 18px; }
.inquiry-field { display:grid; gap:8px; }
.inquiry-field[hidden] { display:none !important; }
.inquiry-field--wide { grid-column:1/-1; }
.inquiry-field label { font:500 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.inquiry-field input,.inquiry-field select,.inquiry-field textarea { width:100%; min-height:42px; border:0; border-bottom:1px solid rgba(17,17,17,.28); border-radius:0; background:transparent; padding:9px 0; color:#111; font:14px var(--sans); outline:none; }
.inquiry-field textarea { min-height:112px; resize:vertical; line-height:1.65; }
.inquiry-field input:focus,.inquiry-field select:focus,.inquiry-field textarea:focus { border-color:#111; }
.inquiry-form.is-switching .inquiry-section:nth-of-type(2) .inquiry-grid { animation:inquiry-fields-in .24s ease both; }
@keyframes inquiry-fields-in { from { opacity:.42; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
.inquiry-consent { display:flex; gap:11px; max-width:580px; margin:0 0 28px; color:rgba(17,17,17,.68); font-size:12px; line-height:1.55; }
.inquiry-consent input { width:16px; height:16px; margin:2px 0 0; accent-color:#111; }
.inquiry-submit-row { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.inquiry-submit-row p { max-width:280px; margin:0; color:rgba(17,17,17,.55); font-size:12px; line-height:1.55; }
.inquiry-form-status { margin:18px 0 0; color:#8a2020; font-size:13px; line-height:1.5; }
.inquiry-form-status.is-success { color:#275b39; }
.inquiry-success { min-height:calc(100svh - 76px); padding:clamp(68px,10vw,140px) 7vw clamp(108px,16vh,188px); display:grid; align-content:end; border-bottom:1px solid var(--line); }
.inquiry-success[hidden],
[data-inquiry-shell][hidden] { display:none !important; }
.inquiry-success h1 { margin:0 0 22px; }
.inquiry-success p { max-width:430px; color:rgba(17,17,17,.66); line-height:1.65; }
.contact-page { background:#fff; min-height:100vh; }
.contact-hero { min-height:clamp(400px,53vw,660px); display:grid; align-content:end; border-bottom:1px solid var(--line); }
.contact-hero h1 { max-width:720px; margin:0; }
.contact-hero__intro { max-width:405px; margin:28px 0 0 auto; line-height:1.65; }
.contact-details { display:grid; grid-template-columns:repeat(3,1fr); border-bottom:1px solid var(--line); }
.contact-detail { min-height:250px; padding:clamp(32px,5vw,76px) 7vw; border-right:1px solid var(--line); }
.contact-detail:last-child { border-right:0; }
.contact-detail p { margin:0 0 18px; }
.contact-detail a,.contact-detail strong { display:block; max-width:300px; color:var(--ink); font:clamp(23px,2.4vw,35px)/1.08 var(--display); text-decoration:none; }
.contact-detail a:hover,.contact-detail a:focus-visible { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:7px; }
.contact-collaboration { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.65fr); gap:48px; align-items:end; border-bottom:1px solid var(--line); }
.contact-collaboration h2 { margin:14px 0 0; }
.contact-collaboration p { max-width:400px; margin:0; line-height:1.65; color:rgba(17,17,17,.68); }
.contact-inquiry { background:var(--ink); color:#fff; text-align:center; }
.contact-inquiry h2 { margin:16px 0 28px; }
.contact-inquiry .eyebrow { color:rgba(255,255,255,.67); }
.contact-inquiry .text-link { color:#fff; }
@media (max-width:800px) { .legal-copy section { grid-template-columns:1fr; gap:18px; } .legal-copy section p { grid-column:auto; } .inquiry-shell { grid-template-columns:1fr; } .inquiry-service { border-right:0; border-bottom:1px solid var(--line); } .inquiry-service button { grid-template-columns:24px 1fr; } .inquiry-hero__intro,.contact-hero__intro { margin-left:0; } .contact-details,.contact-collaboration { grid-template-columns:1fr; gap:0; } .contact-detail { min-height:0; border-right:0; border-bottom:1px solid var(--line); } .contact-detail:last-child { border-bottom:0; } .contact-collaboration { gap:32px; } }
@media (max-width:560px) { .legal-hero { min-height:355px; } .legal-copy section { padding:27px 0; } .inquiry-grid { grid-template-columns:1fr; } .inquiry-field--wide { grid-column:auto; } .inquiry-submit-row { align-items:flex-start; flex-direction:column-reverse; } .inquiry-submit-row .button { width:100%; } }
.bloom-hero { position:relative; display:grid; min-height:calc(100svh - 76px); overflow:hidden; color:#fff; background:#111; }
.bloom-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.bloom-hero__veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.58) 0%,rgba(0,0,0,.25) 48%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(0,0,0,.3),transparent 55%); }
.bloom-hero__title { position:relative; z-index:1; align-self:end; padding-top:100px; padding-bottom:clamp(58px,8vw,120px); }
.bloom-hero__title h1 { margin:18px 0 0; font-size:clamp(86px,11.4vw,180px); line-height:.78; color:#fff; }
.bloom-hero__cta { margin-top:38px; }
.bloom-hero__inquire,.service-hero__inquire { display:inline-flex; align-items:center; gap:13px; margin-top:34px; color:#fff; font:500 10px var(--mono); letter-spacing:.13em; text-decoration:none; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.7); padding-bottom:7px; }
.bloom-hero__inquire span,.service-hero__inquire span { font-size:14px; line-height:0; transition:transform .2s ease; }
.bloom-intro { border-top:1px solid var(--line); background:var(--quiet); }
.bloom-occasions { border-top:1px solid var(--line); }
.bloom-occasions__intro { display:grid; grid-template-columns:1fr minmax(250px,390px); gap:36px; align-items:start; margin-bottom:60px; }
.bloom-occasions__intro > p:last-child { margin:0; line-height:1.65; color:rgba(17,17,17,.68); }
.occasion-list { display:grid; grid-template-columns:repeat(2,1fr); column-gap:7vw; border-top:1px solid var(--line); }
.occasion-list span { min-height:104px; display:grid; grid-template-columns:31px minmax(0,1fr); gap:13px; align-items:center; border-bottom:1px solid var(--line); font:500 clamp(25px,3vw,45px)/1 var(--display); letter-spacing:-.04em; }
.occasion-list span b { font:500 10px/1 var(--mono); letter-spacing:.12em; }
.occasion-list span:nth-child(odd) { padding-right:24px; }
.occasion-list span:nth-child(even) { padding-left:24px; }
.bloom-steps { background:#111; color:#fff; }
.step-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:38px; padding-top:20px; }
.step-grid article { border-top:1px solid rgba(255,255,255,.5); padding-top:18px; }
.step-grid span { font:10px var(--mono); letter-spacing:.12em; }
.step-grid h2 { font-size:clamp(31px,3vw,49px); margin:28px 0 14px; }
.step-grid p { max-width:300px; color:rgba(255,255,255,.72); font-size:14px; line-height:1.65; }
.bloom-closing { padding:clamp(96px,13vw,180px) 7vw; text-align:center; color:#fff; background:linear-gradient(rgba(0,0,0,.58),rgba(0,0,0,.58)),url("/assets/images/bloom-bar-hero.png") center/cover; }
.bloom-closing h2 { margin:0 0 24px; }
.bloom-closing > p:not(.eyebrow) { margin:0 auto 30px; max-width:360px; }
.service-hero { position:relative; display:grid; min-height:calc(100svh - 76px); overflow:hidden; color:#fff; background:#111; }
.service-hero__image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.service-hero__veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.57),rgba(0,0,0,.18) 63%,rgba(0,0,0,.08)),linear-gradient(0deg,rgba(0,0,0,.25),transparent 55%); }
.service-hero__title { position:relative; z-index:1; align-self:end; padding-top:100px; padding-bottom:clamp(58px,8vw,120px); }
.service-hero__title h1 { margin:18px 0 0; color:#fff; font-size:clamp(76px,10.2vw,160px); line-height:.8; }
@media (hover:hover) and (pointer:fine) { .bloom-hero__inquire:hover span,.service-hero__inquire:hover span { transform:translateX(4px); } }
.service-intro { border-top:1px solid var(--line); background:#fff; }
.service-intro .intro-copy p:last-child { margin-bottom:0; }
.service-particulars { background:#fff; border-top:1px solid var(--line); }
.service-particulars > .eyebrow { margin-bottom:54px; }
.service-details { display:grid; grid-template-columns:repeat(3,1fr); gap:4vw; }
.service-details article { padding-top:20px; border-top:1px solid var(--line); }
.service-details h2 { margin:0 0 22px; font-size:clamp(27px,2.75vw,42px); line-height:1.02; }
.service-details p { margin:0; max-width:290px; color:rgba(17,17,17,.67); font-size:14px; line-height:1.65; }
.service-closing { padding:clamp(96px,13vw,180px) 7vw; text-align:center; color:#fff; background:#111; }
.service-closing h2 { margin:0 0 24px; }
.service-closing > p:not(.eyebrow) { margin:0 auto 30px; max-width:380px; }
.experiences-index-hero { position:relative; display:grid; min-height:calc(100svh - 76px); overflow:hidden; color:#fff; background:#111; }
.experiences-index-hero__media { position:absolute; inset:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.experiences-index-hero__media img { width:100%; height:100%; object-fit:cover; }
.experiences-index-hero__media img:first-child { object-position:center; }
.experiences-index-hero__media img:last-child { object-position:center; }
.experiences-index-hero__veil { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.18) 62%,rgba(0,0,0,.25) 100%),linear-gradient(0deg,rgba(0,0,0,.48),transparent 62%); }
.experiences-index-hero__content { position:relative; z-index:1; align-self:end; padding-top:100px; padding-bottom:clamp(58px,8vw,120px); }
.experiences-index-hero h1 { margin:18px 0 0; max-width:760px; color:#fff; font-size:clamp(76px,10.2vw,160px); line-height:.8; }
.experiences-index-hero__intro { margin:30px 0 0; max-width:370px; color:rgba(255,255,255,.82); line-height:1.65; }
.experience-list { display:grid; border-top:1px solid var(--line); padding-top:0; padding-bottom:0; }
.experience-row { display:grid; grid-template-columns:minmax(28px,.22fr) minmax(240px,.9fr) minmax(260px,1.15fr) 34px; align-items:center; gap:clamp(20px,3vw,54px); min-height:clamp(250px,23vw,352px); border-bottom:1px solid var(--line); color:var(--ink); text-decoration:none; }
.experience-row__number { align-self:start; padding-top:clamp(25px,3vw,42px); font:500 10px var(--mono); letter-spacing:.12em; }
.experience-row img { width:100%; height:calc(clamp(250px,23vw,352px) - 48px); object-fit:cover; }
.experience-row__body { display:grid; gap:12px; }
.experience-row__body strong { font:500 clamp(38px,4.5vw,68px)/.92 var(--display); letter-spacing:-.055em; }
.experience-row__body small { color:rgba(17,17,17,.62); font-size:14px; line-height:1.5; }
.experience-row__arrow { justify-self:end; font-size:22px; transition:transform .24s ease; }
@media (hover:hover) and (pointer:fine) { .experience-row:hover .experience-row__arrow { transform:translateX(6px); } .experience-row:hover img { filter:brightness(.96); } }
.shop-hero { border-bottom:1px solid var(--line); min-height:0; display:flex; flex-direction:column; justify-content:flex-end; padding-top:clamp(94px,9vw,132px); padding-bottom:28px; }
.shop-confirmation { display:grid; align-content:center; min-height:calc(100svh - 82px); max-width:760px; }
.shop-confirmation[hidden] { display:none; }
.shop-confirmation h1 { margin:12px 0 28px; }
.shop-confirmation__lead { margin:0; font:500 clamp(22px,2.4vw,31px)/1.18 var(--display); }
.shop-confirmation__reference { width:fit-content; margin:18px 0 0; padding:9px 12px; border:1px solid var(--line); font:500 11px/1 var(--mono); letter-spacing:.09em; text-transform:uppercase; }
.shop-confirmation__reference[hidden] { display:none; }
.shop-confirmation__detail { max-width:480px; margin:17px 0 32px; color:rgba(17,17,17,.63); font-size:15px; line-height:1.6; }
.shop-confirmation .button { width:fit-content; }
.shop-page--checkout-complete .shop-hero,.shop-page--checkout-complete .shop-catalog { display:none; }
.shop-hero h1 { margin:0; }
.shop-hero h1 { font-size:clamp(46px,5.3vw,76px); letter-spacing:-.055em; }
.shop-hero__bottom { display:flex; justify-content:space-between; align-items:end; gap:30px; margin-top:12px; }
.shop-hero__bottom > p { max-width:430px; margin:0; font-size:15px; line-height:1.65; color:rgba(17,17,17,.68); }
.shop-bag-toggle { border:0; border-bottom:1px solid #111; background:transparent; color:#111; padding:0 0 7px; font:500 11px var(--mono); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.shop-bag-toggle span { margin-left:8px; }
/* Aviso de estado de tienda (paused/inquiry_only): visible de inmediato al
   cargar la página, antes de que el cliente llene la bolsa o el checkout,
   para no dejar botones contradictorios descubiertos tarde. */
.shop-state-banner { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px; margin-top:22px; padding:16px 18px; border:1px solid var(--line); background:var(--quiet); }
.shop-state-banner[hidden] { display:none; }
.shop-state-banner p { margin:0; max-width:520px; font-size:13px; line-height:1.55; color:rgba(17,17,17,.78); }
.shop-state-banner .text-link { white-space:nowrap; }
.shop-catalog { min-height:50vh; padding-top:clamp(28px,3.5vw,52px); }
.shop-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 18px; }
.shop-product { min-width:0; }
.shop-product__preview { display:block; width:100%; aspect-ratio:4 / 5; overflow:hidden; border:0; padding:0; background:#fff; cursor:pointer; }
.shop-product__preview > img,.shop-product__preview > .shop-product__image-fallback { display:block; width:100%; height:100%; object-fit:contain; object-position:center; background:#fff; transform:translateY(var(--product-image-offset-y,0)) scale(var(--product-image-scale,1)); transition:filter .22s ease,transform .32s ease; }
.shop-product__preview:hover > img,.shop-product__preview:focus-visible > img { filter:brightness(.96); transform:translateY(var(--product-image-offset-y,0)) scale(calc(var(--product-image-scale,1) * 1.012)); }
/* Normalización óptica, no recorte: estas tres imágenes originales tienen
   espacio blanco adicional. La composición mantiene su silueta completa. */
.product-presentation--pearl { --product-image-scale:1.16; --product-image-offset-y:10%; }
.product-presentation--eclipse { --product-image-scale:1.30; --product-image-offset-y:10%; }
.product-presentation--ivory { --product-image-scale:1.26; --product-image-offset-y:10%; }
.shop-product__preview:focus-visible,.shop-product__name:focus-visible { outline:2px solid #111; outline-offset:4px; }
.shop-product__image-fallback { display:grid; place-items:center; color:rgba(17,17,17,.3); font:500 44px var(--display); }
.shop-product__details { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; padding-top:17px; }
.shop-product__details .eyebrow { margin-bottom:9px; font-size:9px; }
.shop-product h2 { margin:0 0 7px; font-size:clamp(25px,2.5vw,36px); }
.shop-product__name { border:0; padding:0; background:transparent; color:#111; font:inherit; text-align:left; cursor:pointer; }
.shop-product__details p:not(.eyebrow) { margin:0; max-width:240px; color:rgba(17,17,17,.62); font-size:13px; line-height:1.5; }
.shop-product__purchase { text-align:right; }
.shop-product__purchase > strong { display:block; margin-bottom:15px; font-size:13px; font-weight:600; }
.shop-product__purchase label { display:block; margin:0 0 10px; text-align:left; }
.shop-product__purchase label span { display:block; margin-bottom:4px; color:rgba(17,17,17,.6); font:9px var(--mono); text-transform:uppercase; letter-spacing:.08em; }
.shop-product__purchase select { max-width:130px; border:1px solid var(--line); border-radius:0; background:#fff; padding:7px 22px 7px 8px; color:#111; font:11px var(--sans); }
.shop-product__purchase .button { min-height:37px; padding:0 11px; font-size:10px; white-space:nowrap; cursor:pointer; }
.shop-empty { max-width:410px; margin:56px auto 0; text-align:center; color:rgba(17,17,17,.67); line-height:1.65; }
.shop-empty__cta { display:flex; width:fit-content; margin:18px auto 0; }
.shop-empty__cta[hidden] { display:none; }
.shop-product-sheet { width:min(920px,calc(100% - 40px)); max-width:none; max-height:min(760px,calc(100svh - 40px)); overflow:auto; border:0; padding:0; background:#fff; color:#111; box-shadow:0 24px 90px rgba(0,0,0,.28); }
.shop-product-sheet::backdrop { background:rgba(17,17,17,.48); backdrop-filter:blur(3px); }
.shop-product-sheet__close { position:absolute; z-index:1; top:18px; right:18px; display:grid; width:38px; height:38px; place-items:center; border:1px solid rgba(17,17,17,.14); border-radius:50%; background:rgba(255,255,255,.92); color:#111; font-size:24px; font-weight:300; cursor:pointer; }
.shop-product-sheet__content { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); min-height:540px; }
.shop-product-sheet__image { min-height:100%; overflow:hidden; background:#fff; }
.shop-product-sheet__image img { display:block; width:100%; height:100%; min-height:540px; object-fit:contain; object-position:center; transform:translateY(var(--product-image-offset-y,0)) scale(var(--product-image-scale,1)); }
.shop-product-sheet__image-fallback { display:grid; min-height:540px; place-items:center; color:rgba(17,17,17,.28); font:500 72px var(--display); }
.shop-product-sheet__details { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(44px,6vw,74px) clamp(28px,5vw,64px); }
.shop-product-sheet__details .eyebrow { margin:0 0 17px; }
.shop-product-sheet__details h2 { max-width:420px; margin:0; font:500 clamp(42px,5vw,72px)/.95 var(--display); letter-spacing:-.055em; }
.shop-product-sheet__subtitle { max-width:360px; margin:21px 0 0; color:rgba(17,17,17,.7); font-size:16px; line-height:1.62; }
.shop-product-sheet__preparation { max-width:360px; margin:14px 0 0; color:rgba(17,17,17,.56); font-size:13px; line-height:1.55; }
.shop-product-sheet__complements { width:100%; max-width:360px; margin-top:26px; padding-top:18px; border-top:1px solid var(--line); }
.shop-product-sheet__complements > p { margin:0 0 10px; color:rgba(17,17,17,.58); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-product-sheet__complements ul { display:grid; gap:1px; margin:0; padding:0; list-style:none; border-top:1px solid var(--line); }
.shop-product-sheet__complement { display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:64px; border-bottom:1px solid var(--line); }
.shop-product-sheet__complement > img,.shop-product-sheet__complement-fallback { display:block; width:42px; height:42px; border:1px solid rgba(17,17,17,.08); background:#fff; object-fit:contain; }
.shop-product-sheet__complement-fallback { display:grid; place-items:center; color:rgba(17,17,17,.35); font:500 12px var(--display); }
.shop-product-sheet__complement > span:not(.shop-product-sheet__complement-fallback) { display:grid; gap:3px; min-width:0; }
.shop-product-sheet__complement strong { overflow:hidden; color:#111; font-size:12px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.shop-product-sheet__complement small { color:rgba(17,17,17,.56); font-size:11px; }
.shop-product-sheet__complement button { min-width:52px; min-height:32px; border:1px solid var(--line); background:#fff; color:#111; font:600 10px var(--sans); cursor:pointer; }
.shop-product-sheet__complement button:hover { background:var(--quiet); }
.shop-product-sheet__complement button:disabled { border-color:transparent; background:transparent; color:rgba(17,17,17,.48); cursor:default; }
.shop-product-sheet__purchase { display:grid; width:100%; max-width:360px; gap:16px; margin-top:auto; padding-top:45px; }
.shop-product-sheet__purchase > strong { font-size:16px; }
.shop-product-sheet__variant { display:grid; gap:7px; }
.shop-product-sheet__variant span { color:rgba(17,17,17,.58); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-product-sheet__variant select { width:100%; min-height:42px; border:1px solid var(--line); border-radius:0; background:#fff; padding:8px 12px; color:#111; font:13px var(--sans); }
.shop-product-sheet__purchase .button { width:100%; min-height:46px; cursor:pointer; }
.shop-scrim { position:fixed; inset:0; z-index:39; background:rgba(17,17,17,.35); }
.shop-bag { position:fixed; z-index:40; top:0; right:0; bottom:0; width:min(440px,100%); padding:28px; display:flex; flex-direction:column; overflow-y:auto; overscroll-behavior:contain; background:#fff; box-shadow:-18px 0 48px rgba(0,0,0,.14); transform:translateX(103%); transition:transform .35s cubic-bezier(.2,.65,.2,1); }
.shop-bag[aria-hidden="false"] { transform:none; }
.shop-bag__top { display:flex; align-items:start; justify-content:space-between; padding-bottom:20px; border-bottom:1px solid var(--line); }
.shop-bag__top .eyebrow { margin:5px 0 0; }
.shop-bag__piece-count { margin:6px 0 0; color:rgba(17,17,17,.56); font-size:12px; }
.shop-bag__close { width:36px; height:36px; border:1px solid var(--line); border-radius:50%; background:#fff; font-size:25px; font-weight:300; cursor:pointer; }
.shop-bag__items { flex:0 0 auto; padding:15px 0; }
.shop-bag__empty { color:rgba(17,17,17,.55); font-size:14px; }
.shop-bag__item { display:flex; justify-content:space-between; gap:20px; padding:17px 0; border-bottom:1px solid var(--line); }
.shop-bag__item:last-child { border-bottom:0; }
.shop-bag__item-info { display:flex; min-width:0; gap:12px; }
.shop-bag__thumbnail { flex:0 0 62px; width:62px; height:62px; object-fit:cover; background:#f5f4f1; }
.shop-bag__thumbnail--fallback { display:block; }
.shop-bag__item strong { display:block; font:500 21px var(--display); }
.shop-bag__item small { display:block; margin-top:5px; color:rgba(17,17,17,.56); font-size:11px; }
.shop-bag__item > div:last-child { display:flex; flex-direction:column; align-items:end; gap:10px; font-size:13px; }
.shop-bag__item button { border:0; border-bottom:1px solid var(--line); background:transparent; padding:0 0 2px; font-size:10px; cursor:pointer; }
.shop-bag__bottom { padding-top:18px; border-top:1px solid var(--line); }
.shop-fulfillment { display:grid; gap:10px; margin-top:21px; }
.shop-fulfillment > label,.shop-fulfillment [data-delivery-fields] { display:grid; gap:7px; }
.shop-fulfillment [data-delivery-fields] { grid-template-columns:1fr; }
.shop-fulfillment span { color:rgba(17,17,17,.58); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-fulfillment select,.shop-fulfillment input,.shop-fulfillment textarea { width:100%; min-height:39px; border:1px solid var(--line); border-radius:0; -webkit-appearance:none; appearance:none; background:#fff; padding:7px 9px; color:#111; font:12px var(--sans); }
.shop-fulfillment textarea { min-height:68px; resize:vertical; line-height:1.45; }
/* Safari en iOS hace zoom automático al enfocar un campo con font-size menor
   a 16px. El resto del diseño (12px) se conserva en pantallas grandes; solo
   el ancho móvil, donde ocurre el zoom no deseado, sube el tamaño real del
   campo tecleable. */
@media (max-width:640px) {
  .shop-fulfillment select,.shop-fulfillment input,.shop-fulfillment textarea { font-size:16px; }
}
.shop-delivery-window { display:grid; gap:7px; }
.shop-delivery-window > span { color:rgba(17,17,17,.58); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-delivery-window__segments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid var(--line); }
.shop-delivery-window__segments label { position:relative; display:grid; min-height:42px; place-items:center; border-right:1px solid var(--line); border-bottom:1px solid var(--line); cursor:pointer; }
.shop-delivery-window__segments label:nth-child(2n) { border-right:0; }
.shop-delivery-window__segments label:nth-last-child(-n + 2) { border-bottom:0; }
.shop-delivery-window__segments input { position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.shop-delivery-window__segments span { color:rgba(17,17,17,.7); font:11px var(--sans); letter-spacing:0; text-transform:none; }
.shop-delivery-window__segments label:has(input:checked) { background:#111; }
.shop-delivery-window__segments label:has(input:checked) span { color:#fff; }
.shop-delivery-window__segments label:has(input:focus-visible) { outline:2px solid #111; outline-offset:-2px; }
.shop-address-autocomplete { position:relative; }
.shop-address-suggestions { position:absolute; z-index:4; top:100%; left:0; right:0; margin-top:4px; overflow:hidden; border:1px solid var(--line); background:#fff; box-shadow:0 14px 28px rgba(0,0,0,.12); }
.shop-address-suggestion { display:grid; width:100%; gap:3px; border:0; border-bottom:1px solid var(--line); background:#fff; padding:11px 12px; color:#111; text-align:left; cursor:pointer; }
.shop-address-suggestion:hover,.shop-address-suggestion.is-active { background:#f7f7f5; }
.shop-address-suggestion strong { font:500 12px var(--sans); }
.shop-address-suggestion small { color:rgba(17,17,17,.58); font:11px var(--sans); line-height:1.35; }
.shop-address-suggestions__attribution { display:flex; align-items:center; min-height:24px; padding:5px 10px; background:#fff; }
.shop-address-suggestions__attribution img { display:block; width:92px; height:auto; }
.shop-checkout-fields { min-width:0; margin:10px 0 0; padding:15px 0 0; border:0; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr; gap:10px; }
.shop-checkout-fields[hidden] { display:none; }
.shop-checkout-fields legend { width:100%; padding:0; margin:0 0 3px; grid-column:1/-1; color:#111; font:500 10px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-checkout-fields label { display:grid; gap:7px; min-width:0; }
.shop-checkout-fields__wide { grid-column:auto; }
.shop-checkout-fields i { font-style:normal; text-transform:none; letter-spacing:0; }
.shop-updates { gap:13px 10px; }
.shop-updates__decision { display:grid; gap:7px; min-width:0; }
.shop-updates__decision > span { color:rgba(17,17,17,.58); font:9px var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.shop-updates__segments { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid var(--line); }
.shop-updates__segments--three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.shop-updates__segments label { position:relative; display:grid; min-height:39px; place-items:center; border-right:1px solid var(--line); cursor:pointer; }
.shop-updates__segments label:last-child { border-right:0; }
.shop-updates__segments input { position:absolute; inline-size:1px; block-size:1px; opacity:0; pointer-events:none; }
.shop-updates__segments span { color:rgba(17,17,17,.62); font:11px var(--sans); letter-spacing:0; text-transform:none; }
.shop-updates__segments label:has(input:checked) { background:#111; }
.shop-updates__segments label:has(input:checked) span { color:#fff; }
.shop-updates__segments label:has(input:focus-visible) { outline:2px solid #111; outline-offset:-2px; }
.shop-consent { display:flex; align-items:flex-start; gap:9px; margin-top:3px; color:rgba(17,17,17,.68); font-size:11px; line-height:1.45; }
.shop-bag [hidden] { display:none !important; }
.shop-consent input { width:15px; min-height:15px; margin:1px 0 0; -webkit-appearance:checkbox; appearance:auto; accent-color:#111; }
.shop-bag__checkout { width:100%; margin-top:4px; cursor:pointer; }
.shop-bag__checkout:disabled { opacity:.48; cursor:not-allowed; }
.shop-quote { margin-top:16px; padding:14px 0 0; border-top:1px solid var(--line); }
.shop-quote > div { display:flex; justify-content:space-between; align-items:center; padding:4px 0; font-size:12px; }
.shop-quote > div strong { font-size:13px; }
.shop-quote .shop-quote__total { margin-top:7px; padding-top:12px; border-top:1px solid var(--line); }
.shop-quote .shop-quote__total strong { font-size:21px; }
.shop-quote__checkout { width:100%; margin-top:16px; cursor:pointer; }
.shop-quote__checkout:disabled { cursor:wait; opacity:.62; }
.shop-quote p { margin:11px 0 0; color:rgba(17,17,17,.52); font-size:11px; line-height:1.45; }
.shop-delivery-window__status { margin:9px 0 0; color:rgba(17,17,17,.56); font-size:11px; line-height:1.45; }
.shop-date-inquiry { margin-top:14px; padding:2px 0; }
.shop-date-inquiry p { margin:0 0 13px; color:rgba(17,17,17,.68); font-size:13px; line-height:1.5; }
.shop-date-inquiry .button { width:100%; }
.shop-bag__bottom > p { margin:12px 0 0; color:rgba(17,17,17,.52); font-size:11px; line-height:1.45; }
.bag-is-open { overflow:hidden; }
@media (max-width:800px) { .site-header { height:64px; padding:0 22px; } .menu-toggle { display:block; position:relative; z-index:21; } .site-nav { display:none; position:absolute; inset:64px 0 auto; background:#fff; padding:22px; border-bottom:1px solid var(--line); box-shadow:0 18px 25px rgba(0,0,0,.08); flex-direction:column; align-items:flex-start; gap:19px; } .site-nav.is-open { display:flex; } .site-nav .nav-inquire { margin:4px 0 0; } .menu-is-open { overflow:hidden; } .section-pad,.experiences-index-hero { padding-left:22px; padding-right:22px; } .home-hero { min-height:calc(100svh - 64px); } .home-hero__content { padding:0 22px 70px; } .intro-grid,.service-hero,.bloom-feature,.bloom-occasions__intro { grid-template-columns:1fr; gap:22px; } .collection-grid { grid-template-columns:1fr 1fr; min-height:0; } .collection-card--wide { min-height:420px; } .collection-card--custom-moments img { object-position:center 56%; transform:none; } .collection-card--dark { grid-column:1/-1; min-height:280px; } .experience-grid { grid-template-columns:1fr; gap:12px; } .experience-card { min-height:440px; } .experience-card--picnic img { object-position:84% center; } .experience-card__body strong { font-size:40px; } .bloom-feature { min-height:0; } .bloom-feature__image { min-height:390px; background-position:78% center; } .bloom-hero { min-height:calc(100svh - 64px); } .bloom-hero__veil { background:linear-gradient(0deg,rgba(0,0,0,.52),rgba(0,0,0,.05) 70%); } .bloom-hero__title { padding-top:70px; padding-bottom:58px; } .bloom-hero__title h1 { font-size:clamp(74px,23vw,116px); } .bloom-occasions__intro { margin-bottom:42px; } .occasion-list { grid-template-columns:1fr; } .occasion-list span { min-height:78px; font-size:30px; } .occasion-list span:nth-child(odd),.occasion-list span:nth-child(even) { padding-left:0; padding-right:0; } .service-details { grid-template-columns:repeat(2,1fr); } .step-grid { grid-template-columns:1fr; gap:30px; } .site-footer { padding:35px 22px; grid-template-columns:1fr; } .site-footer .footer-links,.site-footer p { justify-self:start; } .service-hero__image { min-height:420px; } .experiences-index-hero__intro { margin:22px 0 0; } .shop-hero { min-height:300px; padding-top:106px; padding-bottom:38px; } .shop-hero__bottom { align-items:start; flex-direction:column; gap:18px; } .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 12px; } .shop-product__details { display:block; } .shop-product__purchase { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-top:15px; text-align:left; } .shop-product__purchase > strong { margin:0; } .shop-product__purchase label { margin:0; } .shop-product__purchase select { max-width:108px; } .shop-bag { padding:22px; } .shop-checkout-fields { grid-template-columns:1fr; } .shop-checkout-fields__wide { grid-column:auto; } }
@media (max-width:800px) { .shop-hero { min-height:0; padding-top:88px; padding-bottom:24px; } .shop-hero__bottom { gap:14px; } }
@media (max-width:800px) { .bloom-hero__image { object-position:58% center; } }
@media (min-width:471px) and (max-width:800px) { .collection-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; } .collection-card,.collection-card--wide { min-height:420px; } .collection-card__label { padding:18px; } .collection-card h3 { font-size:clamp(22px,3.15vw,27px); } }
@media (max-width:680px) { .shop-product-sheet { width:100%; max-height:100svh; min-height:100svh; } .shop-product-sheet__content { grid-template-columns:1fr; min-height:0; } .shop-product-sheet__image,.shop-product-sheet__image img,.shop-product-sheet__image-fallback { min-height:0; height:min(48svh,430px); } .shop-product-sheet__details { min-height:52svh; padding:34px 22px 28px; } .shop-product-sheet__details h2 { font-size:clamp(42px,13vw,61px); } .shop-product-sheet__subtitle { font-size:15px; } .shop-product-sheet__purchase { margin-top:28px; padding-top:25px; } }
@media (max-width:470px) { h1 { font-size:57px; } h2 { font-size:43px; } .collection-grid { grid-template-columns:1fr; } .collection-card,.collection-card--wide { min-height:370px; } .collection-card--dark { grid-column:auto; } .experience-row { grid-template-columns:26px 74px minmax(0,1fr) 16px; gap:10px; } .experience-row img { width:74px; height:74px; } .experience-row__body strong { font-size:21px; } .experience-row__body small { margin-top:5px; } .occasion-grid span { min-height:108px; } }
@media (max-width:800px) {
  .experiences-index-hero { min-height:calc(100svh - 64px); padding:0; }
  .experiences-index-hero__media { grid-template-columns:1.12fr .88fr; }
  .experiences-index-hero__media img:first-child { object-position:68% center; }
  .experiences-index-hero__media img:last-child { object-position:54% center; }
  .experiences-index-hero__content { padding:70px 22px 58px; }
  .experiences-index-hero h1 { font-size:clamp(66px,18vw,102px); }
  .experiences-index-hero__intro { margin-top:22px; }
  .experience-list { padding-inline:22px; }
  .experience-row { grid-template-columns:28px minmax(0,1fr) 18px; gap:14px; min-height:0; padding:18px 0; }
  .experience-row__number { padding-top:2px; }
  .experience-row img { grid-column:2 / 4; grid-row:1; width:100%; height:clamp(220px,66vw,380px); object-fit:cover; }
  .experience-row__body { grid-column:2; grid-row:2; gap:7px; padding:3px 0 7px; }
  .experience-row__body strong { font-size:clamp(33px,10vw,48px); }
  .experience-row__body small { font-size:12px; }
  .experience-row__arrow { grid-column:3; grid-row:2; }
}
@media (max-width:800px) { .service-hero { min-height:calc(100svh - 64px); } .service-hero__image { min-height:0; object-position:center; } .service-hero__veil { background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,.04) 72%); } .service-hero__title { padding-top:70px; padding-bottom:58px; } .service-hero__title h1 { font-size:clamp(66px,18vw,102px); } }
@media (max-width:800px) { .site-footer--editorial { grid-template-columns:1fr; gap:30px; padding:48px 22px 22px; } .site-footer--editorial .footer-meta { margin-top:2px; } .site-footer--editorial .footer-group { gap:9px; } }
@media (max-width:800px) { .service-particulars > .eyebrow { margin-bottom:40px; } .service-details { grid-template-columns:1fr; gap:35px; } .service-details h2 { font-size:34px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; } [data-reveal] { opacity:1; transform:none; } }
