/*
Theme Name: Questa Mi Serve!
Theme URI: https://questamiserve.it
Author: Questa Mi Serve!
Description: Tema e-commerce responsive per il progetto Questa Mi Serve!, predisposto per WooCommerce.
Version: 1.0.0
Requires at least: 6.5
Requires PHP: 8.0
Text Domain: questamiserve
License: GNU General Public License v2 or later
*/

:root{
  --qms-ink:#151515;
  --qms-muted:#676767;
  --qms-paper:#fffdf8;
  --qms-card:#ffffff;
  --qms-line:#e9e5dc;
  --qms-yellow:#ffd84d;
  --qms-blue:#4d7cff;
  --qms-pink:#ff7a90;
  --qms-green:#88d498;
  --qms-orange:#ffad5a;
  --qms-radius:26px;
  --qms-shadow:0 16px 50px rgba(21,21,21,.09);
  --qms-max:1180px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--qms-ink);
  background:var(--qms-paper);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}
.qms-wrap{width:min(calc(100% - 36px),var(--qms-max));margin-inline:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header */
.qms-topbar{
  background:var(--qms-ink);color:#fff;text-align:center;
  padding:8px 16px;font-size:.85rem;font-weight:700;letter-spacing:.02em
}
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(255,253,248,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(233,229,220,.8)
}
.qms-header-inner{min-height:74px;display:flex;align-items:center;gap:26px}
.qms-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}
.qms-wordmark{font-size:1.3rem;font-weight:950;letter-spacing:-.055em}
.qms-wordmark b{
  display:inline-grid;place-items:center;background:var(--qms-yellow);
  border:2px solid var(--qms-ink);border-radius:999px;width:28px;height:28px;margin-left:3px
}
.custom-logo{max-height:50px;width:auto}
.qms-nav{margin-left:auto}
.qms-nav ul{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}
.qms-nav a{font-weight:750;font-size:.94rem}
.qms-nav a:hover{opacity:.58}
.qms-header-actions{display:flex;align-items:center;gap:10px}
.qms-cart{
  display:flex;align-items:center;gap:8px;border:1.5px solid var(--qms-ink);
  padding:9px 13px;border-radius:999px;font-weight:800;background:#fff
}
.qms-cart-count{display:grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:var(--qms-yellow);font-size:.75rem}
.qms-menu-toggle{display:none;border:0;background:none;font-size:1.5rem;padding:6px}

/* Hero */
.qms-hero{padding:68px 0 42px;overflow:hidden}
.qms-hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:42px;align-items:center}
.qms-kicker{
  display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--qms-line);
  padding:7px 12px;border-radius:999px;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em
}
.qms-kicker:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--qms-green)}
.qms-hero h1{
  font-size:clamp(3.4rem,7vw,6.7rem);line-height:.86;letter-spacing:-.075em;
  margin:22px 0 24px;max-width:900px
}
.qms-hero h1 .hl{position:relative;display:inline-block;z-index:1}
.qms-hero h1 .hl:after{
  content:"";position:absolute;left:-.05em;right:-.08em;bottom:.02em;height:.22em;
  background:var(--qms-yellow);z-index:-1;transform:rotate(-1.5deg);border-radius:20px
}
.qms-hero p{font-size:1.18rem;color:var(--qms-muted);max-width:600px;margin:0 0 28px}
.qms-buttons{display:flex;flex-wrap:wrap;gap:12px}
.qms-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:50px;padding:0 20px;border-radius:999px;border:2px solid var(--qms-ink);
  font-weight:900;transition:.18s ease
}
.qms-btn-primary{background:var(--qms-ink);color:#fff}
.qms-btn-secondary{background:#fff}
.qms-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(21,21,21,.12)}
.qms-hero-art{
  min-height:520px;position:relative;border-radius:38px;background:#f4f0e8;
  border:1px solid var(--qms-line);overflow:hidden;box-shadow:var(--qms-shadow)
}
.qms-blob{position:absolute;border:2px solid var(--qms-ink);border-radius:36px;box-shadow:8px 8px 0 var(--qms-ink)}
.qms-blob.one{width:54%;height:42%;left:9%;top:11%;background:var(--qms-yellow);transform:rotate(-7deg)}
.qms-blob.two{width:48%;height:38%;right:7%;bottom:12%;background:var(--qms-blue);transform:rotate(8deg)}
.qms-blob.three{width:30%;height:27%;right:8%;top:12%;background:var(--qms-pink);transform:rotate(11deg)}
.qms-sticker{
  position:absolute;z-index:3;background:#fff;border:2px solid var(--qms-ink);
  border-radius:999px;padding:12px 18px;font-weight:950;box-shadow:5px 5px 0 var(--qms-ink)
}
.qms-sticker.s1{left:15%;top:20%;transform:rotate(-8deg)}
.qms-sticker.s2{right:10%;bottom:22%;transform:rotate(6deg)}
.qms-big-mark{
  position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(5rem,11vw,9rem);
  font-weight:1000;letter-spacing:-.085em;transform:rotate(-7deg);z-index:2
}

/* Sections */
.qms-section{padding:70px 0}
.qms-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:30px}
.qms-section-head h2{font-size:clamp(2.2rem,5vw,4.1rem);line-height:.95;letter-spacing:-.06em;margin:0}
.qms-section-head p{color:var(--qms-muted);max-width:500px;margin:0}
.qms-products{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.qms-product-card{
  grid-column:span 4;background:var(--qms-card);border:1px solid var(--qms-line);
  border-radius:var(--qms-radius);overflow:hidden;box-shadow:0 10px 30px rgba(21,21,21,.04);
  transition:.2s ease;display:flex;flex-direction:column
}
.qms-product-card:hover{transform:translateY(-5px);box-shadow:var(--qms-shadow)}
.qms-product-card:nth-child(4),.qms-product-card:nth-child(5){grid-column:span 6}
.qms-product-media{aspect-ratio:4/3;background:#f3efe7;position:relative;overflow:hidden}
.qms-product-media img{width:100%;height:100%;object-fit:cover}
.qms-placeholder{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:20px}
.qms-placeholder .emoji{font-size:4.2rem;filter:drop-shadow(0 8px 16px rgba(0,0,0,.10))}
.qms-placeholder small{
  position:absolute;bottom:14px;right:14px;background:rgba(255,255,255,.9);
  border:1px solid var(--qms-line);padding:5px 8px;border-radius:999px;font-weight:800
}
.qms-product-card:nth-child(1) .qms-product-media{background:#e8efff}
.qms-product-card:nth-child(2) .qms-product-media{background:#fff0d9}
.qms-product-card:nth-child(3) .qms-product-media{background:#ece8ff}
.qms-product-card:nth-child(4) .qms-product-media{background:#e8f6eb}
.qms-product-card:nth-child(5) .qms-product-media{background:#fff0f2}
.qms-product-body{padding:22px;display:flex;flex-direction:column;gap:12px;flex:1}
.qms-product-top{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.qms-product-title{font-size:1.45rem;line-height:1.05;letter-spacing:-.035em;margin:0}
.qms-price{font-weight:950;font-size:1.22rem;white-space:nowrap}
.qms-product-desc{color:var(--qms-muted);margin:0}
.qms-card-link{margin-top:auto;font-weight:900;display:flex;align-items:center;gap:7px}
.qms-card-link span{transition:.18s ease}
.qms-product-card:hover .qms-card-link span{transform:translateX(4px)}

/* Value proposition */
.qms-dark{background:var(--qms-ink);color:#fff}
.qms-dark .qms-section-head p{color:#c9c9c9}
.qms-values{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.qms-value{border:1px solid #393939;border-radius:22px;padding:24px;background:#1c1c1c}
.qms-value-icon{font-size:2rem;margin-bottom:28px}
.qms-value h3{margin:0 0 8px;font-size:1.1rem}
.qms-value p{margin:0;color:#bcbcbc;font-size:.94rem}

/* How it works */
.qms-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.qms-step{padding:26px;border:1px solid var(--qms-line);background:#fff;border-radius:24px}
.qms-step-num{display:grid;place-items:center;width:42px;height:42px;background:var(--qms-yellow);border:2px solid var(--qms-ink);border-radius:50%;font-weight:950;margin-bottom:42px}
.qms-step h3{font-size:1.35rem;letter-spacing:-.03em;margin:0 0 8px}
.qms-step p{margin:0;color:var(--qms-muted)}

/* CTA */
.qms-cta{
  margin:30px auto 70px;width:min(calc(100% - 36px),var(--qms-max));background:var(--qms-yellow);
  border:2px solid var(--qms-ink);border-radius:34px;padding:52px;display:flex;align-items:center;justify-content:space-between;gap:30px;
  box-shadow:10px 10px 0 var(--qms-ink)
}
.qms-cta h2{font-size:clamp(2rem,5vw,4rem);line-height:.92;letter-spacing:-.06em;margin:0;max-width:720px}

/* Generic content + WooCommerce */
.qms-content{padding:50px 0 80px}
.entry-header h1{font-size:clamp(2.6rem,6vw,5rem);letter-spacing:-.06em;line-height:.95}
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,
.woocommerce a.button,.woocommerce #respond input#submit{
  background:var(--qms-ink)!important;color:#fff!important;border-radius:999px!important;
  padding:14px 20px!important;font-weight:900!important
}
.woocommerce div.product p.price,.woocommerce div.product span.price,
.woocommerce ul.products li.product .price{color:var(--qms-ink)!important;font-weight:950}
.woocommerce ul.products li.product a img{border-radius:20px;background:#f4f0e8}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-weight:900;font-size:1.15rem!important}
.woocommerce span.onsale{background:var(--qms-yellow)!important;color:var(--qms-ink)!important}
.woocommerce-message,.woocommerce-info{border-top-color:var(--qms-yellow)!important}
.woocommerce div.product div.images img{border-radius:24px}
.woocommerce-cart-form,.cart_totals,.woocommerce-checkout-review-order,.woocommerce-billing-fields{
  background:#fff;border:1px solid var(--qms-line);border-radius:22px;padding:22px
}
input[type=text],input[type=email],input[type=tel],input[type=password],textarea,select{
  border:1px solid #d9d4ca;border-radius:12px;padding:12px 13px;background:#fff
}

/* Footer */
.site-footer{background:#0d0d0d;color:#fff;padding:54px 0 24px}
.qms-footer-grid{display:grid;grid-template-columns:1.3fr .7fr .7fr;gap:40px}
.qms-footer-brand{font-size:2rem;font-weight:950;letter-spacing:-.06em;margin-bottom:14px}
.qms-footer-copy{color:#aaa;max-width:440px}
.qms-footer-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;color:#7e7e7e;margin-bottom:14px;font-weight:900}
.qms-footer-links{list-style:none;padding:0;margin:0}
.qms-footer-links li{margin:7px 0}
.qms-footer-bottom{border-top:1px solid #2d2d2d;margin-top:40px;padding-top:20px;color:#8e8e8e;font-size:.84rem;display:flex;justify-content:space-between;gap:20px}

/* Responsive */
@media (max-width:900px){
  .qms-hero-grid{grid-template-columns:1fr}
  .qms-hero-art{min-height:430px}
  .qms-product-card,.qms-product-card:nth-child(4),.qms-product-card:nth-child(5){grid-column:span 6}
  .qms-values{grid-template-columns:repeat(2,1fr)}
  .qms-footer-grid{grid-template-columns:1fr 1fr}
  .qms-footer-grid>div:first-child{grid-column:1/-1}
  .qms-nav{
    display:none;position:absolute;left:18px;right:18px;top:76px;background:#fff;
    border:1px solid var(--qms-line);border-radius:18px;padding:18px;box-shadow:var(--qms-shadow)
  }
  .qms-nav.is-open{display:block}
  .qms-nav ul{flex-direction:column;align-items:flex-start}
  .qms-menu-toggle{display:block;margin-left:auto}
  .qms-header-actions{margin-left:0}
}
@media (max-width:650px){
  .qms-wrap{width:min(calc(100% - 24px),var(--qms-max))}
  .qms-hero{padding-top:42px}
  .qms-hero h1{font-size:clamp(3.1rem,16vw,5rem)}
  .qms-hero-art{min-height:340px}
  .qms-section{padding:52px 0}
  .qms-section-head{display:block}
  .qms-section-head p{margin-top:14px}
  .qms-products{display:block}
  .qms-product-card{margin-bottom:14px}
  .qms-values,.qms-steps{grid-template-columns:1fr}
  .qms-cta{padding:34px 24px;display:block;margin-bottom:50px}
  .qms-cta .qms-btn{margin-top:24px}
  .qms-footer-grid{grid-template-columns:1fr}
  .qms-footer-grid>div:first-child{grid-column:auto}
  .qms-footer-bottom{display:block}
  .qms-footer-bottom span{display:block;margin-top:6px}
  .qms-wordmark{font-size:1.08rem}
  .qms-cart{padding:8px 10px}
}
