.hero-note a{font-size:15px;color:var(--wine);letter-spacing:.03em}.contact-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.contacts{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;padding-top:52px;padding-bottom:56px;border-top:1px solid var(--line);background:#f4ede5}.contacts h2{font-size:clamp(44px,4vw,61px)}.contacts-description{font-size:13px;line-height:1.8;color:var(--muted);margin:22px 0 26px}.contact-details{align-self:center;border-left:1px solid #d8c5b8;padding-left:55px}.contact-label{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.2em;color:var(--muted);margin-bottom:10px}.contact-phone{display:inline-block;font-family:var(--serif);font-size:43px;color:var(--wine);line-height:1.1;white-space:nowrap}.contact-address{margin-top:27px}.contact-address p{font-size:19px;line-height:1.4;color:var(--wine)}.contact-address .text-link{font-size:10px;margin-top:4px}.visit-note{font-size:10px;color:var(--muted);margin-top:14px}.request-alternatives{display:flex;gap:20px;justify-content:space-between;margin-top:14px;flex-wrap:wrap}.request-alternatives .text-link,.form-vk{font-size:10px}.form-vk{margin-top:12px}.footer-domain+.footer-domain{margin-top:6px}.gallery-main{padding-top:55px;padding-bottom:55px}.gallery-heading{max-width:730px;margin-bottom:30px}.gallery-heading h1{font-size:72px}.gallery-heading>p:last-child{font-size:13px;margin-top:22px;color:var(--muted);max-width:590px}.works-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 16px}.work-card{margin:0}.work-card button{display:block;width:100%;padding:0;background:#ede5dc;border-radius:4px;overflow:hidden}.work-card img{width:100%;aspect-ratio:1;object-fit:contain;transition:transform .4s}.work-card button:hover img{transform:scale(1.02)}.work-card figcaption{font-size:12px;color:var(--wine);margin-top:10px}.gallery-back{margin-bottom:25px}.gallery-contact{margin-top:45px;padding-top:25px;border-top:1px solid var(--line);display:flex;align-items:center;gap:30px}.gallery-contact p{font-size:13px;color:var(--muted)}.lightbox{background:#231718;width:min(1000px,calc(100% - 24px));padding:18px}.lightbox img{max-height:82dvh;max-width:100%;width:auto;margin:auto;object-fit:contain}.lightbox .dialog-close{position:fixed;background:var(--paper)}.footer-brand .footer-domain{align-self:start}@media(max-width:900px){.contacts{gap:35px}.contact-details{padding-left:30px}.contact-phone{font-size:35px}.contacts h2{font-size:46px}.works-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.contacts{grid-template-columns:1fr;gap:30px;padding-top:36px;padding-bottom:35px}.contacts h2{font-size:44px}.contacts-description{font-size:12px;margin:17px 0 23px}.contact-details{border-left:0;border-top:1px solid #d8c5b8;padding-left:0;padding-top:25px}.contact-phone{font-size:39px}.contact-address{margin-top:22px}.contact-actions{gap:20px}.contact-actions .button{font-size:12px;min-height:46px;padding:12px 23px;gap:22px}.gallery-main{padding-top:32px}.gallery-heading h1{font-size:53px}.gallery-heading>p:last-child{font-size:12px}.works-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 12px}.work-card figcaption{font-size:11px}.gallery-contact{align-items:flex-start;flex-direction:column;gap:15px}.gallery-contact p{font-size:12px}.footer-brand .footer-domain{grid-column:1/-1}.header-actions{margin-left:auto}}
.hero-description br:before{content:' '}
@media(max-width:650px){.occasions{grid-template-columns:1fr;gap:10px}.occasion{min-height:142px;background-position:65% 45%}.occasion-copy{padding:19px 22px}.occasion-title{font-size:33px;line-height:.9;margin-bottom:12px}.occasion-overline{display:block;font-size:9px;max-width:none;margin-bottom:9px}.occasion-title br{display:none}.occasion-title br:after{content:' '}.round-arrow{position:absolute;bottom:18px;right:20px;width:36px;height:36px}.occasion-shade{background:linear-gradient(90deg,#34231ed9,#34231e36 85%)}.product-subtitle{font-size:10px;min-height:32px}.catalog-note{font-size:10px}.about-copy p{font-size:13px}.steps p{font-size:12px}.footer-links a,.footer-links button{min-height:30px}.hero-description{max-width:300px;margin-left:auto;margin-right:auto}.hero-description br{display:block}.hero{min-height:720px}.hero-image{height:435px}.hero:after{background:linear-gradient(180deg,#faf7f2 0%,#faf7f2 33%,#faf7f2d9 42%,#faf7f238 53%,transparent 63%)}}
@media(max-width:650px){.occasion-title br{display:block}.occasion-title br:after{content:none}.occasion{min-height:154px}}
/* Respect intrinsic image proportions despite legacy width/height attributes. */
.work-card img{height:auto}

/* Buttons stay still; only the light moves when pressed. */
.button,
.product-copy .button {
  justify-content: center;
  text-align: center;
  gap: 0;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.button svg { display: none; }
.button:hover { transform: none; }
.button::after {
  content: '';
  position: absolute;
  inset: -40% auto -40% -75%;
  width: 55%;
  background: linear-gradient(110deg, transparent, rgb(255 255 255 / 35%), transparent);
  transform: skewX(-18deg);
  pointer-events: none;
}
.button.is-pressed::after { animation: button-sheen 680ms ease-out; }
@keyframes button-sheen {
  from { left: -75%; }
  to { left: 130%; }
}
.desktop-nav { font-size: 16px; }
a[href^="tel:"] { font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.contact-phone {
  font-family: var(--sans);
  font-size: clamp(27px, 2.7vw, 38px);
  font-weight: 500;
  line-height: 1.3;
  letter-spacing: .015em;
}
.contact-map { grid-column: 1 / -1; min-width: 0; }
.map-heading { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 20px; }
.map-heading h3 { font-family: var(--serif); color: var(--wine); font-size: 35px; line-height: 1.1; }
.map-heading p { font-size: 13px; color: var(--muted); margin-top: 8px; }
.map-frame { background: #e8e0d6; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; height: 370px; }
.map-frame iframe { width: 100%; height: 100%; display: block; border: 0; }
.map-fallback { margin-top: 10px; font-size: 11px; }
@media(max-width:1100px) { .desktop-nav { font-size: 14px; gap: 22px; } }
@media(max-width:900px) { .desktop-nav { font-size: 13px; gap: 18px; } }
@media(max-width:650px) {
  .contact-phone { font-size: 30px; }
  .map-heading { align-items: flex-start; flex-direction: column; gap: 17px; }
  .map-heading h3 { font-size: 32px; }
  .map-heading p { font-size: 12px; }
  .map-heading .button { min-width: 205px; }
  .map-frame { height: 310px; }
}
@media(prefers-reduced-motion:reduce) { .button::after { display: none; } }
.about-photo { width: 100%; aspect-ratio: 1; min-height: 0; align-self: center; }
.dialog-product-photo { aspect-ratio: 1; min-height: 0; align-self: center; }
.copy-fallback { margin-top: 18px; }
.copy-fallback label { margin-top: 0; }

/* Individual photographs replace the former four-up contact sheet. */
.photo-0 { background-image: url('assets/bouquet-for-you-v2.png'); background-size: cover; background-position: center; }
.photo-1 { background-image: url('assets/bouquet-with-love-v2.png'); background-size: cover; background-position: center; }
.photo-2 { background-image: url('assets/bouquet-my-heart-v2.png'); background-size: cover; background-position: center; }
.photo-3 { background-image: url('assets/bouquet-tenderness-v2.png'); background-size: cover; background-position: center; }

/* Readable body and interface type at normal browser zoom. */
body { font-size: 16px; }
.desktop-nav { font-size: 18px; }
.button, .button-small { font-size: 15px; min-height: 48px; }
.product-copy .button { font-size: 14px; min-height: 44px; }
.text-link, .section-heading > .text-link, .about-copy .text-link,
.contact-address .text-link, .map-fallback, .request-alternatives .text-link,
.form-vk { font-size: 14px; }
.eyebrow, .hero .eyebrow, .section-heading .eyebrow, .decoration-copy .eyebrow {
  font-size: 12px;
  letter-spacing: .23em;
}
.section-intro, .about-copy p, .steps p, .contacts-description,
.decoration-copy > p:not(.eyebrow), .event-intro,
.gallery-heading > p:last-child, .gallery-contact p { font-size: 16px; line-height: 1.7; }
.steps h3 { font-size: 16px; }
.hero-description { font-size: 22px; }
.hero-note, .hero-caption, .decoration-footnote, .catalog-note,
.catalog-count, .contact-label, .visit-note, .dialog-disclaimer,
.form-note, .product-subtitle, .cart-item small { font-size: 13px; }
.hero-note a { font-size: 18px; }
.filter { font-size: 13px; min-height: 42px; padding: 9px 16px; }
.occasion-overline { font-size: 12px; }
.product-badge { font-size: 11px; }
.product-subtitle { min-height: 42px; line-height: 1.6; }
.product-copy h3 { font-size: 28px; }
.footer-brand p, .footer-domain, .footer-links h3,
.footer-links a, .footer-links button, .footer-bottom,
.footer-bottom button { font-size: 13px; }
.footer-links a, .footer-links button { min-height: 30px; }
.footer-links h3 { font-size: 14px; }
form label, .search-panel label { font-size: 14px; }
form input, form textarea, form select, .search-input-wrap input { font-size: 16px; }
.product-detail > p:not(.eyebrow), .product-detail ul, .info-dialog #info-body { font-size: 16px; }
.product-detail .detail-note { font-size: 13px !important; }
.product-detail .eyebrow { font-size: 12px; }
.cart-empty p, .empty-state p, .toast { font-size: 14px; }
.map-heading p, .work-card figcaption { font-size: 14px; }
@media(max-width:1100px) { .desktop-nav { font-size: 16px; gap: 24px; } }
@media(max-width:1000px) {
  .header { height: 76px; }
  .desktop-nav, .header-cta { display: none; }
  .mobile-menu-button { display: inline-flex; }
  .mobile-nav:not([hidden]) {
    display: flex;
    position: absolute;
    top: 76px;
    left: 0;
    right: 0;
    z-index: 10;
    flex-direction: column;
    padding: 16px 24px 25px;
    background: var(--paper);
    box-shadow: 0 10px 18px #3f171510;
    color: var(--wine);
  }
  .mobile-nav a { font-size: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  .product-badge { display: none; }
}
@media(max-width:650px) {
  .header { height: 73px; }
  .mobile-nav:not([hidden]) { top: 73px; }
  .hero .eyebrow { font-size: 11px; letter-spacing: .17em; }
  .hero-description { font-size: 18px; line-height: 1.5; max-width: 330px; }
  .hero .button, .decoration-copy .button, .contact-actions .button,
  .empty-state .button { font-size: 15px; min-height: 48px; }
  .product-copy h3 { font-size: 25px; }
  .product-copy .button { font-size: 14px; }
  .filter { font-size: 12px; padding: 9px 13px; }
  .occasion-overline { font-size: 11px; }
  .footer-links a, .footer-links button { min-height: 34px; }
  .footer-bottom { align-items: flex-start; }
  .footer-bottom button { text-align: right; max-width: 155px; }
  .contact-label { font-size: 12px; letter-spacing: .13em; }
}

/* Close-up of the bouquet on a seamless backdrop, without an interior. */
body { isolation: isolate; }
body::before {
  content: '';
  position: fixed;
  inset: 0;
  background-image: url('assets/balloons-closeup-background.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: .16;
  pointer-events: none;
  z-index: -1;
}
.header { background: rgb(250 247 242 / 78%); }
.footer { background: rgb(255 253 249 / 82%); }
.contacts { background: rgb(244 237 229 / 78%); }
