/* Blocks of the single pages: offer (includes/offer-page.php), brand (brand-page.php, section at the end) and the offer
   combinations (dynamic-archive.php). Loaded only there, after cards.css (it reuses .sc-card__brandlogo, .sc-card__flag,
   .sc-card__when). Shared scale of style.css: --sc-radius 16px containers, --sc-radius-control 12px controls, --sc-font-title. */
.sc-offer-main { padding:9rem 5% 7rem; } /* top: the production header is taller (announcement bar above it); bottom: the footer's curved top */
.sc-offer { max-width:1160px; margin:0 auto; display:grid; gap:20px; color:var(--sc-text); font-family:ubuntu, sans-serif; }
.sc-offer *, .sc-offer *::before, .sc-offer *::after { box-sizing:border-box; }
.sc-offer p, .sc-offer h1, .sc-offer h2 { margin:0; }
.sc-offer-crumbs { font-size:14px; }

/* Expired band */
.sc-offer-expired { padding:12px 16px; border-radius:var(--sc-radius-control); background:var(--sc-text); color:#fff; }
.sc-offer-expired a { color:var(--sc-mint); font-weight:700; }

/* Hero: the cover is the small column (max 400px), the facts and the button the big one */
.sc-offer-hero { display:grid; grid-template-columns:minmax(0, 400px) minmax(0, 1fr); gap:28px; align-items:start; padding:20px; background:var(--sc-card); border:1px solid var(--sc-line); border-radius:var(--sc-radius); }
.sc-offer-hero__media { position:relative; aspect-ratio:3/2; border-radius:var(--sc-radius-control); overflow:hidden; background:var(--sc-cream); }
.sc-offer-hero__media img { display:block; width:100%; height:100%; object-fit:cover; }
.sc-offer-hero__body { display:flex; flex-direction:column; gap:12px; min-width:0; }
.sc-offer-brand { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:14px; color:var(--sc-muted); }
.sc-offer-brand a { color:var(--sc-green); font-weight:700; text-decoration:none; }
.sc-offer-brand a:hover { text-decoration:underline; }
.sc-offer-title { font-family:var(--sc-font-title); font-size:clamp(24px, 2.6vw, 32px); font-weight:700; line-height:1.2; color:var(--sc-text); }
.sc-offer-lead { font-size:18px; line-height:1.45; }
.sc-offer-seo { font-family:ubuntu, sans-serif; font-size:14px; font-weight:500; line-height:1.4; color:var(--sc-muted); }
.sc-offer-benefit { align-self:flex-start; padding:6px 16px; border-radius:999px; background:var(--sc-mint-soft); color:var(--sc-green); font-family:var(--sc-font-title); font-size:18px; font-weight:700; }
.sc-offer-meta { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font-size:14px; color:var(--sc-muted); }
.sc-offer-chip { padding:2px 10px; border:1px solid var(--sc-line); border-radius:999px; color:var(--sc-text); }
.sc-offer-code { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; padding:10px 14px; border:2px dashed var(--sc-mint); border-radius:var(--sc-radius-control); }
.sc-offer-code strong { font-family:ui-monospace, Menlo, monospace; font-size:18px; letter-spacing:.08em; }
.sc-offer-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:4px; }
.sc-offer-actions .sc-ui-btn--primary { min-height:50px; padding:10px 24px; font-size:17px; }
.sc-offer-social { display:inline-flex; align-items:center; gap:6px; }

/* Quick facts */
.sc-offer-facts { display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:12px; }
.sc-offer-fact { padding:14px 16px; background:var(--sc-card); border:1px solid var(--sc-line); border-radius:var(--sc-radius); }
.sc-offer-fact__label { font-size:12px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--sc-muted); margin-bottom:4px !important; }
.sc-offer-fact__value { font-weight:700; line-height:1.4; }
.sc-offer-fact__value small { display:block; font-weight:400; font-size:13px; color:var(--sc-muted); margin-top:2px; }
.sc-offer-fact__value a { color:var(--sc-green); }
.sc-offer-cond summary { cursor:pointer; color:var(--sc-green); }
.sc-offer-cond div { font-weight:400; font-size:14px; margin-top:8px; }

/* Sections */
.sc-offer-sec { display:grid; gap:12px; padding:20px; background:var(--sc-card); border:1px solid var(--sc-line); border-radius:var(--sc-radius); }
.sc-offer-sec h2 { font-family:var(--sc-font-title); font-size:22px; font-weight:700; }
.sc-offer-sec__head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; }
.sc-offer-views { display:flex; gap:6px; }
.sc-offer-text { line-height:1.6; }
.sc-offer-cards { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:20px; }
/* "Lascia una recensione": a <summary>, which the sc-ui-btn rules (a / button only) don't reach — the button look is set here */
.sc-offer-review > summary { list-style:none; display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:6px 16px; border:2px solid var(--sc-green); border-radius:var(--sc-radius-control); background:transparent; color:var(--sc-green); font-size:15px; font-weight:700; cursor:pointer; }
.sc-offer-review > summary:hover, .sc-offer-review[open] > summary { background:var(--sc-mint-soft); }
.sc-offer-review > summary::-webkit-details-marker { display:none; }
.sc-offer-review[open] > summary { margin-bottom:12px; }

@media (max-width: 1024px) {
  .sc-offer-hero { grid-template-columns:minmax(0, 320px) minmax(0, 1fr); gap:20px; }
  .sc-offer-cards { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .sc-offer-main { padding:7rem 4% 6rem; }
  .sc-offer-hero { grid-template-columns:minmax(0, 1fr); padding:14px; gap:14px; }
  .sc-offer-actions .sc-ui-btn { flex:1 1 100%; }
  .sc-offer-sec { padding:16px; }
}

/* Combination archive pagination (dynamic-archive.php) */
.sc-offer-pages ul { list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:6px; margin:0; padding:0; }
.sc-offer-pages a, .sc-offer-pages span { display:inline-flex; min-width:40px; height:40px; align-items:center; justify-content:center; padding:0 10px; border:1px solid var(--sc-line); border-radius:var(--sc-radius-control); background:var(--sc-card); color:var(--sc-text); text-decoration:none; }
.sc-offer-pages .current { background:var(--sc-green); border-color:var(--sc-green); color:var(--sc-mint); }
.sc-offer-code--note { border-style:solid; border-color:var(--sc-line); font-size:15px; }

/* Share options, open (sc_share_menu open="1") */
.sc-offer .sc-share-menu--open { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.sc-share-label { font-size:14px; font-weight:700; color:var(--sc-muted); }
.sc-share-items { display:flex; gap:6px; }
.sc-offer .sc-share-menu--open .sc-share-item { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; padding:0 !important; border:1px solid var(--sc-line) !important; border-radius:50%; background:#fff; color:var(--sc-green); font-size:17px; text-decoration:none; cursor:pointer; }
.sc-offer .sc-share-menu--open .sc-share-item:hover, .sc-offer .sc-share-menu--open .sc-share-item:focus-visible { background:var(--sc-green) !important; border-color:var(--sc-green) !important; color:var(--sc-mint); font-size:17px; }
.sc-offer .sc-share-menu--open .sc-share-copy.is-done { background:var(--sc-mint-soft) !important; }

/* Site Reviews form: fields and button in the site's look (its button comes with Elementor's button classes) */
.sc-offer .glsr input[type="text"], .sc-offer .glsr input[type="email"], .sc-offer .glsr textarea { border:1px solid var(--sc-line); border-radius:var(--sc-radius-control); padding:10px 14px; font:inherit; }
.sc-offer .glsr input:focus, .sc-offer .glsr textarea:focus { outline:none; border-color:var(--sc-green); box-shadow:0 0 0 3px var(--sc-mint-soft); }
.sc-offer .glsr button[type="submit"] { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 20px !important; border:2px solid var(--sc-green) !important; border-radius:var(--sc-radius-control) !important; background:var(--sc-green) !important; color:var(--sc-mint) !important; font-family:ubuntu, sans-serif !important; font-size:16px !important; font-weight:700 !important; box-shadow:none !important; cursor:pointer; }
.sc-offer .glsr button[type="submit"]:hover, .sc-offer .glsr button[type="submit"]:focus { background:var(--sc-mint) !important; border-color:var(--sc-mint) !important; color:var(--sc-green) !important; }

/* Loyalty programme chip with a link */
a.sc-offer-chip { text-decoration:none; }
.sc-offer-chip--mint { background:var(--sc-mint-soft); border-color:var(--sc-mint-soft); color:var(--sc-green); font-weight:700; }
a.sc-offer-chip--mint:hover { border-color:var(--sc-green); }

/* Brand page (brand-page.php) */
.sc-brand-hero { grid-template-columns:minmax(0, 300px) minmax(0, 1fr); }
.sc-brand-hero__logo { background:#fff; border:1px solid var(--sc-line); }
.sc-brand-hero__logo img { object-fit:contain; }
.sc-brand-hero__logo .sc-card__initial { display:grid; place-items:center; height:100%; }
.sc-brand-name { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.sc-brand-name .badge { padding:2px 10px; border-radius:999px; background:var(--sc-mint-soft); color:var(--sc-green); font-size:12px; font-weight:700; }
.sc-brand-name .sc-claim-btn { border-radius:var(--sc-radius-control); padding:5px 12px; font-size:13px; }
.sc-brand-desc { line-height:1.6; color:var(--sc-text); }
.sc-brand-desc, .sc-brand-desc * { text-align:left !important; } /* descriptions often come centered from the editor */
.sc-brand-desc p { margin:0 0 8px; }
.sc-brand-links { display:inline-flex; flex-wrap:wrap; gap:6px; }
.sc-brand-links .sc-brand-link { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid var(--sc-line); border-radius:50%; background:#fff; color:var(--sc-green); font-size:17px; text-decoration:none; box-shadow:none; }
.sc-brand-links .sc-brand-link:hover { background:var(--sc-green); border-color:var(--sc-green); color:var(--sc-mint); }
.sc-brand-where { max-width:420px; }
.sc-brand-shop { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:16px; align-items:center; padding:22px; border-radius:var(--sc-radius); background:var(--sc-green); color:var(--sc-cream); }
.sc-brand-shop h2 { font-family:var(--sc-font-title); font-size:22px; font-weight:700; color:var(--sc-cream); }
.sc-brand-shop__kicker { font-size:12px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--sc-mint); }
.sc-brand-shop__summary { font-size:17px; font-weight:700; margin-top:6px !important; }
.sc-brand-shop ul { margin:8px 0 0; padding-left:18px; line-height:1.6; }
.sc-brand .sc-brand-shop__cta { background:var(--sc-mint); border-color:var(--sc-mint); color:var(--sc-green); }
.sc-brand .sc-brand-shop__cta:hover { background:var(--sc-cream); border-color:var(--sc-cream); color:var(--sc-green); }
@media (max-width: 767px) {
  .sc-brand-hero { grid-template-columns:minmax(0, 1fr); }
  .sc-brand-hero__logo { max-width:240px; }
  .sc-brand-shop { grid-template-columns:minmax(0, 1fr); }
}
/* .tracked-brand-button (style.css) is a 50px green circle everywhere: here the website is a normal button, the rest small icons */
.sc-brand .sc-offer-actions a.tracked-brand-button.sc-ui-btn { width:auto; height:auto; min-height:50px; padding:10px 24px; gap:8px; border-radius:var(--sc-radius-control); font-size:17px; box-shadow:none; background:var(--sc-green); color:var(--sc-mint); }
.sc-brand .sc-offer-actions a.tracked-brand-button.sc-ui-btn:hover { background:var(--sc-mint); border-color:var(--sc-mint); color:var(--sc-green); }
.sc-brand-links .sc-brand-link { box-shadow:none; }
/* the X icon class exists in no stylesheet (it was blank on the old template too) */
.sc-brand-link .social-x-icon::before { content:"𝕏"; font-style:normal; font-weight:700; font-size:16px; line-height:1; }
