/*
Theme Name: FlowerFly Studio
Theme URI: https://flowerfly.shop
Description: Bespoke artisan storefront for FlowerFly Studio — hand-painted floral ceramic vases. Child theme of Astra.
Author: FlowerFly Studio
Template: astra
Version: 1.0.0
Text Domain: flowerfly-studio
*/

/* ============================================================
   FlowerFly Studio — Design System
   ============================================================ */
:root{
  --ff-cream:#FAF5EC;
  --ff-paper:#FFFFFF;
  --ff-ink:#20201C;
  --ff-muted:#6F6E63;
  --ff-sage:#5E7A63;
  --ff-sage-dk:#3F5645;
  --ff-terra:#C2724E;
  --ff-terra-dk:#A4583A;
  --ff-blush:#EFE2D2;
  --ff-line:#E7DCCB;
  --ff-shadow:0 14px 40px -18px rgba(60,45,30,.35);
  --ff-shadow-sm:0 6px 20px -12px rgba(60,45,30,.35);
  --ff-radius:16px;
  --ff-radius-sm:10px;
  --ff-serif:"Fraunces",Georgia,"Times New Roman",serif;
  --ff-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --ff-maxw:1200px;
}

/* ---------- Base ---------- */
body{
  font-family:var(--ff-sans);
  color:var(--ff-ink);
  background:var(--ff-cream);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,.ff-serif,.entry-title,.woocommerce-loop-product__title,.product_title{
  font-family:var(--ff-serif)!important;
  font-weight:560;
  letter-spacing:-.01em;
  line-height:1.12;
  color:var(--ff-ink);
}
a{color:var(--ff-sage-dk);text-decoration:none;transition:color .2s ease;}
a:hover{color:var(--ff-terra);}
.ff-wrap{max-width:var(--ff-maxw);margin:0 auto;padding:0 24px;}
img{max-width:100%;height:auto;}

/* ---------- Buttons ---------- */
.ff-btn,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,
.woocommerce #respond input#submit,.woocommerce a.button.alt,.woocommerce button.button.alt,
.wp-block-button__link,.ast-button,.menu-toggle{
  display:inline-block;
  background:var(--ff-terra);
  color:#fff!important;
  font-family:var(--ff-sans);
  font-weight:600;
  font-size:15px;
  letter-spacing:.02em;
  padding:14px 30px;
  border:none;
  border-radius:999px;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,box-shadow .2s ease;
  box-shadow:var(--ff-shadow-sm);
  line-height:1.2;
  text-decoration:none!important;
}
.ff-btn:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,
.woocommerce input.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,
.wp-block-button__link:hover{
  background:var(--ff-terra-dk);
  color:#fff!important;
  transform:translateY(-2px);
  box-shadow:var(--ff-shadow);
}
.ff-btn--ghost{
  background:transparent;color:var(--ff-ink)!important;
  border:1.5px solid var(--ff-ink);box-shadow:none;
}
.ff-btn--ghost:hover{background:var(--ff-ink);color:var(--ff-cream)!important;}
.ff-btn--light{background:#fff;color:var(--ff-ink)!important;}
/* beat Astra's .entry-content a underline (higher specificity) */
.entry-content a.ff-btn,.ff-hero a.ff-btn,.ff-section a.ff-btn,.ff-footer a.ff-btn,
.entry-content a.ff-cat,.ff-section a.ff-cat{text-decoration:none!important;}

/* ---------- Header ---------- */
.site-header,.ast-primary-header-bar{background:var(--ff-cream)!important;border-bottom:1px solid var(--ff-line);}
.site-title a,.site-title{font-family:var(--ff-serif)!important;font-weight:600;letter-spacing:-.02em;color:var(--ff-ink)!important;}
.main-header-menu a,.ast-builder-menu .menu-item a{font-size:15px;font-weight:500;letter-spacing:.01em;}
.ast-site-identity{padding:12px 0;}

/* ---------- Sections ---------- */
.ff-section{padding:92px 0;}
.ff-section--tight{padding:60px 0;}
.ff-section--cream{background:var(--ff-cream);}
.ff-section--paper{background:var(--ff-paper);}
.ff-section--blush{background:var(--ff-blush);}
.ff-section--sage{background:var(--ff-sage-dk);color:#F3EFE6;}
.ff-section--sage h2,.ff-section--sage h3{color:#fff;}
.ff-eyebrow{
  display:inline-block;font-family:var(--ff-sans);font-weight:700;
  font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ff-terra);margin-bottom:16px;
}
.ff-section--sage .ff-eyebrow{color:#D9B79E;}
.ff-h2{font-size:clamp(28px,4vw,46px);margin:0 0 18px;}
.ff-lead{font-size:18.5px;color:var(--ff-muted);max-width:640px;margin:0 auto;}
.ff-center{text-align:center;}
.ff-section--sage .ff-lead{color:#D7D2C5;}

/* ---------- Hero ---------- */
.ff-hero{position:relative;min-height:88vh;display:flex;align-items:center;
  background-size:cover;background-position:center;color:#fff;}
.ff-hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(28,24,18,.66) 0%,rgba(28,24,18,.30) 55%,rgba(28,24,18,.08) 100%);}
.ff-hero__inner{position:relative;z-index:2;max-width:640px;}
.ff-hero h1{color:#fff;font-size:clamp(40px,6vw,72px);margin:0 0 22px;line-height:1.04;}
.ff-hero p{font-size:20px;color:#F2ECE2;margin:0 0 32px;max-width:520px;}
.ff-hero .ff-eyebrow{color:#EAC9B3;}
.ff-hero__cta{display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- Feature/trust row ---------- */
.ff-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;}
.ff-trust__item{text-align:center;}
.ff-trust__item .ico{font-size:26px;margin-bottom:10px;display:block;}
.ff-trust__item h4{font-family:var(--ff-sans)!important;font-weight:700;font-size:15.5px;margin:0 0 6px;letter-spacing:.01em;}
.ff-trust__item p{font-size:14px;color:var(--ff-muted);margin:0;}

/* ---------- Grid of cards (story / steps) ---------- */
.ff-grid{display:grid;gap:28px;}
.ff-grid--3{grid-template-columns:repeat(3,1fr);}
.ff-grid--2{grid-template-columns:repeat(2,1fr);}
.ff-card{background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius);
  padding:34px 30px;box-shadow:var(--ff-shadow-sm);}
.ff-card h3{font-size:22px;margin:0 0 10px;}
.ff-card p{color:var(--ff-muted);font-size:15.5px;margin:0;}
.ff-step__num{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;
  border-radius:50%;background:var(--ff-blush);color:var(--ff-terra-dk);font-family:var(--ff-serif);
  font-size:22px;font-weight:600;margin-bottom:16px;}

/* ---------- Split (image + text) ---------- */
.ff-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.ff-split img{border-radius:var(--ff-radius);box-shadow:var(--ff-shadow);width:100%;object-fit:cover;}
.ff-split__body h2{margin-bottom:18px;}
.ff-split__body p{color:var(--ff-muted);margin:0 0 16px;}

/* ---------- WooCommerce product grid ---------- */
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{
  background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius);
  padding:14px 14px 22px;box-shadow:var(--ff-shadow-sm);
  transition:transform .25s ease,box-shadow .25s ease;overflow:hidden;text-align:left;}
.woocommerce ul.products li.product:hover{transform:translateY(-6px);box-shadow:var(--ff-shadow);}
.woocommerce ul.products li.product a img{border-radius:var(--ff-radius-sm);margin-bottom:16px;
  transition:transform .5s ease;aspect-ratio:1/1;object-fit:cover;width:100%;}
.woocommerce ul.products li.product:hover a img{transform:scale(1.05);}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:19px;padding:0 4px;margin:0 0 6px;}
.woocommerce ul.products li.product .price{color:var(--ff-sage-dk)!important;font-weight:600;font-size:17px;padding:0 4px;}
.woocommerce ul.products li.product .price del{color:var(--ff-muted)!important;font-weight:400;}
.woocommerce ul.products li.product .button{margin-top:14px;}
.woocommerce ul.products li.product .ast-onsale-card,.woocommerce span.onsale{
  background:var(--ff-sage)!important;color:#fff!important;border-radius:999px;font-weight:600;}

/* ---------- Single product ---------- */
.woocommerce div.product .product_title{font-size:clamp(28px,4vw,40px);}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--ff-sage-dk);font-weight:600;}
.woocommerce div.product .woocommerce-product-gallery img{border-radius:var(--ff-radius);}
.woocommerce-tabs .panel{background:var(--ff-paper);border-radius:var(--ff-radius);padding:28px;}

/* ---------- Notices / COD badge ---------- */
.woocommerce-info,.woocommerce-message{border-top-color:var(--ff-sage)!important;}
.ff-cod-badge{display:inline-flex;align-items:center;gap:8px;background:var(--ff-blush);
  color:var(--ff-terra-dk);font-weight:600;font-size:14px;padding:8px 16px;border-radius:999px;margin:14px 0;}

/* ---------- Generic page content ---------- */
.ff-page{max-width:820px;margin:0 auto;padding:60px 24px 80px;}
.ff-page h1{font-size:clamp(32px,5vw,48px);margin-bottom:8px;}
.ff-page h2{font-size:26px;margin:38px 0 12px;}
.ff-page h3{font-size:20px;margin:26px 0 8px;}
.ff-page p,.ff-page li{color:#3a3a33;}
.ff-page ul,.ff-page ol{padding-left:22px;}
.ff-page li{margin:6px 0;}
.ff-updated{color:var(--ff-muted);font-size:14px;margin-bottom:30px;}
.ff-legal-box{background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius);padding:24px 28px;margin:22px 0;}

/* ---------- FAQ ---------- */
.ff-faq details{background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);
  padding:18px 22px;margin-bottom:14px;}
.ff-faq summary{font-family:var(--ff-serif);font-size:19px;font-weight:560;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;}
.ff-faq summary::-webkit-details-marker{display:none;}
.ff-faq summary::after{content:"+";font-size:24px;color:var(--ff-terra);transition:transform .2s;}
.ff-faq details[open] summary::after{transform:rotate(45deg);}
.ff-faq details p{margin:14px 0 2px;color:var(--ff-muted);}

/* ---------- Contact ---------- */
.ff-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;}
.ff-contact-card{background:var(--ff-paper);border:1px solid var(--ff-line);border-radius:var(--ff-radius);padding:30px;}
.ff-contact-card .row{display:flex;gap:12px;align-items:flex-start;margin-bottom:18px;}
.ff-contact-card .ico{font-size:20px;}
.wpcf7 input,.wpcf7 textarea,.ff-contact-card input,.ff-contact-card textarea{
  width:100%;padding:13px 16px;border:1px solid var(--ff-line);border-radius:var(--ff-radius-sm);
  font-family:var(--ff-sans);font-size:15px;background:var(--ff-cream);margin-bottom:14px;}

/* ---------- Footer ---------- */
.ff-footer{background:var(--ff-sage-dk);color:#D9D4C7;padding:64px 0 28px;}
.ff-footer a{color:#D9D4C7;}
.ff-footer a:hover{color:#fff;}
.ff-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px;}
.ff-footer h4{color:#fff;font-family:var(--ff-sans)!important;font-weight:700;font-size:14px;
  letter-spacing:.08em;text-transform:uppercase;margin:0 0 16px;}
.ff-footer__brand .logo{font-family:var(--ff-serif);font-size:24px;color:#fff;margin-bottom:12px;display:block;}
.ff-footer ul{list-style:none;margin:0;padding:0;}
.ff-footer li{margin:9px 0;font-size:15px;}
.ff-footer__bottom{border-top:1px solid rgba(255,255,255,.14);margin-top:48px;padding-top:22px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13.5px;color:#B7B2A4;}

/* ---------- Shop-by-style category cards ---------- */
.ff-cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.ff-cat{position:relative;aspect-ratio:3/4;border-radius:var(--ff-radius);overflow:hidden;
  display:flex;align-items:flex-end;background-size:cover;background-position:center;
  box-shadow:var(--ff-shadow-sm);transition:transform .25s ease,box-shadow .25s ease;}
.ff-cat::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,18,14,.74),rgba(20,18,14,0) 62%);transition:background .25s ease;}
.ff-cat span{position:relative;z-index:2;color:#fff;font-family:var(--ff-serif);font-size:18px;
  font-weight:560;padding:18px 18px 20px;width:100%;line-height:1.2;}
.ff-cat:hover{transform:translateY(-5px);box-shadow:var(--ff-shadow);}
.ff-cat:hover::after{background:linear-gradient(to top,rgba(122,72,44,.82),rgba(20,18,14,.05) 70%);}

/* ---------- Hide Astra's default footer (we render our own) ---------- */
.site-footer,#colophon{display:none!important;}

/* ---------- Reveal animation ---------- */
.reveal{opacity:0;transform:translateY(26px);filter:blur(6px);
  transition:opacity .8s ease,transform .8s ease,filter .8s ease;}
.reveal.is-in{opacity:1;transform:none;filter:none;}

/* ---------- Responsive ---------- */
@media (max-width:880px){
  .ff-trust{grid-template-columns:repeat(2,1fr);}
  .ff-grid--3{grid-template-columns:1fr;}
  .ff-split{grid-template-columns:1fr;gap:30px;}
  .ff-contact-grid{grid-template-columns:1fr;}
  .ff-footer__grid{grid-template-columns:1fr 1fr;gap:30px;}
  .ff-section{padding:60px 0;}
  .ff-hero{min-height:78vh;}
  .ff-cat-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:520px){
  .ff-trust{grid-template-columns:1fr;}
  .ff-footer__grid{grid-template-columns:1fr;}
  .ff-cat-grid{grid-template-columns:1fr;}
}
