/*
Theme Name: SORFAA Storefront (Extendable Child)
Theme URI: https://sorfaa.com
Description: Premium Bengali storefront presentation for SORFAA. Presentation only; protected checkout, CartFlows, tracking and WooCommerce data remain untouched.
Author: SORFAA
Template: extendable
Text Domain: sorfaa-child
Version: 1.5.0
*/

:root {
  --sorfaa-ivory: #faf7f2;
  --sorfaa-paper: #fffdfb;
  --sorfaa-plum: #4a1835;
  --sorfaa-plum-deep: #3b1028;
  --sorfaa-blush: #f5dedf;
  --sorfaa-blush-soft: #fbefed;
  --sorfaa-gold: #c9a15c;
  --sorfaa-ink: #25181f;
  --sorfaa-muted: #70646a;
  --sorfaa-line: rgba(74, 24, 53, 0.12);
  --sorfaa-shadow: 0 16px 44px rgba(74, 24, 53, 0.09);
  --sorfaa-container: 1360px;
  --sorfaa-gutter: clamp(20px, 4vw, 56px);
}

body { background: var(--sorfaa-paper); color: var(--sorfaa-ink); font-family: "Hind Siliguri", sans-serif; font-size: 17px; line-height: 1.65; }
body :where(h1,h2,h3,h4,p,a,button,input) { letter-spacing: 0; }
.wp-site-blocks { overflow-x: clip; }
.sorfaa-home { margin-top: 0 !important; }
.sorfaa-home > * { margin-block-start: 0; }
.sorfaa-home .alignwide, .sorfaa-header .alignwide, .sorfaa-topbar .alignwide, .sorfaa-footer .alignwide { box-sizing: border-box; max-width: var(--sorfaa-container); width: 100%; }

/* Buttons */
.wp-block-button__link, .wc-block-components-product-button__button, .wp-element-button { border-radius: 7px !important; font-size: 1rem; font-weight: 600; min-height: 48px; padding: .75rem 1.6rem !important; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
.wp-block-button__link { background: var(--sorfaa-plum) !important; color: var(--sorfaa-ivory) !important; }
.wp-block-button__link:hover { background: var(--sorfaa-plum-deep) !important; transform: translateY(-1px); }
.wp-block-button.is-style-sorfaa-outline .wp-block-button__link { background: transparent !important; border: 1px solid var(--sorfaa-plum) !important; color: var(--sorfaa-plum) !important; }
.wp-block-button.is-style-sorfaa-outline .wp-block-button__link:hover { background: var(--sorfaa-plum) !important; color: var(--sorfaa-ivory) !important; }

/* Header */
.sorfaa-topbar { background: var(--sorfaa-plum); color: var(--sorfaa-ivory); font-size: .82rem; }
.sorfaa-topbar-inner { min-height: 38px; padding-inline: var(--sorfaa-gutter); }
.sorfaa-topbar p { color: inherit; margin: 0; white-space: nowrap; }
.sorfaa-topbar p span { color: var(--sorfaa-blush); margin-right: .25rem; }
.sorfaa-header { background: var(--sorfaa-paper); border-bottom: 1px solid var(--sorfaa-line); }
.sorfaa-header-inner { min-height: 104px; padding-inline: var(--sorfaa-gutter); gap: clamp(24px, 4vw, 60px); }
.sorfaa-brand { align-items: center; display: flex; flex: 0 0 auto; width: 190px; }
.sorfaa-brand img { display: block; height: auto; max-height: 88px; object-fit: contain; width: 100%; }
.sorfaa-nav { flex: 1; }
.sorfaa-nav .wp-block-navigation__container { gap: clamp(16px, 2.4vw, 34px); }
.sorfaa-nav a { color: var(--sorfaa-ink) !important; font-size: 1rem; font-weight: 500; text-decoration: none; }
.sorfaa-nav .current-menu-item > a, .sorfaa-nav a:hover { color: var(--sorfaa-plum) !important; }
.sorfaa-header-icons { flex: 0 0 auto; gap: 4px; }
.sorfaa-header .wp-block-search { margin: 0; }
.sorfaa-header .wp-block-search__button.has-icon, .sorfaa-header .sorfaa-account .wc-block-customer-account__link, .sorfaa-header .wc-block-mini-cart__button { align-items: center; background: transparent !important; border: 0 !important; border-radius: 50%; color: var(--sorfaa-plum) !important; display: inline-flex; height: 44px; justify-content: center; margin: 0; padding: 0 !important; width: 44px; }
.sorfaa-header .wp-block-search__button:hover, .sorfaa-header .sorfaa-account .wc-block-customer-account__link:hover, .sorfaa-header .wc-block-mini-cart__button:hover { background: var(--sorfaa-blush-soft) !important; }
.sorfaa-header .wc-block-customer-account__account-icon { height: 22px; width: 22px; }
.wc-block-mini-cart__badge { background: var(--sorfaa-plum) !important; color: var(--sorfaa-ivory) !important; }

/* Hero */
.sorfaa-home-hero { background: linear-gradient(96deg, var(--sorfaa-blush-soft) 0%, var(--sorfaa-ivory) 52%, var(--sorfaa-blush) 100%); position: relative; }
.sorfaa-home-hero::before, .sorfaa-final-cta::before, .sorfaa-final-cta::after { color: rgba(74,24,53,.12); content: "❧"; font-family: Georgia, serif; font-size: 8rem; line-height: 1; pointer-events: none; position: absolute; }
.sorfaa-home-hero::before { bottom: -18px; left: 1.5%; transform: rotate(-25deg); }
.sorfaa-hero-grid { gap: 0; margin: 0 auto; min-height: 620px; max-width: var(--sorfaa-container); }
.sorfaa-hero-copy { box-sizing: border-box; flex-basis: 53% !important; padding: 80px clamp(42px, 5vw, 82px); position: relative; z-index: 2; }
.sorfaa-kicker { color: var(--sorfaa-plum); font-size: 1rem; font-weight: 600; margin: 0 0 18px; }
.sorfaa-kicker::before, .sorfaa-kicker::after { background: var(--sorfaa-gold); content: ""; display: inline-block; height: 1px; margin: 0 10px 3px 0; width: 28px; }
.sorfaa-kicker::after { margin: 0 0 3px 10px; }
.sorfaa-hero-copy h1 { color: var(--sorfaa-plum); font-size: clamp(3.25rem, 4.8vw, 5.25rem); font-weight: 700; line-height: 1.12; margin: 0 0 22px; }
.sorfaa-hero-lead { color: var(--sorfaa-ink); font-size: 1.25rem; line-height: 1.75; margin: 0 0 30px; max-width: 570px; }
.sorfaa-hero-copy .wp-block-buttons { gap: 14px; }
.sorfaa-hero-media { flex-basis: 47% !important; min-height: 620px; }
.sorfaa-hero-figure { background: var(--sorfaa-blush); height: 100%; margin: 0; min-height: 620px; overflow: hidden; position: relative; }
.sorfaa-hero-figure img { display: block; height: 100%; object-fit: cover; object-position: right center; width: 100%; }

/* Collection */
.sorfaa-collection { box-sizing: border-box; max-width: var(--sorfaa-container) !important; padding: 62px var(--sorfaa-gutter) 66px; width: 100%; }
.sorfaa-section-heading { margin-bottom: 38px; text-align: center; }
.sorfaa-section-heading h2 { color: var(--sorfaa-plum); font-size: clamp(2rem, 3vw, 2.85rem); line-height: 1.25; margin: 0; }
.sorfaa-section-heading h2::before, .sorfaa-section-heading h2::after { background: var(--sorfaa-gold); content: ""; display: inline-block; height: 1px; margin: 0 14px 6px; width: 36px; }
.sorfaa-section-heading p { color: var(--sorfaa-muted); font-size: 1.08rem; margin: 6px 0 0; }
.sorfaa-products .wc-block-product-template { gap: clamp(18px, 2.2vw, 32px); }
.sorfaa-products .wc-block-product, .sorfaa-slider .wc-block-product { background: var(--sorfaa-paper); border: 1px solid var(--sorfaa-line); border-radius: 7px; box-shadow: 0 8px 24px rgba(74,24,53,.04); overflow: hidden; padding: 0 0 18px !important; transition: box-shadow .25s ease, transform .25s ease; }
.sorfaa-products .wc-block-product:hover, .sorfaa-slider .wc-block-product:hover { box-shadow: var(--sorfaa-shadow); transform: translateY(-3px); }
.sorfaa-products .wc-block-components-product-image, .sorfaa-slider .wc-block-components-product-image { margin-bottom: 16px; overflow: hidden; }
.sorfaa-products .wc-block-components-product-image img { aspect-ratio: 4 / 5; border-radius: 5px; object-fit: cover; transition: transform .35s ease; width: 100%; }
.sorfaa-products .wc-block-product:hover img { transform: scale(1.02); }
.sorfaa-products .sorfaa-card-title, .sorfaa-slider .sorfaa-card-title { font-size: 1.08rem !important; font-weight: 600; line-height: 1.5; margin: 0 18px 6px; min-height: 3.25rem; text-align: left !important; }
.sorfaa-products .sorfaa-card-title a { color: var(--sorfaa-ink) !important; text-decoration: none; }
.sorfaa-products .wc-block-components-product-price, .sorfaa-slider .wc-block-components-product-price { color: var(--sorfaa-plum); font-size: 1rem; font-weight: 600; margin: 0 18px 14px; text-align: left; }
.sorfaa-products .wp-block-button__link, .sorfaa-products .wc-block-components-product-button__button, .sorfaa-slider .wp-block-button__link, .sorfaa-slider .wc-block-components-product-button__button { background: transparent !important; border: 1px solid var(--sorfaa-gold) !important; color: var(--sorfaa-plum) !important; font-size: .95rem; margin-inline: 18px; min-height: 44px; padding: .58rem 1.15rem !important; width: calc(100% - 36px); }
.sorfaa-products .wp-block-button__link:hover, .sorfaa-products .wc-block-components-product-button__button:hover { background: var(--sorfaa-plum) !important; border-color: var(--sorfaa-plum) !important; color: var(--sorfaa-ivory) !important; }
.sorfaa-view-all { font-size: 1rem; margin: 20px 0 0; }
.sorfaa-view-all a { color: var(--sorfaa-plum); font-weight: 600; text-decoration: none; }

/* Trust strip */
.sorfaa-trust-strip { background: var(--sorfaa-blush-soft); padding: 34px var(--sorfaa-gutter); }
.sorfaa-trust-grid { gap: 0; margin: 0 auto; }
.sorfaa-trust-item { align-items: center; display: flex; gap: 16px; justify-content: center; min-height: 68px; padding: 6px 22px; }
.sorfaa-trust-grid .wp-block-column + .wp-block-column { border-left: 1px solid var(--sorfaa-line); }
.sorfaa-line-icon { color: var(--sorfaa-plum); font-family: Georgia, serif; font-size: 2.25rem; line-height: 1; }
.sorfaa-trust-item strong, .sorfaa-trust-item small { display: block; }
.sorfaa-trust-item strong { color: var(--sorfaa-ink); font-size: 1rem; }
.sorfaa-trust-item small { color: var(--sorfaa-muted); font-size: .84rem; }

/* Story + information */
.sorfaa-story-info { display: grid; gap: 24px; grid-template-columns: minmax(0, 1.45fr) minmax(390px, .8fr); padding: 64px var(--sorfaa-gutter) 48px; }
.sorfaa-story-panel { background: var(--sorfaa-blush-soft); border-radius: 7px; display: grid; grid-template-columns: 1fr 1.05fr; min-height: 540px; overflow: hidden; }
.sorfaa-story-copy { align-self: center; padding: clamp(38px, 5vw, 72px); }
.sorfaa-story-copy h2, .sorfaa-detail-card h2 { color: var(--sorfaa-plum); font-size: clamp(1.7rem, 2.4vw, 2.6rem); line-height: 1.25; margin: 0 0 14px; }
.sorfaa-story-copy p { color: var(--sorfaa-ink); font-size: 1.1rem; line-height: 1.8; }
.sorfaa-story-figure { height: 100%; margin: 0; min-height: 540px; overflow: hidden; }
.sorfaa-story-figure img { height: 100%; object-fit: cover; object-position: center; width: 100%; }
.sorfaa-info-stack { display: grid; gap: 20px; }
.sorfaa-detail-card { background: var(--sorfaa-paper); border: 1px solid var(--sorfaa-line); border-radius: 7px; box-shadow: 0 8px 24px rgba(74,24,53,.045); padding: 30px; }
.sorfaa-detail-card h2 { font-size: 1.65rem; }
.sorfaa-detail-card > p { color: var(--sorfaa-muted); font-size: 1rem; margin: 0 0 18px; }
.sorfaa-size-list { display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); }
.sorfaa-size-list span { background: var(--sorfaa-paper); border: 1px solid var(--sorfaa-line); border-radius: 999px; color: var(--sorfaa-plum); display: grid; font-size: 1rem; font-weight: 600; min-height: 46px; place-items: center; }
.sorfaa-detail-card .sorfaa-size-note { background: var(--sorfaa-blush-soft); border-radius: 5px; color: var(--sorfaa-plum); margin: 18px 0 0; padding: 12px 14px; }
.sorfaa-delivery-grid { display: grid; gap: 18px 20px; grid-template-columns: 1fr 1fr; }
.sorfaa-delivery-grid p { align-items: center; display: flex; font-size: .92rem; gap: 11px; margin: 0; }
.sorfaa-delivery-grid span { color: var(--sorfaa-plum); font-size: 1.55rem; }

/* CTA + footer */
.sorfaa-final-cta { background: var(--sorfaa-blush-soft); border-radius: 7px; gap: 42px; margin-bottom: 64px; min-height: 180px; overflow: hidden; padding: 42px var(--sorfaa-gutter); position: relative; }
.sorfaa-final-cta::before { bottom: -45px; left: -10px; transform: rotate(-25deg); }
.sorfaa-final-cta::after { right: -6px; top: -42px; transform: rotate(155deg); }
.sorfaa-final-cta h2, .sorfaa-final-cta .wp-block-buttons { position: relative; z-index: 1; }
.sorfaa-final-cta h2 { color: var(--sorfaa-plum); font-size: clamp(1.9rem, 3vw, 3rem); margin: 0; }
.sorfaa-footer { background: var(--sorfaa-ivory); border-top: 1px solid var(--sorfaa-line); color: var(--sorfaa-muted); }
.sorfaa-footer-grid { gap: clamp(44px, 5vw, 80px); margin: 0 auto; padding: 64px var(--sorfaa-gutter) 52px; }
.sorfaa-footer h2, .sorfaa-footer h3 { color: var(--sorfaa-plum); }
.sorfaa-footer h2 { font-family: Georgia, serif; font-size: 1.8rem; margin: 0; }
.sorfaa-footer h3 { font-size: 1.12rem; margin: 0 0 16px; }
.sorfaa-footer p, .sorfaa-footer li { font-size: .95rem; line-height: 1.85; }
.sorfaa-footer-logo { display: block; margin-bottom: 18px; width: 220px; }
.sorfaa-footer-logo img { display: block; height: auto; object-fit: contain; width: 100%; }
.sorfaa-footer ul:not(.wp-block-social-links) { list-style: none; margin: 0; padding: 0; }
.sorfaa-footer a { color: var(--sorfaa-muted) !important; text-decoration: none; }
.sorfaa-footer a:hover { color: var(--sorfaa-plum) !important; }
.sorfaa-footer .wp-social-link { background: transparent !important; color: var(--sorfaa-plum) !important; }
.sorfaa-footer .wp-social-link svg { fill: var(--sorfaa-plum) !important; }
.sorfaa-footer .wp-block-button__link { color: var(--sorfaa-ivory) !important; }
.sorfaa-footer-bottom { border-top: 1px solid var(--sorfaa-line); color: var(--sorfaa-muted); padding: 18px var(--sorfaa-gutter); }
.sorfaa-footer-bottom p { margin: 0; }

/* Existing shop and product templates */
.sorfaa-product-title, .woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--sorfaa-plum) !important; }
.single_add_to_cart_button, .wc-block-add-to-cart-form button { background: var(--sorfaa-plum) !important; color: var(--sorfaa-ivory) !important; border-radius: 8px !important; }
.sorfaa-info-card { background: var(--sorfaa-paper); border: 1px solid var(--sorfaa-line); border-radius: 6px; padding: 1.5rem; }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; } }

@media (max-width: 900px) {
  .sorfaa-header-inner { gap: 12px; }
  .sorfaa-logo-wrap { min-width: 0; }
  .sorfaa-nav { flex: 0 0 auto; order: 3; }
  .sorfaa-story-info { grid-template-columns: 1fr; }
  .sorfaa-trust-grid { display: grid; grid-template-columns: 1fr 1fr; }
  .sorfaa-trust-grid .wp-block-column + .wp-block-column { border-left: 0; }
  .sorfaa-trust-grid .wp-block-column:nth-child(even) { border-left: 1px solid var(--sorfaa-line); }
  .sorfaa-trust-grid .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--sorfaa-line); }
}

@media (max-width: 599px) {
  .sorfaa-topbar-inner { justify-content: center !important; min-height: 30px; }
  .sorfaa-topbar p { display: none; }
  .sorfaa-topbar p:first-child { display: block; }
  .sorfaa-header-inner { display: grid !important; grid-template-columns: auto minmax(0,1fr) auto; min-height: 76px; padding-inline: 16px; }
  .sorfaa-brand { width: 132px; }
  .sorfaa-brand img { height: auto; max-height: 62px; width: 100%; }
  .sorfaa-nav { justify-self: end; order: 2; }
  .sorfaa-header-icons { gap: 0; }
  .sorfaa-header .wp-block-search { display: none; }
  .sorfaa-header .wp-block-navigation__responsive-container-open { color: var(--sorfaa-plum); }
  .sorfaa-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--sorfaa-ivory); color: var(--sorfaa-plum); padding: 24px; }
  .sorfaa-hero-grid { display: grid; grid-template-columns: 1fr; min-height: 0; }
  .sorfaa-hero-copy { padding: 46px 20px 38px; text-align: center; }
  .sorfaa-kicker { font-size: .82rem; }
  .sorfaa-hero-copy h1 { font-size: clamp(2.35rem, 12vw, 3.15rem); }
  .sorfaa-hero-lead { font-size: 1.04rem; line-height: 1.7; margin-inline: auto; }
  .sorfaa-hero-copy .wp-block-buttons { justify-content: center; }
  .sorfaa-hero-copy .wp-block-button__link { padding: .65rem 1rem !important; }
  .sorfaa-hero-media, .sorfaa-hero-figure { min-height: 390px; }
  .sorfaa-hero-figure img { height: 100%; object-position: 78% center; width: 100%; }
  .sorfaa-collection { padding: 48px 16px 54px; }
  .sorfaa-section-heading h2 { font-size: 2rem; }
  .sorfaa-section-heading h2::before, .sorfaa-section-heading h2::after { margin-inline: 8px; width: 22px; }
  .sorfaa-products .sorfaa-card-title { font-size: .94rem !important; min-height: 2.9rem; }
  .sorfaa-products .wc-block-components-product-price { font-size: .9rem; }
  .sorfaa-products .wp-block-button__link, .sorfaa-products .wc-block-components-product-button__button { font-size: .86rem; min-height: 42px; padding: .52rem .72rem !important; }
  .sorfaa-view-all { text-align: center !important; }
  .sorfaa-trust-strip { padding: 18px 16px; }
  .sorfaa-trust-item { justify-content: flex-start; min-height: 78px; padding: 14px 10px; }
  .sorfaa-line-icon { font-size: 1.7rem; }
  .sorfaa-trust-item strong { font-size: .9rem; line-height: 1.35; }
  .sorfaa-trust-item small { font-size: .75rem; }
  .sorfaa-story-info { padding: 42px 16px 28px; }
  .sorfaa-story-panel { grid-template-columns: 1fr; }
  .sorfaa-story-copy { padding: 38px 24px; }
  .sorfaa-story-copy h2, .sorfaa-detail-card h2 { font-size: 1.8rem; }
  .sorfaa-story-figure { min-height: 340px; }
  .sorfaa-size-list { grid-template-columns: repeat(3, 1fr); }
  .sorfaa-delivery-grid { grid-template-columns: 1fr; }
  .sorfaa-final-cta { margin: 14px 16px 44px !important; min-height: 220px; padding: 36px 22px; text-align: center; }
  .sorfaa-final-cta h2 { font-size: 2rem; line-height: 1.3; }
  .sorfaa-footer-grid { display: grid; gap: 34px 22px; grid-template-columns: 1fr 1fr; padding: 48px 20px 38px; }
  .sorfaa-footer-grid > .wp-block-column:first-child, .sorfaa-footer-grid > .wp-block-column:last-child { grid-column: 1 / -1; }
  .sorfaa-footer-bottom { align-items: center; flex-direction: column; text-align: center; }
}
/* ========================================================================== 
   Dynamic WooCommerce product carousels
   ========================================================================== */
.sorfaa-product-carousel { min-width: 0; position: relative; }
.sorfaa-product-carousel .wc-block-product-template {
  display: flex !important;
  flex-wrap: nowrap !important;
  grid-template-columns: none !important;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  gap: clamp(16px, 2vw, 28px);
  margin: 0 !important;
  padding: 4px 2px 22px !important;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.sorfaa-product-carousel .wc-block-product-template::-webkit-scrollbar { display: none; }
.sorfaa-product-carousel .wc-block-product {
  box-sizing: border-box;
  flex: 0 0 calc((100% - (3 * clamp(16px, 2vw, 28px))) / 4) !important;
  max-width: none !important;
  width: auto !important;
  scroll-snap-align: start;
}
.sorfaa-product-carousel .wc-block-components-product-image img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; }
.sorfaa-carousel-controls { display: flex; gap: 10px; justify-content: flex-end; margin-top: 4px; }
.sorfaa-carousel-controls[hidden] { display: none; }
.sorfaa-carousel-arrow { align-items: center; background: var(--sorfaa-paper); border: 1px solid var(--sorfaa-gold); border-radius: 50%; color: var(--sorfaa-plum); cursor: pointer; display: inline-flex; font-family: Georgia, serif; font-size: 1.75rem; height: 44px; justify-content: center; line-height: 1; padding: 0 0 3px; width: 44px; }
.sorfaa-carousel-arrow:hover { background: var(--sorfaa-plum); border-color: var(--sorfaa-plum); color: var(--sorfaa-ivory); }
.sorfaa-carousel-arrow:disabled { cursor: default; opacity: .35; }
@media (max-width: 900px) {
  .sorfaa-product-carousel .wc-block-product { flex-basis: calc((100% - 18px) / 2.15) !important; }
}
@media (max-width: 599px) {
  .sorfaa-product-carousel .wc-block-product { flex-basis: calc((100% - 14px) / 1.45) !important; }
  .sorfaa-product-carousel .wc-block-product-template { gap: 14px; }
  .sorfaa-carousel-arrow { height: 42px; width: 42px; }
}
