/* Final visual polish layer for the public Florista Primavera site. */
:root{--spring-ease:cubic-bezier(.22,.72,.24,1)}

/* Navigation and interaction finish */
.site-header{transition:box-shadow .3s ease,background-color .3s ease}
.site-header.is-scrolled{box-shadow:0 10px 34px rgba(15,45,34,.07);background:rgba(245,241,232,.985)}
.nav a,.text-btn,.link-arrow,.footer a{transition:opacity .22s ease,color .22s ease}
.link-arrow:hover{opacity:.62}
.btn{transition:transform .24s var(--spring-ease),background-color .24s ease,color .24s ease,border-color .24s ease}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.heart{display:none!important}

/* More deliberate homepage rhythm */
.section-head h2{max-width:980px}
#flores .product-info{background:transparent!important}
#flores .product-name{letter-spacing:-.018em}
#flores .home-product-media{overflow:hidden}
#flores .home-product-media img{transition:transform .75s var(--spring-ease),filter .75s ease}
#flores .product:hover .home-product-media img{transform:scale(1.035);filter:brightness(1.015)}
.home-cart-icon,.catalog-add{transition:transform .22s var(--spring-ease),background-color .22s ease,box-shadow .22s ease!important}
.home-cart-icon:hover,.catalog-add:hover{box-shadow:0 10px 28px rgba(15,45,34,.18)!important}
.home-cart-icon.is-added,.catalog-add.is-added{transform:scale(.88)!important}

/* Catalogue: let imagery lead while keeping useful copy compact. */
.catalog-card{transition:transform .35s var(--spring-ease)}
.catalog-card:hover{transform:translateY(-3px)}
.catalog-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:37px}
.catalog-status{opacity:.7}
.catalog-image{border-radius:2px}

/* Product page: editorial/sticky purchase column on desktop. */
@media(min-width:851px){
  .product-copy{position:sticky;top:126px;align-self:start}
}
.product-photo,.related-image{border-radius:2px}
.product-detail-note{max-width:560px}
.delivery{background:rgba(255,253,247,.42);padding:20px 18px!important;border:1px solid var(--line)!important}
.related-card{transition:transform .3s var(--spring-ease)}
.related-card:hover{transform:translateY(-3px)}

/* Checkout: clearer hierarchy without changing the payment logic. */
.shop-dialog{width:min(820px,calc(100% - 28px));padding:clamp(22px,3vw,34px);box-shadow:0 32px 90px rgba(10,30,20,.22)}
.shop-dialog .shop-form{gap:18px}
.shop-dialog .shop-notice{border-left-width:2px;background:#ebe9df}
.shop-dialog .shop-summary{background:rgba(255,253,247,.48);padding:16px;border:1px solid #c9d0c5}
.shop-dialog input,.shop-dialog select,.shop-dialog textarea{transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.shop-dialog input:focus,.shop-dialog select:focus,.shop-dialog textarea:focus{border-color:#173a2c;background:#fff;box-shadow:0 0 0 3px rgba(23,58,44,.08)}

/* Editorial pages should look finished even before the brand photography shoot. */
.editorial-hero{overflow:hidden}
.editorial-hero-photo{overflow:hidden}
.editorial-hero-photo img{transform:scale(1.015);transition:transform 1.1s var(--spring-ease)}
.editorial-hero:hover .editorial-hero-photo img{transform:scale(1.035)}
.future-card.has-photo{overflow:hidden;background:#173a2c;color:white;padding:0}
.future-card.has-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(.98);transition:transform .8s var(--spring-ease)}
.future-card.has-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,24,18,.03) 25%,rgba(10,24,18,.72) 100%)}
.future-card.has-photo>span,.future-card.has-photo>strong,.future-card.has-photo>p{position:relative;z-index:2;color:white}
.future-card.has-photo:hover>img{transform:scale(1.035)}
.future-card.has-photo p{color:rgba(255,255,255,.8)}
.event-gallery{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:12px;margin-top:34px}
.event-gallery figure{margin:0;min-height:430px;position:relative;overflow:hidden;background:#ddd}
.event-gallery figure:first-child{min-height:560px}
.event-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .8s var(--spring-ease)}
.event-gallery figure:hover img{transform:scale(1.035)}
.event-gallery figcaption{position:absolute;z-index:2;left:20px;bottom:18px;color:white;font:500 20px/1.1 'Playfair Display',Georgia,serif;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.event-gallery figure:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 55%,rgba(10,24,18,.55))}

/* Soft reveal vocabulary: not every block moves exactly the same way. */
.polish-reveal{opacity:0;transform:translateY(22px);transition:opacity .75s ease,transform .85s var(--spring-ease)}
.polish-reveal.polish-in{opacity:1;transform:none}
.polish-reveal[data-polish="image"]{transform:translateY(0);clip-path:inset(0 0 12% 0);transition:opacity .8s ease,clip-path 1s var(--spring-ease)}
.polish-reveal[data-polish="image"].polish-in{clip-path:inset(0)}

/* Hero entrance: one controlled opening gesture. */
@media(prefers-reduced-motion:no-preference){
  body:not(.site-ready) .hero-media img{opacity:.65;transform:scale(1.045)}
  body.site-ready .hero-media img{animation:springHeroImage 1.15s var(--spring-ease) both}
  body.site-ready .hero-copy>.eyebrow{animation:springHeroCopy .7s .08s both}
  body.site-ready .hero-copy>h1{animation:springHeroCopy .9s .16s both}
  body.site-ready .hero-copy>p{animation:springHeroCopy .85s .28s both}
  body.site-ready .hero-copy>.actions{animation:springHeroCopy .75s .4s both}
  @keyframes springHeroImage{from{opacity:.65;transform:scale(1.045)}to{opacity:1;transform:scale(1.002)}}
  @keyframes springHeroCopy{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}

/* Motion accessibility: all decorative motion yields to the OS preference. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  .ticker-track{animation:none!important}
  .reveal,.polish-reveal{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
  .hero-media img,.hero-copy>*,.editorial-media img,.editorial-hero-photo img,.occasion img,.product-img img,.catalog-image img,.related-image img{animation:none!important;transform:none!important;transition:none!important}
  .drawer,.overlay,.mobile-menu{transition:none!important}
}

@media(max-width:900px){
  .event-gallery{grid-template-columns:1fr 1fr}.event-gallery figure:first-child{grid-column:1/-1;min-height:480px}.event-gallery figure{min-height:340px}
}
@media(max-width:600px){
  .shop-dialog{width:calc(100% - 16px);padding:20px}
  .catalog-desc{min-height:0}
  .event-gallery{grid-template-columns:1fr}.event-gallery figure:first-child{grid-column:auto}.event-gallery figure,.event-gallery figure:first-child{min-height:360px}
}
