/*
Theme Name: Flower House (Kadence Child)
Theme URI: https://flowerhouseindia.com
Template: kadence
Author: Flower House
Description: Kadence child theme carrying the Flower House brand system. Single coherent design-system stylesheet (v2, per designer brief): tokens, shared components, page refinements. Solve by hierarchy/spacing/alignment, not decoration.
Version: 2.0.0
Text Domain: kadence-child
*/

/* ============ TOKENS ============ */
:root {
  --fh-green: #015C2C;
  --fh-green-dark: #014a23;
  --fh-coral: #FC5230;
  --fh-coral-dark: #e04425;
  --fh-forest: #051F15;
  --fh-text: #545454;
  --fh-text-light: #767b78;
  --fh-sage: #F3F6F3;
  --fh-cream: #FAF9F6;
  --fh-blush: #FBEDF1;
  --fh-peach: #FDF4E7;
  --fh-lavender: #F7F2FA;
  --fh-hairline: rgba(5, 31, 21, 0.07);
  --fh-radius: 16px;
  --fh-radius-sm: 10px;
  --fh-shadow-hover: 0 12px 35px rgba(0, 0, 0, 0.06);
  --fh-section: 3rem;
  --wp--preset--color--fh-green: var(--fh-green);
  --wp--preset--color--fh-coral: var(--fh-coral);
  --wp--preset--color--fh-forest: var(--fh-forest);
  --wp--preset--color--fh-text: var(--fh-text);
  --wp--preset--color--fh-text-light: var(--fh-text-light);
  --wp--preset--color--fh-sage: var(--fh-sage);
  --wp--preset--color--fh-cream: var(--fh-cream);
  --wp--preset--color--fh-blush: var(--fh-blush);
  --wp--preset--color--fh-peach: var(--fh-peach);
  --wp--preset--color--fh-lavender: var(--fh-lavender);
  --wp--preset--color--fh-white: #FFFFFF;
}
.has-fh-green-background-color { background-color: var(--fh-green) !important; }
.has-fh-coral-background-color { background-color: var(--fh-coral) !important; }
.has-fh-forest-background-color { background-color: var(--fh-forest) !important; }
.has-fh-sage-background-color { background-color: var(--fh-sage) !important; }
.has-fh-cream-background-color { background-color: var(--fh-cream) !important; }
.has-fh-blush-background-color { background-color: var(--fh-blush) !important; }
.has-fh-peach-background-color { background-color: var(--fh-peach) !important; }
.has-fh-lavender-background-color { background-color: var(--fh-lavender) !important; }
.has-fh-white-background-color { background-color: #fff !important; }
.has-fh-green-color { color: var(--fh-green) !important; }
.has-fh-coral-color { color: var(--fh-coral) !important; }
.has-fh-forest-color { color: var(--fh-forest) !important; }
.has-fh-text-color { color: var(--fh-text) !important; }
.has-fh-text-light-color { color: var(--fh-text-light) !important; }
.has-fh-white-color { color: #fff !important; }

/* ============ TYPE SCALE ============ */
.entry-content h1 { font-size: clamp(2.7rem, 4.8vw, 3.8rem); line-height: 1.08; letter-spacing: -0.015em; max-width: 16ch; color: var(--fh-forest); }
.entry-content h2 { font-size: clamp(2rem, 3.2vw, 2.6rem); font-weight: 600; line-height: 1.22; color: var(--fh-forest); }
.entry-content h3 { font-size: 1.35rem; font-weight: 500; color: var(--fh-forest); }
.entry-content h4 { font-size: 1.05rem; font-weight: 500; color: var(--fh-forest); }
body { color: var(--fh-text); }
.entry-content p { line-height: 1.8; font-size: 1.0625rem; }
/* Eyebrow labels only (small text without strong): uppercase micro-label */
.entry-content p.has-small-font-size:not(:has(strong)) { font-size: 0.78rem !important; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; }
/* Trust/stat paragraphs (small text WITH strong): normal case, clear hierarchy */
.entry-content p.has-small-font-size:has(strong) { font-size: 0.88rem !important; text-transform: none; letter-spacing: 0; font-weight: 400; }

/* ============ LAYOUT RHYTHM ============ */
.entry-content > *:not(.alignfull) { max-width: 1560px; margin-left: auto !important; margin-right: auto !important; padding-left: 2rem; padding-right: 2rem; }
.entry-content > .alignfull > * { max-width: 1560px; margin-left: auto !important; margin-right: auto !important; }
.entry-content > .alignfull { margin-top: var(--fh-section); margin-bottom: var(--fh-section); }
.entry-content > .alignfull:first-child { margin-top: 0; }
.entry-content > .alignfull + .alignfull { margin-top: calc(var(--fh-section) * -1); }
.entry-content > h2 { margin-top: var(--fh-section) !important; margin-bottom: 2.75rem !important; text-align: center; }
/* ============ HOMEPAGE SECTION RHYTHM (premium polish pass) ============
   Precise per-boundary gaps requested between each homepage section.
   Targeted by position (nth-child) rather than class, since several
   sections (trust bar, feature cards, occasion heading/rows, stats) have
   no distinguishing className of their own. body.page-id-14 + nth-child
   gives enough specificity to beat both the .alignfull margin rules above
   (no !important there) and the h2 rule (has !important, but lower
   specificity: one class vs. this selector's class+pseudo-class). */
body.page-id-14 .entry-content > *:nth-child(2) { margin-top: 0 !important; }   /* Hero -> Trust Bar (no gap, per client request) */
body.page-id-14 .entry-content > *:nth-child(3) { margin-top: 80px !important; }   /* Trust Bar -> Why Choose (standardized to 80px) */
body.page-id-14 .entry-content > *:nth-child(4) { margin-top: 80px !important; }   /* Feature Cards -> Shop by Collection */
body.page-id-14 .entry-content > *:nth-child(8) { margin-top: 80px !important; }   /* Collection -> Our Story (standardized to 80px) */
body.page-id-14 .entry-content > *:nth-child(9) { margin-top: 80px !important; }  /* Our Story -> Shop by Occasion (standardized to 80px) */
body.page-id-14 .entry-content > *:nth-child(12) { margin-top: 80px !important; }  /* Occasion -> Best Sellers (standardized to 80px) */
body.page-id-14 .entry-content > *:nth-child(14) { margin-top: 80px !important; margin-bottom: 0 !important; }  /* Best Sellers -> Green CTA Banner; margin-bottom zeroed so it can't collapse against nth-child(15)'s now-zero gap */
body.page-id-14 .entry-content > *:nth-child(15) { margin-top: 0 !important; margin-bottom: 0 !important; }  /* Green Banner -> Wholesale -> Statistics gaps removed per client request */
body.page-id-14 .entry-content.entry-content > *:nth-child(16) { margin-top: 0 !important; margin-bottom: 0 !important; } /* Wholesale -> Statistics removed per client request; Statistics -> Footer stays 0 (footer exempt) */
.entry-content > .wp-block-columns { margin-bottom: 2.25rem; }
/* Text-only pastel strips (trust/stats): tight, structured reassurance bands */
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; background-color: #EFF3EF !important; }
/* Statistics band: bigger icon + gap, and the number itself should pop */
body.page-id-14 .entry-content.entry-content > *:nth-child(16) {
  padding-top: 1.25rem !important; padding-bottom: 1.25rem !important;
  background-color: #ffffff !important;
  /* Full-bleed band, matching the trust bar which is an alignfull group.
     This element is a bare (boxed) wp-block-columns, not alignfull, so it
     needs the same width:100vw/negative-margin breakout technique used
     elsewhere in this file, with padding re-centering the same 1560px
     content column so the text still lines up with the rest of the page. */
  width: 100vw !important; max-width: 100vw !important;
  margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important;
  padding-left: max(2rem, calc((100% - 1560px) / 2 + 2rem)) !important;
  padding-right: max(2rem, calc((100% - 1560px) / 2 + 2rem)) !important;
  border-radius: 0 !important;
}
body.page-id-14 .entry-content.entry-content > *:nth-child(16) p[class*="fh-ic-"]::before { width: 38px; height: 38px; margin-bottom: 1rem; }
body.page-id-14 .entry-content.entry-content > *:nth-child(16) p.fh-stat { font-size: 0.88rem !important; font-weight: 400; text-transform: none; letter-spacing: 0; }
body.page-id-14 .entry-content.entry-content > *:nth-child(16) p.fh-stat strong {
  font-weight: 700; font-size: 1.6rem; color: var(--fh-forest); display: block; margin-bottom: 0.2rem; line-height: 1.2;
}
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) .wp-block-columns { max-width: 940px; margin-bottom: 0; gap: 0; align-items: stretch; }
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) .wp-block-column { padding: 0.4rem 1.75rem; display: flex; flex-direction: column; justify-content: flex-start; }
/* headings inside text-only bands: centered with breathing room */
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) h2 {
  text-align: center; margin-top: 0 !important; margin-bottom: 1.5rem !important;
  display: flex; align-items: center; justify-content: center; gap: 1.1rem;
}
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) h2::before,
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) h2::after {
  content: ""; height: 1px; width: 56px; background: rgba(1, 92, 44, 0.18); flex: none;
}
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) h3 { text-align: center; }
/* band labels stay on one line at desktop widths */
@media (min-width: 1025px) {
  .entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-column > p strong { white-space: nowrap; }
}
/* Banner bands with imagery (hero/wholesale): composed, not oversized */
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) { padding-top: 2.25rem !important; padding-bottom: 2.25rem !important; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) .wp-block-columns { align-items: center; gap: 2.5rem; margin-bottom: 0; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) h2 { max-width: 20ch; margin-top: 0; margin-bottom: 0.75rem; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) .wp-block-buttons { margin-top: 1.25rem; }
/* Wholesale section specifically: more height/breathing room, image column
   given more visual weight (bigger figure, softer larger radius). */
body.page-id-14 .entry-content > *:nth-child(15) { padding-top: 4rem !important; padding-bottom: 4rem !important; }
body.page-id-14 .entry-content > *:nth-child(15) .wp-block-columns { gap: 3.5rem !important; }
body.page-id-14 .entry-content > *:nth-child(15) h2 { margin-bottom: 1.1rem !important; }
body.page-id-14 .entry-content > *:nth-child(15) p { margin-bottom: 0; }
body.page-id-14 .entry-content > *:nth-child(15) .wp-block-buttons { margin-top: 1.75rem !important; }
body.page-id-14 .entry-content > *:nth-child(15) .wp-block-column[style*="flex-basis:50%"]:has(.wp-block-image) { flex-basis: 54% !important; }
body.page-id-14 .entry-content > *:nth-child(15) .wp-block-column[style*="flex-basis:50%"]:has(h2) { flex-basis: 46% !important; }
body.page-id-14 .entry-content > *:nth-child(15) .wp-block-column:has(h2) {
  display: flex !important; flex-direction: column !important; justify-content: center !important;
}
body.page-id-14 .entry-content > *:nth-child(15) figure img { border-radius: 20px !important; width: 100%; }
.entry-content .wp-block-columns { gap: 1.75rem; }
.entry-content > h2 { display: flex; align-items: center; justify-content: center; gap: 1.1rem; }
.entry-content > h2::before, .entry-content > h2::after { content: ""; height: 1px; width: 56px; background: rgba(1, 92, 44, 0.18); flex: none; }

/* ============ SHARED COMPONENTS ============ */
/* Buttons — one system everywhere */
.entry-content .wp-block-button__link, .woocommerce .button, .woocommerce button.button,
button[type="submit"], .kb-advanced-form button[type="submit"], .wp-block-kadence-advancedform button[type="submit"],
.wc-block-components-button {
  border-radius: 999px !important; font-weight: 600; letter-spacing: 0.01em;
  padding: 0.75rem 1.75rem; transition: background 0.15s ease, box-shadow 0.15s ease;
  box-shadow: none;
}
.entry-content .wp-block-button__link:hover, .woocommerce .button:hover { box-shadow: 0 5px 16px rgba(5, 31, 21, 0.15); }
/* Hero image + banner images: soft depth */
.entry-content .wp-block-image { overflow: hidden; border-radius: var(--fh-radius); }
.entry-content > .alignfull .wp-block-image img { box-shadow: 0 18px 40px rgba(5, 31, 21, 0.1); border-radius: var(--fh-radius); }
.entry-content .wp-block-image img { border-radius: var(--fh-radius); width: 100%; height: auto; object-fit: cover; transition: transform 0.3s ease; }
.entry-content .wp-block-image:hover img { transform: scale(1.02); }
/* Cards — pastel groups inside columns */
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] {
  border: 1px solid rgba(1, 92, 44, 0.09); border-radius: var(--fh-radius);
  padding: 1.75rem 1.6rem; box-shadow: none;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
/* full-height centering only when the card is alone in its column;
   stacked cards (Contact info column) flow naturally */
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"]:only-child {
  height: 100%; display: flex; flex-direction: column; justify-content: center;
}
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"]:not(:only-child) {
  margin-bottom: 0.9rem; padding: 1.2rem 1.3rem;
}
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] .wp-block-columns { gap: 1.4rem; margin-bottom: 0; align-items: center; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] h3 { font-size: 1.25rem; margin-top: 0; margin-bottom: 0.4rem; line-height: 1.3; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] ul.wp-block-list { margin-top: 0.6rem; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] ul.wp-block-list li { font-size: 0.92rem; margin-bottom: 0.45rem; line-height: 1.5; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"]:hover { transform: translateY(-2px); box-shadow: var(--fh-shadow-hover); }
.entry-content .wp-block-group ul.wp-block-list { list-style: none; padding-left: 0; margin: 0.9rem 0 0; }
.entry-content .wp-block-group ul.wp-block-list li { margin-bottom: 0.55rem; color: var(--fh-text); }
.entry-content .wp-block-group ul.wp-block-list li::before { content: "○"; color: var(--fh-green); font-size: 0.55rem; margin-right: 0.65rem; vertical-align: 2px; }

/* ============ HEADER: deep green brand bar ============ */
.site-header, .site-header-wrap, .site-header-inner-wrap,
.site-header-upper-wrap, .site-header-upper-inner-wrap,
.site-header .site-header-row-container, .site-header .site-header-row-container-inner,
.site-header .site-main-header-wrap, .site-header .site-main-header-inner-wrap,
.site-main-header-wrap.kadence-sticky-header, .kadence-sticky-header,
#masthead .site-container, #masthead .site-header-section,
#masthead .site-header-item, #masthead .site-header-row,
.site-top-header-wrap, .site-bottom-header-wrap {
  background: var(--fh-green) !important;
}
/* keep the logo chip white despite the blanket rule */
#masthead .site-branding a.brand { background: #fff !important; }
/* Logo: white chip on green */
.site-header .site-branding a, .site-header .header-logo a {
  background: #fff; padding: 5px 10px; border-radius: 10px; display: inline-flex; align-items: center;
}
/* Nav links: light on green */
.main-navigation .primary-menu-container > ul > li > a { color: #E9F2EC !important; }
.main-navigation .primary-menu-container > ul > li > a:hover,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a { color: #fff !important; }
.main-navigation .primary-menu-container > ul > li > a {
  background-image: linear-gradient(#fff, #fff) !important;
}
/* Icons: white */
.site-header .search-toggle-open, .site-header .header-cart-wrap .header-cart-button,
.site-header .search-toggle-open .search-toggle-icon, .site-header .header-cart-wrap { color: #fff !important; opacity: 1; }
.site-header .header-cart-wrap .header-cart-count { background: var(--fh-coral); color: #fff; }
/* Mobile hamburger */
.site-header .menu-toggle-open, .site-header .mobile-toggle-open-container .menu-toggle-open { color: #fff !important; }
/* Sticky: solid green in every sticky JS state (initial, at-start, fixed) */
.site-header [class*="item-"], .site-header [class*="item-"] .site-main-header-inner-wrap,
#masthead .item-at-start, #masthead .item-at-start .site-main-header-inner-wrap,
#masthead .item-is-fixed, #masthead .item-is-fixed .site-main-header-inner-wrap,
#masthead [data-shrink] .site-main-header-inner-wrap {
  background: var(--fh-green) !important;
}
#masthead .item-is-fixed { backdrop-filter: blur(6px); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08); }

/* ============ HEADER ============ */
.site-header .site-main-header-inner-wrap { min-height: 70px; }
.site-header .custom-logo, .site-header .site-branding img, .site-header .header-logo img {
  max-height: 52px !important; width: auto !important; height: auto;
}
.site-header .site-branding, .site-header .header-logo { display: flex; align-items: center; }
.main-navigation .primary-menu-container > ul > li > a { font-size: 0.95rem; font-weight: 500; color: #2A3B32; }
.main-navigation .primary-menu-container > ul > li > a:hover, .main-navigation .primary-menu-container > ul > li.current-menu-item > a { color: var(--fh-green); }
.site-header .search-toggle-open, .site-header .header-cart-wrap { opacity: 0.85; }
.site-header .header-html-inner, .site-header .search-toggle-open { margin-right: 0.4rem; }
.main-navigation .primary-menu-container > ul { gap: 0.35rem; }
.site-header .header-cart-wrap .header-cart-count { background: var(--fh-coral); font-size: 0.65rem; min-width: 16px; height: 16px; line-height: 16px; font-weight: 600; }

/* ============ HOMEPAGE SECTIONS ============ */
/* Hero band: tight cohesive text column beside anchored image */
.entry-content > .alignfull:first-child { padding-top: 2.75rem !important; padding-bottom: 2.75rem !important; }
.entry-content > .alignfull:first-child .wp-block-columns { align-items: center; gap: 2.5rem; }
.entry-content > .alignfull:first-child .has-small-font-size { margin-bottom: 0.6rem; }
.entry-content > .alignfull:first-child h1 { margin-top: 0; margin-bottom: 0.85rem; }
.entry-content > .alignfull:first-child p:not(.has-small-font-size) { max-width: 40ch; font-size: 1.05rem; margin-top: 0; margin-bottom: 0; }
.entry-content > .alignfull:first-child .wp-block-buttons { margin-top: 1.35rem; }
.entry-content > .alignfull:first-child .wp-block-image { border-radius: 20px; }
.entry-content > .alignfull:first-child .wp-block-image img { box-shadow: 0 12px 30px rgba(5, 31, 21, 0.09); aspect-ratio: 4 / 3; object-fit: cover; }
/* Trust / stats strips: designed reassurance bands (text-only bands, never hero/wholesale) */
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-column > p { font-size: 0.88rem; color: var(--fh-text-light); text-align: center; margin: 0; line-height: 1.5; }
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-column > p strong {
  display: block; color: var(--fh-forest); font-size: 1.05rem; font-weight: 600;
  letter-spacing: 0.02em; margin-bottom: 0.3rem; padding-bottom: 0.35rem; position: relative;
}
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-column > p strong::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 22px; height: 2px; background: rgba(1, 92, 44, 0.35); border-radius: 2px;
}
/* strong is display:block, so the following <br> would add a phantom empty line */
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-column > p strong + br { display: none; }
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-columns .wp-block-column:not(:first-child) { border-left: 1px solid rgba(1, 92, 44, 0.14); }
/* Product tiles: curated showcase framing */
.entry-content .wp-block-column > .wp-block-image:first-child img { aspect-ratio: 1 / 1; object-fit: cover; }
.entry-content .wp-block-column h4 { margin: 0.85rem 0 0.15rem; }
.entry-content .wp-block-column h4 a { color: var(--fh-forest); text-decoration: none; }
.entry-content .wp-block-column h4 a:hover { color: var(--fh-green); }
.entry-content .wp-block-column h4 + p { font-size: 0.92rem; color: var(--fh-green); font-weight: 600; margin-top: 0; letter-spacing: 0.01em; }
/* Category/reason pastel chips: designed, centered */
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] h4 { margin: 0; text-align: center; letter-spacing: 0.03em; font-size: 1.02rem; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] h4 a { color: var(--fh-forest); text-decoration: none; }
.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="has-fh-"] > h4:only-child) .wp-block-group { min-height: 92px; }

/* ============ SHOP / ARCHIVE ============ */
/* Sidebar: quiet grouped filters, no boxes */
.sidebar .widget { background: transparent; border: 0; border-bottom: 1px solid var(--fh-hairline); border-radius: 0; padding: 0 0 1.4rem; margin-bottom: 1.4rem; }
.sidebar .widget:last-child { border-bottom: 0; }
.sidebar .widget .widget-title, .sidebar .widget h4 { font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--fh-forest); margin-bottom: 0.9rem; }
.sidebar .widget ul { list-style: none; margin: 0; padding: 0; }
.sidebar .widget ul li { margin-bottom: 0.5rem; font-size: 0.95rem; }
.sidebar .widget a { color: var(--fh-text); text-decoration: none; }
.sidebar .widget a:hover { color: var(--fh-green); }
.sidebar .widget .count { color: var(--fh-text-light); font-size: 0.85rem; }
.woocommerce-widget-layered-nav-list li.chosen a { color: var(--fh-green); font-weight: 600; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-range { background: var(--fh-green); }
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { background: var(--fh-green); }
/* Results meta subordinate to products */
.woocommerce-result-count { color: var(--fh-text-light); font-size: 0.85rem; }
.woocommerce-ordering select { font-size: 0.9rem; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius-sm); padding: 0.4rem 0.75rem; color: var(--fh-text); }
.woocommerce-breadcrumb, .kadence-breadcrumbs { font-size: 0.82rem; color: var(--fh-text-light); }
.woocommerce-breadcrumb a, .kadence-breadcrumbs a { color: var(--fh-text-light); }
/* Product cards — consistent with homepage modules; equal heights, bottom-aligned actions */
.woocommerce ul.products { row-gap: 1.75rem; }
.woocommerce ul.products li.product {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  padding: 0.9rem 0.9rem 1.2rem; box-shadow: none;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  display: flex; flex-direction: column;
}
.woocommerce ul.products li.product img { aspect-ratio: 1 / 1; object-fit: cover; width: 100%; }
.woocommerce ul.products li.product .button {
  margin-top: auto !important; width: 100%;
  display: block; text-align: center;
  white-space: normal; line-height: 1.35; padding: 0.6rem 0.9rem;
  font-size: 0.82rem;
}
.woocommerce ul.products li.product .price { margin-bottom: 0.75rem; }
.woocommerce ul.products li.product:hover { box-shadow: var(--fh-shadow-hover); transform: translateY(-2px); }
.woocommerce ul.products li.product img { border-radius: var(--fh-radius-sm); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color: var(--fh-forest); font-size: 1rem; font-weight: 500; }
.woocommerce ul.products li.product .price { color: var(--fh-green); font-weight: 600; font-size: 0.95rem; }
.woocommerce ul.products li.product .price del { color: var(--fh-text-light); font-weight: 400; }
.woocommerce ul.products li.product .button { background: var(--fh-green); color: #fff; font-size: 0.85rem; padding: 0.55rem 1.2rem; }
.woocommerce ul.products li.product .button:hover { background: var(--fh-coral); }
/* Sale badge: compact chip */
.woocommerce span.onsale {
  background: var(--fh-coral) !important; color: #fff !important; border-radius: 999px;
  font-weight: 600; min-height: 0; min-width: 0; line-height: 1.5; font-size: 0.7rem;
  padding: 0.2em 0.85em; top: 0.6rem; left: 0.6rem; right: auto; margin: 0;
  max-width: calc(100% - 1.2rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; z-index: 2;
}
/* Pagination */
.woocommerce nav.woocommerce-pagination ul { border: 0; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0 0.2rem; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  border-radius: 999px; min-width: 2.4rem; height: 2.4rem; line-height: 2.4rem; padding: 0; text-align: center; color: var(--fh-text);
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--fh-green); color: #fff; }
.woocommerce nav.woocommerce-pagination ul li a:hover { background: var(--fh-sage); color: var(--fh-green); }

/* ============ PRODUCT DETAIL ============ */
.woocommerce div.product .product_title { font-size: 2rem; color: var(--fh-forest); line-height: 1.2; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--fh-forest); font-size: 1.5rem; font-weight: 600; }
.woocommerce div.product p.price del { color: var(--fh-text-light); font-size: 1.1rem; font-weight: 400; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--fh-text); font-size: 0.98rem; }
.woocommerce div.product form.cart { margin-top: 1.25rem; }
.woocommerce div.product form.cart .button {
  background: var(--fh-coral); font-size: 1rem; padding: 0.85rem 2.25rem;
}
.woocommerce div.product form.cart .button:hover { background: var(--fh-coral-dark); }
.woocommerce div.product form.cart .variations label { font-size: 0.85rem; font-weight: 600; color: var(--fh-forest); }
.woocommerce div.product form.cart .variations select { border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius-sm); padding: 0.5rem 0.75rem; }
/* Quantity: pill group */
.woocommerce .quantity .qty { border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius-sm); padding: 0.55rem 0.4rem; }
/* Meta + tabs: secondary, quiet */
.woocommerce div.product .product_meta { font-size: 0.82rem; color: var(--fh-text-light); }
.woocommerce div.product .product_meta a { color: var(--fh-text-light); }
.woocommerce div.product .woocommerce-tabs ul.tabs { padding: 0; border-bottom: 1px solid var(--fh-hairline); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { border-bottom: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background: transparent; border: 0; border-radius: 0; margin: 0 1.25rem 0 0; padding: 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { color: var(--fh-text-light); font-weight: 500; padding: 0.6rem 0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color: var(--fh-forest); box-shadow: inset 0 -2px 0 var(--fh-green); }
.woocommerce div.product .woocommerce-tabs .panel { padding-top: 1.25rem; color: var(--fh-text); }
.related.products > h2, .woocommerce div.product .up-sells > h2 { font-size: 1.5rem; }

/* ============ CART / CHECKOUT (blocks) ============ */
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-cart__totals-title { font-weight: 600; }
.wc-block-components-totals-wrapper, .wc-block-components-order-summary { font-size: 0.95rem; }
.wc-block-components-button:not(.is-link) { background: var(--fh-green); }
.wc-block-components-button:not(.is-link):hover { background: var(--fh-green-dark); }
.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button { background: var(--fh-coral) !important; font-size: 1rem; }
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--fh-coral-dark) !important; }
.wc-block-components-product-name { color: var(--fh-forest); font-weight: 500; }
.wc-block-components-totals-coupon-link, .wc-block-components-totals-coupon { font-size: 0.9rem; color: var(--fh-text-light); }
.wc-block-components-text-input input, .wc-block-components-combobox .components-combobox-control__suggestions-container input, .wc-block-components-textarea {
  border: 1px solid var(--fh-hairline) !important; border-radius: var(--fh-radius-sm) !important;
}
.wc-block-components-text-input input:focus { border-color: var(--fh-green) !important; box-shadow: 0 0 0 1px var(--fh-green) !important; }
.wc-block-components-checkout-step__heading .wc-block-components-title { color: var(--fh-forest); }
/* Notices */
.woocommerce-message, .wc-block-components-notice-banner.is-success { border-color: var(--fh-green); background: var(--fh-sage); color: var(--fh-forest); }
.woocommerce-info, .wc-block-components-notice-banner.is-info { border-color: var(--fh-green); background: var(--fh-cream); color: var(--fh-forest); }
.woocommerce-error, .wc-block-components-notice-banner.is-error { border-color: var(--fh-coral); background: var(--fh-blush); }
/* Empty states */
.cart-empty.woocommerce-info, .wc-block-cart__empty-cart__title { text-align: center; color: var(--fh-forest); }

/* ============ FORMS (Kadence Advanced Form) ============ */
.wp-block-kadence-advancedform label, .kb-adv-form-label { font-size: 0.85rem; font-weight: 600; color: var(--fh-forest); margin-bottom: 0.3rem; }
.wp-block-kadence-advancedform input[type="text"], .wp-block-kadence-advancedform input[type="email"],
.wp-block-kadence-advancedform input[type="tel"], .wp-block-kadence-advancedform input[type="date"],
.wp-block-kadence-advancedform select, .wp-block-kadence-advancedform textarea,
.kb-adv-form-field input, .kb-adv-form-field select, .kb-adv-form-field textarea {
  border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius-sm);
  padding: 0.7rem 0.9rem; background: #fff; width: 100%; font-size: 0.95rem; color: var(--fh-text);
}
.wp-block-kadence-advancedform input:focus, .wp-block-kadence-advancedform select:focus, .wp-block-kadence-advancedform textarea:focus,
.kb-adv-form-field input:focus, .kb-adv-form-field select:focus, .kb-adv-form-field textarea:focus {
  border-color: var(--fh-green); outline: none; box-shadow: 0 0 0 1px var(--fh-green);
}
.kb-adv-form-field { margin-bottom: 1.1rem; }
.wp-block-kadence-advancedform button[type="submit"], .kb-adv-form-submit-button {
  background: var(--fh-green); color: #fff; border: 0; cursor: pointer;
}
.wp-block-kadence-advancedform button[type="submit"]:hover, .kb-adv-form-submit-button:hover { background: var(--fh-green-dark); }

/* ============ MY ACCOUNT PREMIUM (v2) ============ */
/* Kadence's WooCommerce component replaces the default nav render with its
   own markup (.account-navigation-wrap > .kadence-account-avatar + the
   standard nav). That block had no matching CSS at all in the previous
   pass, which is almost certainly why it rendered as a crushed,
   single-character-per-line column. Defensive resets first. */
.account-navigation-wrap,
.kadence-account-avatar,
.kadence-customer-name,
.woocommerce-MyAccount-navigation {
  width: 100% !important; max-width: 100% !important; box-sizing: border-box !important;
  white-space: normal !important; writing-mode: horizontal-tb !important; float: none !important;
}
/* .kadence-customer-image is deliberately NOT in the reset above: it's now
   a fixed-size flex item (see .kadence-customer-image rule below) sitting
   beside .fh-profile-text in a row — a width:100% !important reset here
   would stretch it to fill the whole row and squeeze the text column to 0,
   which is exactly the "Member since" overlap bug this replaces. */
.kadence-customer-image {
  /* Kadence's woocommerce-account.min.css ALSO sets this wrapper div
     itself to position:absolute; left:calc(1em + 4px); top:0 — a separate
     rule from the one overriding the img inside it. Fixing the img alone
     still leaves this parent floating out of flow, sitting on top of the
     text regardless of the img's own size/shape. Both need position:static. */
  position: static !important; left: auto !important; top: auto !important;
  max-width: 100%; box-sizing: border-box; white-space: normal; writing-mode: horizontal-tb; float: none !important;
}
/* ul/li/a are NOT forced to width:100% here — that would also force each
   nav pill to full-viewport width in the mobile horizontal-scroll layout
   further down. Their sizing is handled entirely by the specific nav rules
   below (column-stretch on desktop, row/nowrap/scroll on mobile); they
   just need the same writing-mode/box-sizing/float defence. */
.woocommerce-MyAccount-navigation ul,
.woocommerce-MyAccount-navigation ul li,
.woocommerce-MyAccount-navigation ul li a {
  max-width: 100% !important; box-sizing: border-box !important;
  white-space: normal !important; writing-mode: horizontal-tb !important; float: none !important;
}

/* ============ WHY CHOOSE FLOWER HOUSE (replaces the old Wedding Garlands /
   100+ Varieties promo cards — those categories are already covered in
   Shop by Collection below, so this section carries brand/trust messaging
   instead) ============ */
.fh-why-choose {
  background: #FAFAF8; padding: 90px 2rem; position: relative; overflow: hidden;
}
.fh-why-choose-inner {
  max-width: 1280px; margin: 0 auto; display: grid;
  grid-template-columns: 40% 60%; gap: 4rem; align-items: center; position: relative; z-index: 1;
}
.fh-why-left { max-width: 460px; }
.fh-why-eyebrow {
  font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--fh-green); margin: 0 0 1rem;
}
.fh-why-heading {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; color: var(--fh-forest);
  font-size: clamp(2rem, 3vw, 2.6rem); line-height: 1.15; margin: 0 0 1.25rem;
}
.fh-why-copy { font-size: 1.02rem; line-height: 1.75; color: var(--fh-text); margin: 0 0 2rem; }
.fh-why-cta {
  display: inline-flex; align-items: center; background: var(--fh-green) !important; color: #fff !important;
  border-radius: 999px; padding: 0.99rem 2.2rem; font-size: 1.05rem; font-weight: 600; text-decoration: none;
  transition: background 220ms ease, transform 200ms ease, box-shadow 220ms ease;
  box-shadow: 0 6px 16px rgba(1, 92, 44, 0.18);
}
.fh-why-cta:hover { background: var(--fh-green-dark) !important; transform: translateY(-1px) scale(1.02); box-shadow: 0 10px 22px rgba(1, 92, 44, 0.26); }
.fh-why-right { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; }
.fh-why-card {
  background: #fff; border: 1px solid #ECECE8; border-radius: 18px; padding: 2.1rem 1.85rem;
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.05);
  transition: transform 300ms ease, box-shadow 300ms ease;
  display: flex; flex-direction: column; height: 100%;
  opacity: 0; transform: translateY(24px);
}
.fh-why-card.fh-in-view { opacity: 1; transform: translateY(0); transition: transform 300ms ease, box-shadow 300ms ease, opacity 600ms ease, transform 600ms ease; }
.fh-why-card:hover { transform: translateY(-6px); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.08); }
.fh-why-icon {
  display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px;
  border-radius: 50%; background: rgba(11, 93, 42, 0.08); font-size: 1.7rem; margin-bottom: 1.25rem;
  transition: transform 300ms ease;
}
.fh-why-card:hover .fh-why-icon { transform: scale(1.08); }
.fh-why-card strong { font-size: 1.1rem; font-weight: 700; color: #0B5D2A; margin-bottom: 0.6rem; display: block; letter-spacing: -0.01em; }
.fh-why-card p { font-size: 0.92rem; line-height: 1.65; color: var(--fh-text); margin: 0; }
/* Subtle floral watermark, bottom-right, barely-there per spec (5-8% opacity) */
.fh-why-choose::after {
  content: ""; position: absolute; right: -40px; bottom: -40px; width: 260px; height: 260px;
  opacity: 0.07; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%23015C2C' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat; background-size: contain;
}
@media (max-width: 1024px) {
  .fh-why-choose-inner { grid-template-columns: 1fr; gap: 3rem; }
  .fh-why-left { max-width: none; text-align: center; }
  .fh-why-cta { margin: 0 auto; }
}
@media (max-width: 600px) {
  .fh-why-choose { padding: 60px 1.25rem; }
  .fh-why-right { grid-template-columns: 1fr; }
}

/* Homepage hero: kill Kadence's global .content-area top/bottom margin
   (5rem each) so the hero sits flush under the header and the next
   section sits flush under the hero, instead of floating in white space. */
body.page-id-14 .content-area { margin-top: 0; margin-bottom: 0; }
body.page-id-14 .entry-content { margin-top: 0; }

/* Header */
.fh-account-header { margin-bottom: 2rem; }
.fh-account-breadcrumb { margin-bottom: 0.875rem; }
.fh-account-header h1 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: clamp(2rem, 3vw, 2.5rem); color: var(--fh-forest); margin: 0 0 0.4rem; max-width: none;
}
.fh-account-header p { color: var(--fh-text-light); font-size: 1rem; margin: 0; }

/* Layout: 300px sidebar + content (max-width 900), only when nav exists --
   the logged-out login view has no nav, so it just stays a single column. */
body.woocommerce-account div.woocommerce {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start;
  margin-top: 0.5rem; margin-bottom: 8rem;
  max-width: 1320px; margin-left: auto; margin-right: auto; width: 100%; box-sizing: border-box;
}
@media (min-width: 1025px) {
  body.woocommerce-account div.woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 300px minmax(0, 1fr); gap: 2rem; }
  /* Explicit placement, not auto-flow: a stray sibling node between the
     nav and content divs (e.g. an inline <script> injected by a hook)
     can otherwise consume a grid cell via auto-placement and bump the
     content div into the narrow first column instead of the second. */
  body.woocommerce-account div.woocommerce > .account-navigation-wrap { grid-column: 1; grid-row: 1; }
  body.woocommerce-account div.woocommerce > .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1; }
}
/* Core WooCommerce/Kadence CSS floats this element at a fixed percentage
   width (the same pattern that broke the Cart form's grid column) — that
   computed against the wrong container here and collapsed the whole
   right-hand column to a sliver, wrapping every card's text character by
   character. Neutralizing float/width is the actual fix; nothing else
   about the design changes. */
.woocommerce-account .woocommerce-MyAccount-content {
  float: none !important; width: 100% !important; min-width: 0 !important; max-width: 900px;
  display: block !important; box-sizing: border-box !important;
}

/* Sidebar card */
.account-navigation-wrap {
  background: #fff !important; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04); padding: 1.6rem 1.4rem; display: block !important;
}
@media (min-width: 1025px) { .account-navigation-wrap { position: sticky; top: 100px; } }

/* Row layout: fixed avatar + a single text column (name, member-since,
   badge all live inside .fh-profile-text, built by JS in fh-myaccount.php
   since Kadence prints the avatar and name as flat siblings with nothing
   to group them). One flex row, one column — no grid-span/order tricks
   that can misalign under content-size changes. */
.kadence-account-avatar {
  display: flex !important; flex-direction: column !important; align-items: center !important; text-align: center;
  margin-bottom: 1.4rem; padding-bottom: 1.4rem; border-bottom: 1px solid var(--fh-hairline);
}
.kadence-customer-image { flex: 0 0 auto; margin-bottom: 1rem; }
.kadence-customer-image img {
  /* Kadence's own woocommerce-account.min.css targets this img with a
     higher-specificity selector setting position:absolute; left:0; top:0;
     max-width:40px — none of it !important, but since our rule below never
     declared those properties, Kadence's non-important values still won by
     specificity. That pulled the avatar out of flow entirely (absolute,
     pinned to its positioned ancestor) and capped its width to 40px while
     height stayed ~64px — the tall narrow oval overlapping the text below,
     regardless of any flex/column layout applied to its container. */
  position: static !important; max-width: none !important;
  border-radius: 50% !important; width: 64px !important; height: 64px !important; border: 3px solid var(--fh-sage); display: block;
}
.fh-profile-text { width: 100%; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.kadence-customer-name {
  /* Kadence's own woocommerce-account.min.css adds padding-left:50px here,
     left over from its original layout where the avatar was absolutely
     positioned on top of the name. Now that the avatar sits in normal flow
     beside/above the text, that leftover padding just pushes the name text
     off-center. */
  padding-left: 0 !important;
  font-weight: 600; color: var(--fh-forest); font-size: 1.125rem; line-height: 1.4; word-break: break-word !important; overflow-wrap: break-word !important;
}

/* Nav as icon cards, never wrapping text */
.woocommerce-MyAccount-navigation ul { list-style: none !important; padding: 0 !important; margin: 0 !important; display: flex !important; flex-direction: column; gap: 0.45rem; }
.woocommerce-MyAccount-navigation ul li { border: 0 !important; margin: 0 !important; background: none !important; border-radius: 999px; }
.woocommerce-MyAccount-navigation ul li a {
  display: flex !important; align-items: center; gap: 0.9rem;
  padding: 0.85rem 1.1rem !important; border-radius: 999px; color: var(--fh-text);
  font-size: 0.92rem; text-decoration: none; white-space: nowrap !important;
  transition: background 200ms ease, color 200ms ease, transform 150ms ease;
}
.woocommerce-MyAccount-navigation ul li a::before {
  content: ""; flex: none; width: 18px; height: 18px; background-size: contain; background-repeat: no-repeat; background-position: center; opacity: 0.7;
  transition: opacity 200ms ease;
}
.woocommerce-MyAccount-navigation ul li a:hover { background: var(--fh-cream); color: var(--fh-green); transform: translateX(2px); }
.woocommerce-MyAccount-navigation ul li a:hover::before { opacity: 1; }
.woocommerce-MyAccount-navigation ul li.is-active a { background: var(--fh-green); color: #fff !important; font-weight: 600; }
.woocommerce-MyAccount-navigation ul li.is-active a::before { opacity: 1; filter: brightness(0) invert(1); }

.woocommerce-MyAccount-navigation-link--dashboard a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='3' width='7' height='7' rx='1'/><rect x='14' y='3' width='7' height='7' rx='1'/><rect x='3' y='14' width='7' height='7' rx='1'/><rect x='14' y='14' width='7' height='7' rx='1'/></svg>"); }
.woocommerce-MyAccount-navigation-link--orders a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 7h18M3 12h18M3 17h18'/></svg>"); }
.woocommerce-MyAccount-navigation-link--downloads a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3v12m0 0l-4-4m4 4l4-4'/><path d='M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/></svg>"); }
.woocommerce-MyAccount-navigation-link--edit-address a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-6-5.5-6-10a6 6 0 1 1 12 0c0 4.5-6 10-6 10z'/><circle cx='12' cy='11' r='2'/></svg>"); }
.woocommerce-MyAccount-navigation-link--edit-account a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 20c0-4 4-6 8-6s8 2 8 6'/></svg>"); }
.woocommerce-MyAccount-navigation-link--customer-logout a::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/><path d='M16 17l5-5-5-5'/><path d='M21 12H9'/></svg>"); }

/* Content card + vertical rhythm between sections */
.woocommerce-account .woocommerce-MyAccount-content {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.05); padding: 2rem !important;
}
.woocommerce-account .woocommerce-MyAccount-content * { overflow-wrap: break-word; }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; color: var(--fh-forest);
}
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }
.woocommerce-MyAccount-content > * + * { margin-top: 2rem; }

/* Login form: same card treatment, since it has no nav sibling to sit next to */
.woocommerce-form-login {
  background: #fff; border: 1px solid var(--fh-hairline) !important; border-radius: var(--fh-radius) !important;
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04); padding: 2rem !important; max-width: 420px;
  width: 100%; box-sizing: border-box !important;
}
body.woocommerce-account div.woocommerce h2 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.4rem; color: var(--fh-forest);
}

/* Welcome card */
.fh-account-welcome {
  width: 100%; min-width: 0; box-sizing: border-box; display: block;
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04); padding: 3.125rem;
}
.fh-account-welcome h2 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.65rem; color: var(--fh-forest); margin: 0 0 0.6rem;
  overflow-wrap: break-word; word-break: break-word;
}
.fh-account-welcome p {
  margin: 0.2rem 0 0; color: var(--fh-text-light); font-size: 0.98rem; line-height: 1.65; max-width: 62ch;
  overflow-wrap: break-word; word-break: break-word;
}

/* Quick action cards */
.fh-account-quick-actions { width: 100%; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
.fh-qa-card {
  width: 100%; min-width: 0; min-height: 168px; box-sizing: border-box;
  display: flex; flex-direction: column; justify-content: center; gap: 0.4rem; background: #fff; border: 1px solid var(--fh-hairline);
  border-radius: 16px; padding: 1.8rem 1.8rem 1.8rem 4.25rem; text-decoration: none;
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04); position: relative;
  transition: box-shadow 250ms ease, transform 250ms ease, border-color 250ms ease;
}
.fh-qa-card::before { content: ""; position: absolute; left: 1.8rem; top: 1.9rem; width: 28px; height: 28px; background-size: contain; background-repeat: no-repeat; opacity: 0.65; transition: opacity 250ms ease; }
.fh-qa-card:hover { box-shadow: 0 14px 32px rgba(5, 31, 21, 0.1); transform: translateY(-3px); border-color: rgba(1, 92, 44, 0.18); }
.fh-qa-card:hover::before { opacity: 1; }
.fh-qa-card strong { color: var(--fh-forest); font-size: 1.08rem; font-weight: 700; }
.fh-qa-card span { color: var(--fh-text-light); font-size: 0.86rem; }
.fh-qa-card em { color: var(--fh-green); font-weight: 600; font-style: normal; font-size: 0.85rem; margin-top: 0.4rem; display: inline-block; transition: transform 250ms ease; }
.fh-qa-card:hover em { transform: translateX(3px); }
.fh-qa-orders::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 7h18M3 12h18M3 17h18'/></svg>"); }
.fh-qa-address::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-6-5.5-6-10a6 6 0 1 1 12 0c0 4.5-6 10-6 10z'/><circle cx='12' cy='11' r='2'/></svg>"); }
.fh-qa-account::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='8' r='4'/><path d='M4 20c0-4 4-6 8-6s8 2 8 6'/></svg>"); }
.fh-qa-support::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 13a8 8 0 0 1 16 0'/><rect x='2' y='13' width='5' height='7' rx='2'/><rect x='17' y='13' width='5' height='7' rx='2'/><path d='M20 20v1a3 3 0 0 1-3 3h-3'/></svg>"); }

/* Section headers inside the content card */
.fh-account-section { width: 100%; min-width: 0; box-sizing: border-box; }
.fh-account-section h3 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.2rem; color: var(--fh-forest); margin: 0 0 1rem; }

/* Order cards (dashboard preview + full Orders tab, same component) */
.fh-order-cards { width: 100%; display: flex; flex-direction: column; gap: 1rem; }
.fh-order-card {
  width: 100%; min-width: 0; box-sizing: border-box;
  display: flex; align-items: center; flex-wrap: wrap; gap: 1rem;
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius); padding: 1.25rem 1.5rem;
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04);
  transition: box-shadow 220ms ease, transform 220ms ease;
}
.fh-order-card:hover { box-shadow: 0 8px 20px rgba(5, 31, 21, 0.06); transform: translateY(-1px); }
.fh-order-card-main { flex: 1 1 160px; }
.fh-order-card-number { font-weight: 600; color: var(--fh-forest); font-size: 0.95rem; }
.fh-order-card-date { font-size: 0.82rem; color: var(--fh-text-light); margin-top: 0.15rem; }
.fh-order-status { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.35rem 0.85rem; border-radius: 999px; white-space: nowrap; }
.fh-order-status--completed { background: var(--fh-sage); color: var(--fh-green); }
.fh-order-status--processing { background: #FEF6E9; color: #a06a10; }
.fh-order-status--pending { background: var(--fh-cream); color: var(--fh-text); }
.fh-order-status--cancelled { background: var(--fh-blush); color: #b3273f; }
.fh-order-card-total { font-weight: 700; color: var(--fh-forest); flex: 0 0 auto; }
.fh-order-card-view {
  flex: 0 0 auto; background: var(--fh-green); color: #fff !important; border-radius: 999px; padding: 0.6rem 1.3rem;
  font-size: 0.85rem; font-weight: 600; text-decoration: none; transition: background 220ms ease, transform 200ms ease;
}
.fh-order-card-view:hover { background: var(--fh-green-dark); transform: translateY(-1px); }
.fh-order-pagination { margin-top: 0.5rem; display: flex; gap: 0.75rem; }
.fh-order-pagination a.button { border-radius: 999px !important; }

/* Hide the default table/notice the cards above replace — markup stays in
   the DOM untouched, only visually suppressed. */
body.woocommerce-account table.woocommerce-orders-table,
body.woocommerce-account .woocommerce-MyAccount-orders,
body.woocommerce-account .woocommerce-pagination:not(.fh-order-pagination),
body.woocommerce-account .woocommerce-info { display: none !important; }

/* Empty state */
.fh-account-empty { text-align: center; padding: 2rem 1rem 3.25rem; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.fh-account-empty-illustration { margin-bottom: 1.5rem; font-size: 3.3rem; line-height: 1; }
.fh-account-empty-title {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 700; font-size: 1.25rem; color: var(--fh-forest); margin: 0 0 0.85rem;
}
.fh-account-empty-desc, .fh-account-empty p { color: var(--fh-text-light); font-size: 0.95rem; margin: 0 0 2.25rem; }
.fh-account-empty-cta {
  background: var(--fh-green); color: #fff !important; border-radius: 999px; padding: 0.95rem 2.6rem;
  font-weight: 600; text-decoration: none; transition: background 220ms ease, transform 200ms ease;
}
.fh-account-empty-cta:hover { background: var(--fh-green-dark); transform: translateY(-1px); }

/* Forms: consistent premium inputs across login, edit-account, edit-address */
.woocommerce-form-row label { display: block; font-size: 0.86rem; color: var(--fh-text); margin-bottom: 0.4rem; }
.woocommerce-Input, input.input-text, .woocommerce-form-login input[type="text"],
.woocommerce-form-login input[type="password"], .woocommerce-form-login input[type="email"],
.woocommerce-EditAccountForm input, .woocommerce-address-fields input, .woocommerce-address-fields select {
  height: 52px; border-radius: 12px !important; border: 1px solid var(--fh-hairline) !important;
  font-size: 0.95rem; padding: 0 1.1rem; width: 100%; background: #fff;
  transition: border-color 220ms ease, box-shadow 220ms ease;
}
.woocommerce-Input:focus, input.input-text:focus, .woocommerce-address-fields select:focus {
  border-color: var(--fh-green) !important; box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.1); outline: none;
}
.woocommerce-form-row { margin-bottom: 1.1rem; }
.woocommerce-EditAccountForm fieldset { border: 0; padding: 1.25rem 0 0; margin: 0.5rem 0 0; border-top: 1px solid var(--fh-hairline); }
.woocommerce-EditAccountForm fieldset legend {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; color: var(--fh-forest); padding: 0 0 0.75rem;
}

/* Buttons: brand green pill, everywhere in the account area */
.woocommerce-Button.button, .woocommerce-button.button, .woocommerce-MyAccount-content .button,
.woocommerce-form-login button[type="submit"], .woocommerce-EditAccountForm button[type="submit"] {
  background: var(--fh-green) !important; color: #fff !important; border: 0 !important;
  border-radius: 999px !important; padding: 0.8rem 1.75rem !important; font-weight: 600 !important;
  transition: background 220ms ease, box-shadow 220ms ease, transform 200ms ease;
  box-shadow: 0 6px 16px rgba(1, 92, 44, 0.18);
}
.woocommerce-Button.button:hover, .woocommerce-button.button:hover, .woocommerce-MyAccount-content .button:hover,
.woocommerce-form-login button[type="submit"]:hover, .woocommerce-EditAccountForm button[type="submit"]:hover {
  background: var(--fh-green-dark) !important; box-shadow: 0 10px 22px rgba(1, 92, 44, 0.26); transform: translateY(-1px);
}

/* Addresses */
.woocommerce-Addresses { gap: 1.5rem; }
.woocommerce-Address {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius); padding: 1.75rem;
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04);
  transition: box-shadow 220ms ease, transform 220ms ease; margin-bottom: 0;
}
.woocommerce-Address:hover { box-shadow: 0 12px 28px rgba(5, 31, 21, 0.08); transform: translateY(-3px); }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 0.75rem; }
.woocommerce-Address-title h2, .woocommerce-Address-title h3 { font-size: 1.05rem; margin: 0; }
.woocommerce-Address-title .edit { font-size: 0.85rem; font-weight: 600; color: var(--fh-green); text-decoration: none; }
.woocommerce-Address-title .edit:hover { text-decoration: underline; text-underline-offset: 2px; }
.woocommerce-Address address { font-size: 0.92rem; line-height: 1.7; color: var(--fh-text); font-style: normal; }
.woocommerce-Address { display: flex; flex-direction: column; min-height: 220px; }
.fh-address-meta { margin-top: auto; padding-top: 1.25rem; border-top: 1px solid var(--fh-hairline); }
.fh-address-status {
  display: inline-block; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  padding: 0.3rem 0.75rem; border-radius: 999px; margin-bottom: 0.6rem;
}
.fh-address-status--set { background: var(--fh-sage); color: var(--fh-green); }
.fh-address-status--unset { background: var(--fh-cream); color: var(--fh-text-light); }
.fh-address-desc { font-size: 0.85rem; color: var(--fh-text-light); margin: 0 0 0.9rem; }
.fh-address-cta {
  display: inline-flex; align-items: center; gap: 0.35rem; background: var(--fh-green); color: #fff !important;
  border-radius: 999px; padding: 0.65rem 1.3rem; font-size: 0.85rem; font-weight: 600; text-decoration: none;
  transition: background 220ms ease, transform 200ms ease;
}
.fh-address-cta:hover { background: var(--fh-green-dark); transform: translateY(-1px); }

/* Sidebar profile: typography hierarchy + Verified Account badge */
.kadence-customer-name { font-weight: 600 !important; font-size: 1.125rem !important; }
.fh-member-since { font-size: 13px; font-weight: 500; color: #6B7280; line-height: 1.4; }
.fh-verified-badge {
  display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.4rem; align-self: center;
  font-size: 0.75rem; font-weight: 700; color: var(--fh-green); background: var(--fh-sage);
  padding: 0.3rem 0.7rem; border-radius: 999px; letter-spacing: 0.02em;
}

/* Tablet: sidebar becomes a horizontal top bar */
@media (min-width: 769px) and (max-width: 1024px) {
  .account-navigation-wrap { position: static; }
  .kadence-account-avatar { border-bottom: 0; margin-bottom: 1rem; padding-bottom: 0; }
  .woocommerce-MyAccount-navigation ul { flex-direction: row !important; flex-wrap: wrap; }
  .fh-account-quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile: nav becomes horizontal scroll pills, cards stack, forms 1-column */
@media (max-width: 768px) {
  .fh-account-header { margin-bottom: 1.25rem; }
  .account-navigation-wrap { padding: 1.1rem; }
  .kadence-account-avatar { border-bottom: 0; margin-bottom: 0.75rem; padding-bottom: 0; }
  .kadence-customer-image img { width: 48px !important; height: 48px !important; }
  .woocommerce-MyAccount-navigation ul {
    flex-direction: row !important; flex-wrap: nowrap; overflow-x: auto; gap: 0.5rem; -webkit-overflow-scrolling: touch;
    padding-bottom: 0.3rem !important;
  }
  .woocommerce-MyAccount-navigation ul li { flex: 0 0 auto; }
  .woocommerce-MyAccount-navigation ul li a { padding: 0.6rem 0.9rem !important; font-size: 0.85rem; }
  .woocommerce-MyAccount-navigation ul li a::before { width: 15px; height: 15px; }
  .woocommerce-MyAccount-content, .woocommerce-form-login, .fh-account-welcome { padding: 1.4rem !important; }
  .fh-account-quick-actions { grid-template-columns: minmax(0, 1fr); }
  .fh-order-card { flex-direction: column; align-items: flex-start; }
  .fh-order-card-view { width: 100%; text-align: center; }
  .woocommerce-form-row--first, .woocommerce-form-row--last { width: 100% !important; float: none !important; }
}

/* ============ CONTENT PAGES / FAQ ============ */
.wp-block-details { background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius-sm); padding: 0.9rem 1.2rem; margin-bottom: 0.6rem; }
.wp-block-details summary { font-weight: 600; color: var(--fh-forest); cursor: pointer; }
.wp-block-details[open] { border-color: var(--fh-green); }
.wp-block-details p { color: var(--fh-text); margin-top: 0.6rem; }
/* Long-form policy rhythm (policy + FAQ pages only) */
.page-id-3 .entry-content > h2, .page-id-90 .entry-content > h2, .page-id-91 .entry-content > h2,
.page-id-92 .entry-content > h2, .page-id-94 .entry-content > h2 {
  text-align: left; display: block; margin-top: 2.5rem !important; font-size: 1.4rem;
}
.page-id-3 .entry-content > h2::before, .page-id-3 .entry-content > h2::after,
.page-id-90 .entry-content > h2::before, .page-id-90 .entry-content > h2::after,
.page-id-91 .entry-content > h2::before, .page-id-91 .entry-content > h2::after,
.page-id-92 .entry-content > h2::before, .page-id-92 .entry-content > h2::after,
.page-id-94 .entry-content > h2::before, .page-id-94 .entry-content > h2::after { display: none; }

/* ============ FOOTER: compact, organized ============ */
.site-footer { background: var(--fh-cream); }
.site-footer .site-footer-row-container-inner { padding-top: 1.2rem; padding-bottom: 0.2rem; }
.site-footer .widget-area .widget:last-child { margin-bottom: 0; }
.site-footer .wp-block-list:last-child { margin-bottom: 0; }
.site-footer .widget-area { font-size: 0.88rem; }
.site-footer .wp-block-heading {
  color: var(--fh-forest); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em;
  text-transform: uppercase; margin-bottom: 0.75rem;
}
.site-footer ul { list-style: none; padding-left: 0; margin: 0; }
.site-footer ul li { margin-bottom: 0.75rem; }
.site-footer ul li a { color: var(--fh-text); text-decoration: none; line-height: 1.6; }
.site-footer ul li a:hover { color: var(--fh-green); }
.site-footer p { color: var(--fh-text-light); line-height: 2.05; margin-bottom: 1rem; font-size: 0.85rem; }
.site-footer .wp-block-image { margin-bottom: 0.5rem; }
.site-footer .wp-block-image img { max-width: 127px; height: auto; }
.site-footer .widget { margin-bottom: 0; background: transparent; border: 0; padding: 0; }
/* Copyright strip: off-white on brand green, centered */
.site-footer-bottom { border-top: 0; padding-top: 0; padding-bottom: 0; }
.site-bottom-footer-wrap, .site-bottom-footer-wrap .footer-html, .site-bottom-footer-wrap p,
.site-footer-bottom, .site-footer-bottom p { color: rgba(255, 255, 255, 0.92); font-size: 0.85rem; text-align: center; }
.site-bottom-footer-wrap a, .site-footer-bottom a {
  color: rgba(255, 255, 255, 0.92); opacity: 0.9; text-decoration: underline;
  text-underline-offset: 3px; transition: opacity 250ms ease;
}
.site-bottom-footer-wrap a:hover, .site-footer-bottom a:hover { opacity: 1; color: #fff; }
.site-bottom-footer-wrap .footer-html { margin: 0; padding: 0.5rem 1rem; }
/* Footer link + icon transitions per spec */
.site-footer ul li a { transition: color 250ms ease; }

/* ============ AUDIT BLOCK 1: CSS-only parity items ============ */
/* Wholesale banner image: capsule mask (reference signature) */
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child):not(.fh-story-band) .wp-block-image,
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child):not(.fh-story-band) .wp-block-image img {
  border-radius: 999px;
}
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child):not(.fh-story-band) .wp-block-image img {
  aspect-ratio: 16 / 8; object-fit: cover;
}
/* Stats strip: same treatment as the trust bar (bold title-case label + small subtext) */
/* Nav links: animated underline */
.main-navigation .primary-menu-container > ul > li > a {
  background-image: linear-gradient(var(--fh-green), var(--fh-green));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 1px;
  transition: background-size 0.25s ease, color 0.15s ease;
}
.main-navigation .primary-menu-container > ul > li > a:hover,
.main-navigation .primary-menu-container > ul > li.current-menu-item > a { background-size: 100% 1px; }
/* Sticky header: soft glass surface */
#masthead .item-is-fixed .site-main-header-inner-wrap,
.site-header .item-is-fixed { background: rgba(250, 249, 246, 0.94) !important; backdrop-filter: blur(8px); box-shadow: 0 1px 0 var(--fh-hairline); }
/* Accessibility: visible focus everywhere interactive */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
.wp-block-button__link:focus-visible, .woocommerce .button:focus-visible {
  outline: 2px solid var(--fh-green) !important; outline-offset: 2px; border-radius: 4px;
}
.wp-block-button__link:focus-visible, .woocommerce .button:focus-visible { border-radius: 999px; }
/* Contrast: muted text darkens on pastel surfaces (AA) */
[class*="has-fh-"] .has-fh-text-light-color, [class*="has-fh-"] p { --fh-text-light: #6a6f67; }
/* Button hover: 1px lift, unified timing */
.entry-content .wp-block-button__link, .woocommerce .button, .wc-block-components-button { transition: background 0.15s ease-out, box-shadow 0.15s ease-out, transform 0.15s ease-out; }
.entry-content .wp-block-button__link:hover, .woocommerce .button:hover { transform: translateY(-1px) scale(1.02); }
/* Footer social row */
.fh-social { display: flex; gap: 0.85rem; margin-top: 0.65rem; }
/* Footer: desktop 5-col — brand column gets a little more room */
@media (min-width: 1025px) {
  .site-footer .site-footer-row-columns-5 { grid-template-columns: 1.6fr 1fr 1fr 1fr 1.2fr !important; }
}
.fh-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%; background: var(--fh-forest);
  transition: background 250ms ease, transform 250ms ease;
}
.fh-social a:hover { background: var(--fh-green); transform: translateY(-1px); }
.fh-social svg { width: 19px; height: 19px; fill: #fff; }
.site-footer .widget_block p svg { vertical-align: middle !important; margin-right: 8px !important; }

/* ============ FINAL PREMIUM POLISH ============ */
/* 1. Header: more air, taller bar, roomier nav */
.site-header .site-main-header-inner-wrap { min-height: 78px; }
.main-navigation .primary-menu-container > ul { gap: 0.65rem; }
.main-navigation .primary-menu-container > ul > li > a { padding: 0.4rem 0.55rem; }
.site-header .header-cart-wrap { margin-left: 0.5rem; }

/* 2. Hero: image prominence, softer frame, wider copy */
.entry-content > .alignfull:first-child .wp-block-image { border-radius: 24px; }
.entry-content > .alignfull:first-child .wp-block-image img { border-radius: 24px; }
.entry-content > .alignfull:first-child .wp-block-columns { gap: 3rem; }
.entry-content > .alignfull:first-child p:not(.has-small-font-size) { max-width: 46ch; }
.entry-content > .alignfull:first-child h1 { margin-bottom: 1rem; }
.entry-content > .alignfull:first-child .wp-block-buttons { margin-top: 1.6rem; }
.entry-content > .alignfull:first-child { padding-top: 3.25rem !important; padding-bottom: 3.25rem !important; }

/* 3. Trust/stat bands: taller, lighter dividers */
.entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.entry-content > .alignfull:not(:has(.wp-block-image)) .wp-block-columns .wp-block-column:not(:first-child) { border-left-color: rgba(1, 92, 44, 0.09); }
.fh-stats-4up .wp-block-column { padding: 0.5rem 1rem; border-radius: 14px; transition: transform 250ms ease, background 250ms ease; }
.fh-stats-4up .wp-block-column:hover { background: rgba(1, 92, 44, 0.04); transform: translateY(-3px); }
@media (min-width: 1025px) { .fh-stats-4up .wp-block-column:not(:first-child) { border-left: 1px solid rgba(1, 92, 44, 0.1) !important; } }
p.fh-ic-corp::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='4' width='14' height='16' rx='1'/><path d='M9 8h2M13 8h2M9 12h2M13 12h2M11 20v-3.5h2V20'/></svg>"); }
p.fh-ic-happy::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M8 13c1 1.5 2.5 2.3 4 2.3s3-.8 4-2.3'/><circle cx='9' cy='9.5' r='0.9' fill='%23015C2C'/><circle cx='15' cy='9.5' r='0.9' fill='%23015C2C'/></svg>"); }

/* 4. Specialty cards: roomier, softer, premium lift */
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] {
  padding: 2.25rem 2rem; border-color: rgba(1, 92, 44, 0.07);
  transition: transform 250ms ease, box-shadow 250ms ease;
}
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"]:hover {
  transform: translateY(-4px); box-shadow: var(--fh-shadow-hover);
}
/* Feature card image column: was flex-basis:40% inline, nudge slightly
   larger so the photo reads more prominently against the text column. */
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] .wp-block-column[style*="flex-basis:40%"] { flex-basis: 44% !important; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] .wp-block-column[style*="flex-basis:60%"] { flex-basis: 56% !important; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] h3 { margin-bottom: 0.9rem; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] figure { overflow: hidden; border-radius: 12px; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] figure img { transition: transform 350ms ease; }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"]:hover figure img { transform: scale(1.05); }
.entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] ul.wp-block-list li { margin-bottom: 0.6rem; }

/* 5. Product cards: hover/zoom rules consolidated in SHOP FINAL POLISH block */
.woocommerce ul.products li.product { overflow: hidden; }

/* 6. Occasion chips: richer pastels, bigger presence, gentle hover */
.has-fh-blush-background-color { background-color: #FAE8EE !important; }
.has-fh-peach-background-color { background-color: #FDF0E2 !important; }
.has-fh-lavender-background-color { background-color: #F5EEF9 !important; }
.has-fh-sage-background-color { background-color: #F1F5F1 !important; }
.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="has-fh-"] > h4:only-child) {
  gap: 2rem;
}
.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="has-fh-"] > h4:only-child) .wp-block-group {
  min-height: 124px; padding: 2.35rem 1.25rem; border-radius: var(--fh-radius);
  border: 1px solid transparent;
  transition: transform 250ms ease, box-shadow 250ms ease, border-color 250ms ease;
}
.entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="has-fh-"] > h4:only-child) .wp-block-group:hover {
  transform: translateY(-3px); box-shadow: var(--fh-shadow-hover); border-color: rgba(1, 92, 44, 0.15);
}


/* 7. Wholesale banner: breathing room, larger CTA */
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child) { padding-top: 2.75rem !important; padding-bottom: 2.75rem !important; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) h2 { margin-bottom: 1rem; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) .wp-block-button__link { padding: 0.94rem 2.2rem; font-size: 1.1rem; }

/* 8. Stats: unified with trust bar styling; compact, symmetric block */
.entry-content > .wp-block-columns:has(p[class*="fh-ic-"]) {
  padding-top: 1.5rem !important; padding-bottom: 1.5rem !important;
  margin-top: 0 !important; margin-bottom: 0 !important;
}
/* neighbouring full bands hug the stats row equally */
.entry-content > .alignfull:has(+ .wp-block-columns p[class*="fh-ic-"]) { margin-bottom: 0 !important; }
.entry-content > .wp-block-columns:has(p[class*="fh-ic-"]) + .alignfull { margin-top: 0 !important; }

/* 9. Footer: soft sage editorial surface + dark green copyright bookend */
.site-footer { background: #F6F8F5; border-top: 1px solid rgba(1, 92, 44, 0.08); }
.site-top-footer-wrap, .site-top-footer-wrap .site-footer-row-container-inner { background: #F6F8F5 !important; }
.site-footer .site-footer-row { column-gap: 3.75rem; }
.site-footer .site-footer-row-container-inner { padding-top: 0; padding-bottom: 0; }
.site-top-footer-inner-wrap { padding-top: 120px !important; padding-bottom: 88px !important; grid-row-gap: 28px !important; }
/* Copyright strip: dark green brand anchor, mirrors header */
.site-bottom-footer-wrap, .site-bottom-footer-wrap .site-footer-row-container-inner { background: #015C2C !important; }
.site-bottom-footer-inner-wrap {
  padding-top: 0.9rem !important; padding-bottom: 0.9rem !important;
  min-height: 58px; display: flex; align-items: center; justify-content: center;
}
.site-footer-wrap, .site-footer .site-footer-row-container { padding-top: 0 !important; padding-bottom: 0 !important; }
.site-footer .footer-widget-area, .site-footer .widget-area { margin: 0 !important; }
.site-footer .footer-widget-area .widget:last-child, .site-footer .widget-area > *:last-child { margin-bottom: 0 !important; }
.site-footer h4, .site-footer .wp-block-heading { margin-top: 0; }
.fh-social a:hover { transform: translateY(-2px) scale(1.05); }

/* 13. Scroll reveal removed: repeatedly broke page captures and inconsistent
   engines (sections stranded at opacity 0). Static premium > fragile motion. */

/* 14. Consistency: one radius + one timing everywhere */
.entry-content .wp-block-image, .entry-content .wp-block-image img { border-radius: var(--fh-radius); }
.entry-content > .alignfull:first-child .wp-block-image, .entry-content > .alignfull:first-child .wp-block-image img { border-radius: 24px; }
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child) .wp-block-image,
.entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child) .wp-block-image img { border-radius: 999px; }
* { transition-timing-function: ease-out; }

/* Standalone pastel callouts (e.g. testimonial): contained, centered, even rhythm */
.entry-content > .wp-block-group[class*="has-fh-"]:not(.alignfull) {
  max-width: 780px; margin: 2.5rem auto !important;
  border-radius: var(--fh-radius); padding: 2rem 2.5rem; text-align: center;
}
.entry-content > .wp-block-group[class*="has-fh-"]:not(.alignfull) p { margin: 0 auto; max-width: 58ch; line-height: 1.7; }

/* Search: compact green bar dropping from top (mirrors header), not a fullscreen page */
#search-drawer .drawer-inner {
  position: fixed !important; top: 0; left: 0; right: 0; bottom: auto !important;
  height: auto !important; min-height: 88px !important; max-height: none;
  background: var(--fh-green) !important;
  padding: 1rem 4rem 1rem 1.5rem;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 12px 32px rgba(5, 31, 21, 0.25);
  transform: none !important;
}
#search-drawer .drawer-overlay { background: rgba(5, 31, 21, 0.35) !important; backdrop-filter: blur(2px); }
#search-drawer .drawer-header { position: absolute !important; right: 0.9rem; top: 50%; transform: translateY(-50%); padding: 0 !important; margin: 0 !important; }
#search-drawer .search-toggle-close { color: #fff !important; opacity: 0.85; }
#search-drawer .search-toggle-close:hover { opacity: 1; }
#search-drawer .drawer-content {
  position: static !important; width: auto !important;
  padding: 0 !important; margin: 0 !important; transform: none !important;
}
#search-drawer .search-form {
  width: min(520px, 82vw) !important; max-width: min(520px, 82vw) !important;
  margin: 0 !important; position: relative;
}
#search-drawer .search-field {
  width: 100%; background: #fff !important; color: var(--fh-forest) !important;
  border: 0 !important; border-radius: 999px !important;
  padding: 0.7rem 3rem 0.7rem 1.3rem !important; font-size: 1rem !important;
}
#search-drawer .search-field:focus { box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.5) !important; outline: none !important; }
#search-drawer .search-submit {
  position: absolute; right: 0.3rem; top: 50%; transform: translateY(-50%);
  width: 38px; height: 38px; padding: 0; border: 0;
  background: transparent !important; color: var(--fh-green) !important;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 0 !important; /* hides the “Search” text label */
}
#search-drawer .search-submit .kadence-svg-iconset { font-size: 1.05rem; }

/* Add to cart: text perfectly centered in pill; qty aligned beside */
.woocommerce div.product form.cart .button, .woocommerce .button, .entry-content .wp-block-button__link {
  display: inline-flex; align-items: center; justify-content: center; line-height: 1.2;
}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart,
.woocommerce div.product form.cart:not(.variations_form) {
  display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
}
.woocommerce .quantity .qty { height: 48px; }

/* (search drawer styles live in the compact green-bar block below) */

/* ============ ICON SET (Block 2): line-art, 1.5px stroke, brand green ============ */
/* Trust bar + stats: icon centered above label; text centered wherever the row lives */
p[class*="fh-ic-"] { text-align: center; }
p[class*="fh-ic-"]::before {
  content: ""; display: block; width: 34px; height: 34px; margin: 0 auto 0.9rem;
  background-repeat: no-repeat; background-size: contain; background-position: center;
  opacity: 0.9;
}
/* Trust bar specifically (sage band, not the stats band which uses .fh-stat):
   a touch more vertical padding and a larger icon so it reads less compact. */
body.page-id-14 .entry-content > *:nth-child(2).has-fh-sage-background-color {
  padding-top: 1.25rem !important; padding-bottom: 1.25rem !important;
}
body.page-id-14 .entry-content > *:nth-child(2) p[class*="fh-ic-"]::before { width: 38px; height: 38px; margin-bottom: 1rem; }
p.fh-ic-delivery::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M2 7h11v8H2z'/><path d='M13 10h4l3 3v2h-7z'/><circle cx='6' cy='17.5' r='1.5'/><circle cx='16' cy='17.5' r='1.5'/></svg>"); }
p.fh-ic-fresh::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21C7 16 6 10 12 3c6 7 5 13 0 18z'/><path d='M12 20V9'/></svg>"); }
p.fh-ic-secure::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l7 3v5c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z'/><path d='M9 12l2 2 4-4'/></svg>"); }
p.fh-ic-garland::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6c3 6 6 8 9 8s6-2 9-8'/><circle cx='12' cy='15.5' r='1.7'/><circle cx='6' cy='10' r='1.3'/><circle cx='18' cy='10' r='1.3'/></svg>"); }
p.fh-ic-farm::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21v-8'/><path d='M12 13c0-4-3-6-7-6 0 4 3 6 7 6z'/><path d='M12 13c0-4 3-6 7-6 0 4-3 6-7 6z'/></svg>"); }
p.fh-ic-clients::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='8' r='3'/><path d='M3 20c0-3.5 2.5-5.5 6-5.5s6 2 6 5.5'/><circle cx='17' cy='9' r='2.4'/><path d='M16.5 15c2.6.4 4.5 2.1 4.5 5'/></svg>"); }
p.fh-ic-couple::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='8.5' cy='7.5' r='2.8'/><circle cx='15.5' cy='7.5' r='2.8'/><path d='M3.5 20c0-3.4 2-5.5 5-5.5s5 2.1 5 5.5'/><path d='M11.5 20c.4-3 2.2-5.5 4.5-5.5 3 0 4.5 2.1 4.5 5.5'/></svg>"); }

/* Occasion chips: pastel-deep circle with icon above label */
h4.fh-occ { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
h4.fh-occ::before {
  content: ""; width: 68px; height: 68px; border-radius: 50%;
  background-repeat: no-repeat; background-position: center; background-size: 30px 30px;
  transition: transform 0.2s ease-out;
}
.wp-block-group:hover h4.fh-occ::before { transform: scale(1.07); }
h4.fh-occ-wedding::before { background-color: #F5D3DF; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='9.5' cy='13.5' r='4.8'/><circle cx='14.5' cy='13.5' r='4.8'/><path d='M12 5.5L13.5 3h-3z'/></svg>"); }
h4.fh-occ-pooja::before { background-color: #F9E2C4; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 14.5h16c0 3-3.5 5-8 5s-8-2-8-5z'/><path d='M12 11.5c1.8-1.2 1.8-3.4 0-5.5-1.8 2.1-1.8 4.3 0 5.5z'/></svg>"); }
h4.fh-occ-corporate::before { background-color: #DCE6DC; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='4' width='14' height='16' rx='1'/><path d='M9 8h2M13 8h2M9 12h2M13 12h2M11 20v-3.5h2V20'/></svg>"); }
h4.fh-occ-birthday::before { background-color: #E9DAF2; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 20h16v-5.5a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2z'/><path d='M4 16.5c1.5 1.2 3 1.2 4.5 0s3-1.2 4.5 0 3 1.2 4.5 0 2 0 2.5.4'/><path d='M12 9v3.5M12 9c1.1-.9 1.1-2.2 0-3.4C10.9 6.8 10.9 8.1 12 9z'/></svg>"); }

/* ============ PREMIUM ENQUIRY SECTIONS (Wholesale/Corporate forms) ============ */
.fh-enquiry-section { background: #fff; padding: 3rem 1.5rem !important; }
.fh-enquiry-cols { gap: 4.5rem; align-items: start !important; }
.fh-enquiry-cols > .wp-block-column:first-child { flex-basis: calc(35% - 32px) !important; }
.fh-enquiry-cols > .wp-block-column:last-child { flex-basis: calc(65% + 32px) !important; }
/* Left: benefits card — natural height, sticky on desktop */
.fh-benefits-card {
  background: #F6F8F5; border: 1px solid rgba(5, 31, 21, 0.06); border-radius: 24px;
  box-shadow: 0 6px 24px rgba(5, 31, 21, 0.04);
  padding: 2.25rem 1.9rem;
}
/* Sidebar column stretches to match form height; showcase hero absorbs the difference */
@media (min-width: 1025px) {
  .fh-enquiry-cols > .wp-block-column:first-child { display: flex; flex-direction: column; align-self: stretch !important; }
  .fh-benefits-card { flex: none; }
  .fh-showcase-card { flex: 1 1 auto; display: flex; flex-direction: column; }
  .fh-showcase-card h3, .fh-showcase-intro, .fh-showcase-row, .fh-showcase-footer { flex: none; }
  .fh-showcase-feature { flex: 1 0 auto; display: flex; flex-direction: column; }
  .fh-showcase-feature a { flex: 1; display: block; }
  .fh-showcase-feature a img, .fh-showcase-feature > img {
    height: 100%; min-height: 210px; aspect-ratio: auto; object-fit: cover;
  }
  .fh-showcase-feature figcaption { flex: none; }
}
/* Showcase card below benefits (editorial project teaser) */
.fh-showcase-card {
  background: #fff; border: 1px solid rgba(5, 31, 21, 0.07); border-radius: 24px;
  box-shadow: 0 6px 24px rgba(5, 31, 21, 0.04);
  padding: 1.9rem 1.9rem 1.5rem; margin-top: 20px;
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.fh-showcase-card:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(5, 31, 21, 0.07); }
.fh-showcase-card h3 { font-size: 1.25rem; margin: 0 0 0.4rem; color: var(--fh-forest); }
.fh-showcase-intro { font-size: 0.88rem !important; color: var(--fh-text) !important; line-height: 1.6 !important; margin-bottom: 1.1rem !important; }
.fh-showcase-feature { margin: 0 0 1.1rem; }
.fh-showcase-feature img {
  width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 14px; display: block;
  transition: transform 0.3s ease-out;
}
.fh-showcase-feature a:hover img { transform: scale(1.02); }
.fh-showcase-feature figcaption { padding-top: 0.8rem; }
.fh-showcase-feature figcaption strong { margin: 0.1rem 0 0.15rem; }
/* Trusted-by: numbers dominate */
.fh-trust-title { display: block; margin-bottom: 0.6rem; }
.fh-trust-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem 1rem; line-height: 1.3 !important; }
.fh-trust-grid > span { display: block; font-size: 0.78rem; color: var(--fh-text-light); }
.fh-trust-grid > span > strong {
  display: block; font-family: 'Playfair Display', Georgia, serif;
  font-size: 1.35rem; font-weight: 600; color: var(--fh-forest); letter-spacing: -0.01em;
}
.fh-showcase-cat {
  display: block; font-size: 0.7rem; letter-spacing: 0.07em; text-transform: uppercase;
  color: var(--fh-text-light); margin-bottom: 0.1rem;
}
.fh-showcase-feature figcaption strong { display: block; color: var(--fh-forest); font-size: 0.98rem; font-weight: 600; }
.fh-showcase-link {
  display: inline-block; margin-top: 0.25rem; font-size: 0.82rem; color: var(--fh-green);
  text-decoration: none; transition: transform 250ms ease;
}
.fh-showcase-link:hover { transform: translateX(2px); text-decoration: underline; text-underline-offset: 3px; }
.fh-showcase-row {
  display: flex; align-items: center; gap: 0.85rem; padding: 0.65rem 0;
  border-top: 1px solid rgba(5, 31, 21, 0.05);
}
.fh-showcase-row img { width: 56px; height: 56px; object-fit: cover; border-radius: 12px; flex: none; }
.fh-showcase-row strong { display: block; color: var(--fh-forest); font-size: 0.88rem; font-weight: 600; line-height: 1.35; }
.fh-showcase-row .fh-showcase-cat { margin: 0.1rem 0 0; }
.fh-showcase-footer { margin: 0.4rem 0 0 !important; padding-top: 0.8rem; border-top: 1px solid rgba(5, 31, 21, 0.05); }
.fh-showcase-footer a {
  font-size: 0.88rem; font-weight: 600; color: var(--fh-forest); text-decoration: none;
  display: inline-block; transition: color 250ms ease, transform 250ms ease;
}
.fh-showcase-footer a:hover { color: var(--fh-green); transform: translateX(2px); }
.fh-benefits-card h3 { font-size: 1.35rem; margin: 0 0 0.6rem; color: var(--fh-forest); }
.fh-benefits-card > p { font-size: 0.92rem; color: var(--fh-text); line-height: 1.65; }
ul.fh-benefits { list-style: none; padding: 0; margin: 1.25rem 0; }
ul.fh-benefits li { padding-left: 1.7rem; position: relative; margin-bottom: 0.65rem; color: var(--fh-forest); font-size: 0.94rem; font-weight: 500; }
ul.fh-benefits li::before {
  content: ""; position: absolute; left: 0; top: 0.12em; width: 18px; height: 18px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9' opacity='0.35'/><path d='M8.5 12.5l2.5 2.5 4.5-5'/></svg>");
  background-size: contain; background-repeat: no-repeat;
}
.fh-benefit-contact, .fh-benefit-trust {
  border-top: 1px solid rgba(1, 92, 44, 0.1); padding-top: 1rem; margin-top: 1rem !important;
  font-size: 0.88rem !important; line-height: 1.8 !important; color: var(--fh-text) !important;
}
.fh-benefit-contact strong, .fh-benefit-trust strong { color: var(--fh-forest); }
.fh-benefit-contact a { color: var(--fh-green); text-decoration: none; }
.fh-benefit-note { font-size: 0.85rem !important; color: var(--fh-text-light) !important; margin-top: 1rem !important; }
/* Right: form card */
.fh-form-card {
  background: #FFFEFC; border: 1px solid rgba(5, 31, 21, 0.08); border-radius: 24px;
  box-shadow: 0 10px 34px rgba(5, 31, 21, 0.05);
  padding: 46px;
}
.fh-form-card h2 {
  display: block !important; text-align: left; font-size: 1.7rem; margin: 0 0 0.4rem !important;
}
.fh-form-card h2::before, .fh-form-card h2::after { display: none !important; }
.fh-form-support { color: var(--fh-text); font-size: 0.95rem; margin-bottom: 1.75rem !important; max-width: 56ch; }
/* Fields */
.fh-form-card .kb-adv-form-field, .fh-form-card .wp-block-kadence-advanced-form-text,
.fh-form-card [class*="kb-field"] { margin-bottom: 1.35rem; }
.fh-form-card label { font-weight: 500; color: var(--fh-forest); font-size: 0.9rem; margin-bottom: 0.25rem; display: block; }
.fh-form-card .kb-adv-form-field { margin-bottom: 1.15rem; }
.fh-form-card input[type="text"], .fh-form-card input[type="email"], .fh-form-card input[type="tel"],
.fh-form-card input[type="date"], .fh-form-card select {
  height: 52px; border-radius: 14px !important; background: #fff !important;
  border: 1px solid rgba(5, 31, 21, 0.08) !important; padding: 0 1.1rem !important;
  font-size: 0.96rem; color: var(--fh-forest) !important; width: 100%;
  transition: border-color 250ms ease, box-shadow 250ms ease;
}
.fh-form-card textarea {
  min-height: 140px; border-radius: 14px !important; background: #fff !important;
  border: 1px solid rgba(5, 31, 21, 0.08) !important; padding: 0.9rem 1.1rem !important;
  font-size: 0.96rem; color: var(--fh-forest) !important; width: 100%;
  transition: border-color 250ms ease, box-shadow 250ms ease;
}
.fh-form-card input:hover, .fh-form-card select:hover, .fh-form-card textarea:hover { border-color: rgba(5, 31, 21, 0.2) !important; }
.fh-form-card input:focus, .fh-form-card select:focus, .fh-form-card textarea:focus {
  border-color: var(--fh-green) !important; box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.12) !important; outline: none !important;
}
.fh-form-card ::placeholder { color: #a9aeaa; }
.fh-form-card .kb-adv-form-help, .fh-form-card .kb-form-field-help {
  font-size: 0.8rem; color: var(--fh-text-light); margin-top: 0.2rem; margin-bottom: 0;
}
/* Submit */
.fh-form-card button[type="submit"], .fh-form-card .kb-adv-form-submit-button {
  background: var(--fh-green) !important; color: #fff !important; border: 0; cursor: pointer;
  border-radius: 999px !important; padding: 1rem 3.25rem !important; font-size: 1.02rem; font-weight: 600;
  min-width: 260px;
  transition: background 250ms ease, transform 250ms ease, box-shadow 250ms ease;
  margin-top: 0.5rem;
}
.fh-form-card button[type="submit"]:hover, .fh-form-card .kb-adv-form-submit-button:hover {
  background: var(--fh-green-dark) !important; transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(1, 92, 44, 0.22);
}
/* Trust row under button: outline icons */
.fh-form-trust {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; margin-top: 1.5rem !important;
  font-size: 0.8rem !important; color: var(--fh-text-light) !important;
}
.fh-form-trust span { white-space: nowrap; display: inline-flex; align-items: center; gap: 0.35rem; }
.fh-form-trust span::before {
  content: ""; width: 14px; height: 14px; flex: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9' opacity='0.4'/><path d='M8.5 12.5l2.5 2.5 4.5-5'/></svg>");
  background-size: contain; background-repeat: no-repeat; opacity: 0.8;
}
/* Quick contact: quiet secondary action */
.fh-quick-contact {
  margin-top: 0.9rem !important; padding-top: 0.9rem; border-top: 1px solid rgba(5, 31, 21, 0.06);
  font-size: 0.85rem !important; color: var(--fh-text-light) !important;
}
.fh-quick-contact a { color: var(--fh-green); text-decoration: none; font-weight: 500; }
.fh-quick-contact a:hover { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 1024px) {
  .fh-form-card { padding: 32px; }
}

/* ============ REMAINING-PAGES POLISH ============ */
/* Contact info cards: icon-left rows */
p[class*="fh-ci-"] {
  display: block; position: relative; padding-left: 2.2rem;
  text-align: left !important; line-height: 1.6;
}
p[class*="fh-ci-"]::before {
  content: ""; position: absolute; left: 0; top: 0.1rem; width: 22px; height: 22px;
  background-size: contain; background-repeat: no-repeat; background-position: center; opacity: 0.9;
}
p[class*="fh-ci-"] strong { display: inline; color: var(--fh-forest); }
p.fh-ci-pin::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-6-5.5-6-10a6 6 0 1 1 12 0c0 4.5-6 10-6 10z'/><circle cx='12' cy='11' r='2'/></svg>"); }
p.fh-ci-phone::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M5 4h4l1.5 4L8 10a12 12 0 0 0 6 6l2-2.5 4 1.5v4c0 1-1 2-2 2C10 21 3 14 3 6c0-1 1-2 2-2z'/></svg>"); }
p.fh-ci-mail::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='14' rx='2'/><path d='M3 7l9 6 9-6'/></svg>"); }
p.fh-ci-chat::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M21 11.5a8.5 8.5 0 0 1-8.5 8.5c-1.5 0-3-.4-4.2-1.1L3 20l1.1-5.3A8.5 8.5 0 1 1 21 11.5z'/></svg>"); }
p[class*="fh-ci-"] strong { color: var(--fh-forest); }

/* Kadence Advanced Form fields: premium treatment everywhere (Contact page parity) */
.wp-block-kadence-advanced-form input[type="text"], .wp-block-kadence-advanced-form input[type="email"],
.wp-block-kadence-advanced-form input[type="tel"], .wp-block-kadence-advanced-form input[type="date"],
.wp-block-kadence-advanced-form select,
.kb-advanced-form input[type="text"], .kb-advanced-form input[type="email"],
.kb-advanced-form input[type="tel"], .kb-advanced-form select {
  height: 52px; border-radius: 14px; background: #fff;
  border: 1px solid rgba(5, 31, 21, 0.08); padding: 0 1.1rem;
  transition: border-color 250ms ease, box-shadow 250ms ease;
}
.wp-block-kadence-advanced-form textarea, .kb-advanced-form textarea {
  min-height: 140px; border-radius: 14px; background: #fff;
  border: 1px solid rgba(5, 31, 21, 0.08); padding: 0.9rem 1.1rem;
  transition: border-color 250ms ease, box-shadow 250ms ease;
}
.wp-block-kadence-advanced-form input:focus, .wp-block-kadence-advanced-form select:focus, .wp-block-kadence-advanced-form textarea:focus,
.kb-advanced-form input:focus, .kb-advanced-form select:focus, .kb-advanced-form textarea:focus {
  border-color: var(--fh-green); box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.12); outline: none;
}
.wp-block-kadence-advanced-form label, .kb-advanced-form label { font-weight: 500; color: var(--fh-forest); font-size: 0.9rem; }

/* Product page: empty-SKU hiding is handled server-side via the
   wc_product_sku_enabled filter in fh-product-page.php (per-product). */

/* ============ SINGLE PRODUCT PREMIUM ============ */
/* Gallery: rounded, soft shadow, thumbnail strip */
.woocommerce div.product div.images { border-radius: var(--fh-radius); overflow: hidden; }
.woocommerce div.product div.images img { border-radius: var(--fh-radius); }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { box-shadow: 0 10px 30px rgba(5, 31, 21, 0.08); border-radius: var(--fh-radius); }
.woocommerce div.product div.images .flex-control-thumbs { margin-top: 0.75rem; display: flex; gap: 0.6rem; }
.woocommerce div.product div.images .flex-control-thumbs li { width: 72px; float: none; }
.woocommerce div.product div.images .flex-control-thumbs img {
  border-radius: 10px; border: 2px solid transparent; opacity: 0.7; transition: opacity 200ms ease, border-color 200ms ease;
}
.woocommerce div.product div.images .flex-control-thumbs img.flex-active,
.woocommerce div.product div.images .flex-control-thumbs img:hover { opacity: 1; border-color: var(--fh-green); }
/* Title + price hierarchy */
.woocommerce div.product .product_title { font-size: 2.2rem; line-height: 1.15; margin-bottom: 0.4rem; }
.woocommerce div.product p.price, .woocommerce div.product span.price { font-size: 1.7rem; }
.woocommerce div.product .woocommerce-product-details__short-description { font-size: 1rem; line-height: 1.7; max-width: 52ch; }
/* Occasion chips */
.fh-occ-chips { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0.9rem 0 0.4rem; }
.fh-occ-chip {
  font-size: 0.75rem; letter-spacing: 0.04em; color: var(--fh-forest);
  border-radius: 999px; padding: 0.25rem 0.85rem; border: 1px solid rgba(5, 31, 21, 0.06);
}
/* Purchase card */
.fh-purchase-card {
  background: #FFFEFC; border: 1px solid rgba(5, 31, 21, 0.08); border-radius: var(--fh-radius);
  box-shadow: 0 6px 22px rgba(5, 31, 21, 0.05);
  padding: 1.4rem 1.5rem; margin: 1.25rem 0 1rem;
}
.fh-purchase-note { font-size: 0.85rem; color: var(--fh-green); margin: 0 0 0.9rem; font-weight: 500; }
.fh-purchase-secure { font-size: 0.8rem; color: var(--fh-text-light); margin: 0.9rem 0 0; }
.woocommerce div.product form.cart { margin: 0; }
/* WhatsApp order button */
.fh-wa-order {
  display: inline-flex; align-items: center; justify-content: center;
  margin-left: 0.6rem; padding: 0.8rem 1.6rem; border-radius: 999px;
  border: 1px solid rgba(1, 92, 44, 0.35); color: var(--fh-green); font-weight: 600; font-size: 0.92rem;
  text-decoration: none; transition: background 220ms ease, color 220ms ease;
}
.fh-wa-order:hover { background: var(--fh-green); color: #fff; }
/* Trust row */
.fh-pdp-trust { display: flex; flex-wrap: wrap; gap: 0.4rem 1.25rem; margin: 0.75rem 0; }
.fh-pdp-trust span {
  display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.8rem; color: var(--fh-text-light);
}
.fh-pdp-trust span::before {
  content: ""; width: 14px; height: 14px; flex: none; opacity: 0.85;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9' opacity='0.4'/><path d='M8.5 12.5l2.5 2.5 4.5-5'/></svg>") center / contain no-repeat;
}
/* Highlights */
.fh-pdp-highlights { margin: 0.75rem 0 0; }
.fh-pdp-highlights strong { display: block; font-size: 0.85rem; color: var(--fh-forest); margin-bottom: 0.4rem; }
.fh-pdp-highlights ul.fh-benefits { columns: 2; margin: 0; }
.fh-pdp-highlights ul.fh-benefits li { font-size: 0.88rem; margin-bottom: 0.35rem; }
/* Delivery info cards: 2x2 grid inside the (narrow) summary column,
   below the purchase box. */
.fh-pdp-delivery {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem;
  margin: 1.5rem 0 0.5rem;
}
.fh-pdd {
  border: 1px solid rgba(5, 31, 21, 0.06); border-radius: 14px; padding: 0.85rem 1rem 0.85rem 2.9rem;
  position: relative; background: var(--fh-cream);
  transition: box-shadow 220ms ease, transform 220ms ease, border-color 220ms ease;
}
.fh-pdd:hover {
  box-shadow: 0 8px 20px rgba(5, 31, 21, 0.07); transform: translateY(-2px); border-color: rgba(1, 92, 44, 0.14);
}
.fh-pdd::before {
  content: ""; position: absolute; left: 1rem; top: 50%; transform: translateY(-50%);
  width: 26px; height: 26px; background-size: contain; background-repeat: no-repeat; background-position: center;
}
.fh-pdd-truck::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M2 7h11v8H2z'/><path d='M13 10h4l3 3v2h-7z'/><circle cx='6' cy='17.5' r='1.5'/><circle cx='16' cy='17.5' r='1.5'/></svg>"); }
.fh-pdd-fresh::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21C7 16 6 10 12 3c6 7 5 13 0 18z'/><path d='M12 20V9'/></svg>"); }
.fh-pdd-pin::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-6-5.5-6-10a6 6 0 1 1 12 0c0 4.5-6 10-6 10z'/><circle cx='12' cy='11' r='2'/></svg>"); }
.fh-pdd-gift::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='9' width='16' height='11' rx='1'/><path d='M2 9h20M12 9v11M12 9c-2-0.5-4-2-4-4a2 2 0 0 1 4 0zM12 9c2-0.5 4-2 4-4a2 2 0 0 0-4 0z'/></svg>"); }
/* Was missing an icon since it was first introduced on the Cart page —
   "Secure Payments" rendered with no icon at all until now. */
.fh-pdd-secure::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='11' width='14' height='10' rx='2'/><path d='M8 11V7a4 4 0 0 1 8 0v4'/><circle cx='12' cy='16' r='1.5' fill='%23015C2C' stroke='none'/></svg>"); }
.fh-pdd-support::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 13a8 8 0 0 1 16 0'/><rect x='2' y='13' width='5' height='7' rx='2'/><rect x='17' y='13' width='5' height='7' rx='2'/><path d='M20 20v1a3 3 0 0 1-3 3h-3'/></svg>"); }
.fh-pdd strong { display: block; font-size: 0.88rem; color: var(--fh-forest); }
.fh-pdd span { font-size: 0.78rem; color: var(--fh-text-light); }
/* Why Flower House + help card */
.fh-pdp-why {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; text-align: center;
  background: var(--fh-sage); border-radius: var(--fh-radius); padding: 1.5rem 1rem; margin: 2rem 0 1rem;
}
.fh-pdp-why strong { display: block; font-family: 'Playfair Display', Georgia, serif; font-size: 1.5rem; color: var(--fh-forest); }
.fh-pdp-why span { font-size: 0.8rem; color: var(--fh-text-light); }
.fh-pdp-help {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  border: 1px solid rgba(5, 31, 21, 0.08); border-radius: var(--fh-radius);
  padding: 1.25rem 1.5rem; margin: 1rem 0 2rem; background: #FFFEFC;
}
.fh-pdp-help strong { display: block; color: var(--fh-forest); }
.fh-pdp-help span { font-size: 0.88rem; color: var(--fh-text-light); }
.fh-pdp-help a {
  background: var(--fh-green); color: #fff; border-radius: 999px; padding: 0.7rem 1.6rem;
  font-weight: 600; text-decoration: none; transition: background 220ms ease;
}
.fh-pdp-help a:hover { background: var(--fh-green-dark); }
/* Recently viewed: header + carousel (reuses the exact Shop product card,
   .woocommerce ul.products li.product — no separate card style here). */
.fh-recent { margin: var(--fh-section) 0 2rem; }
.fh-recent-head { margin-bottom: 1.25rem; }
.fh-recent-head h2 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: 1.6rem; color: var(--fh-forest); margin: 0 0 0.3rem;
}
.fh-recent-head p { color: var(--fh-text-light); font-size: 0.92rem; margin: 0; }

.fh-recent-carousel { display: flex; align-items: center; gap: 0.5rem; }
.fh-recent-carousel ul.products {
  flex: 1 1 auto; min-width: 0;
  display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1.25rem;
  padding-bottom: 0.75rem; -webkit-overflow-scrolling: touch; scrollbar-width: none;
}
.fh-recent-carousel ul.products::-webkit-scrollbar { display: none; }
.fh-recent-carousel ul.products li.product {
  flex: 0 0 calc(25% - 0.94rem) !important; width: auto !important; scroll-snap-align: start;
}
.fh-carousel-nav {
  flex: none; width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid var(--fh-hairline); background: #fff; color: var(--fh-forest);
  display: flex; align-items: center; justify-content: center; padding: 0;
  box-shadow: 0 6px 18px rgba(5, 31, 21, 0.1); cursor: pointer;
  opacity: 0; pointer-events: none;
  transition: background 200ms ease, color 200ms ease, opacity 200ms ease, box-shadow 200ms ease;
}
.fh-recent-carousel.fh-carousel-scrollable .fh-carousel-nav { opacity: 1; pointer-events: auto; }
.fh-carousel-nav:hover:not(:disabled) { background: var(--fh-green); color: #fff; box-shadow: 0 8px 22px rgba(5, 31, 21, 0.16); }
.fh-carousel-nav:disabled { opacity: 0.3; cursor: default; pointer-events: none; }
@media (max-width: 1024px) {
  .fh-recent-carousel ul.products li.product { flex-basis: calc(46% - 0.94rem) !important; }
}
@media (max-width: 767px) {
  .fh-recent-carousel ul.products li.product { flex-basis: calc(100% - 2.5rem) !important; }
  .fh-carousel-nav { display: none; }
}
/* Sticky purchase bar */
.fh-sticky-buy {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: rgba(255, 254, 252, 0.97); backdrop-filter: blur(8px);
  border-top: 1px solid rgba(5, 31, 21, 0.08); box-shadow: 0 -6px 20px rgba(5, 31, 21, 0.08);
  padding: 0.7rem max(1.25rem, calc((100% - 1200px) / 2 + 1.25rem));
}
.fh-sticky-buy[hidden] { display: none; }
.fh-sticky-info { display: flex; align-items: baseline; gap: 0.9rem; min-width: 0; }
.fh-sticky-name {
  font-family: 'Playfair Display', Georgia, serif; color: var(--fh-forest); font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 40vw;
}
.fh-sticky-price, .fh-sticky-price .amount { color: var(--fh-green); font-weight: 600; }
.fh-sticky-cta {
  background: var(--fh-coral); color: #fff; border: 0; border-radius: 999px;
  padding: 0.7rem 1.9rem; font-weight: 600; cursor: pointer; flex: none;
  transition: background 220ms ease;
}
.fh-sticky-cta:hover { background: var(--fh-coral-dark); }
/* Mobile PDP */
@media (max-width: 767px) {
  .fh-pdp-delivery { grid-template-columns: 1fr 1fr; }
  .fh-pdp-why { grid-template-columns: 1fr 1fr; }
  .fh-wa-order { margin: 0.6rem 0 0; width: 100%; }
  .woocommerce div.product form.cart .button { width: 100%; }
  .fh-sticky-name { display: none; }
}

/* ============ HOMEPAGE EVOLUTION ============ */
/* P1: fifth slide background (thomala) */
.fh-slide-bg-5 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.85) 34%, rgba(250,249,246,0.12) 60%, rgba(250,249,246,0) 100%), linear-gradient(rgba(241,245,241,0.55), rgba(241,245,241,0.55)), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_4.webp'); }
@media (max-width: 767px) {
  .fh-slide-bg-5 { background-image: linear-gradient(0deg, rgba(250,249,246,0.97) 0%, rgba(250,249,246,0.9) 42%, rgba(250,249,246,0.15) 75%, rgba(250,249,246,0) 100%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_4.webp'); }
}
/* P2: collection cards */
.fh-collections-lg { margin-bottom: 1.75rem !important; }
.fh-collections-sm { margin-bottom: 0.75rem !important; }
a.fh-col-card {
  display: block; background: #fff; border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  overflow: hidden; text-decoration: none; height: 100%;
  transition: transform 220ms ease-out, box-shadow 220ms ease-out;
}
a.fh-col-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(5, 31, 21, 0.08); }
.fh-col-img { display: block; overflow: hidden; }
.fh-col-img img {
  width: 100%; aspect-ratio: 4 / 3.6; object-fit: cover; display: block; transition: transform 320ms ease-out;
  /* Normalizes brightness/saturation variance across source photos so
     cards read as one consistent set rather than mismatched exposures. */
  filter: saturate(1.05) brightness(1.02) contrast(1.02);
}
.fh-col-lg .fh-col-img img { aspect-ratio: 16 / 10; }
a.fh-col-card:hover .fh-col-img img { transform: scale(1.03); }
.fh-col-body { display: block; padding: 1.6rem 1.5rem 1.5rem; }
.fh-col-body strong {
  display: inline-block; font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: 1.2rem; color: var(--fh-forest);
  background-image: linear-gradient(var(--fh-red), var(--fh-red));
  background-repeat: no-repeat; background-position: 0 100%; background-size: 0% 2px;
  transition: background-size 250ms ease;
}
a.fh-col-card:hover .fh-col-body strong { background-size: 100% 2px; }
.fh-col-body em { display: block; font-style: normal; font-size: 0.88rem; color: var(--fh-text-light); margin: 0.2rem 0 0.6rem; }
.fh-col-link { display: inline-block; font-size: 0.85rem; font-weight: 600; color: var(--fh-green); transition: transform 250ms ease; }
a.fh-col-card:hover .fh-col-link { transform: translateX(3px); }
.fh-col-more { text-align: center; font-size: 0.9rem !important; color: var(--fh-text-light) !important; }
.fh-col-more a { color: var(--fh-green); text-decoration: none; }
.fh-col-more a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* P3: storytelling band */
.fh-story-band { padding: 3.5rem 2rem !important; position: relative; overflow: hidden; }
.fh-story-band .wp-block-columns { gap: 3.75rem; margin-bottom: 0; align-items: center; }
.fh-story-img { max-width: 480px; margin: 0 auto; }
/* !important + extra .fh-story-band specificity needed: a generic banner-
   image rule (.alignfull[class*="has-fh-"]:has(.wp-block-image):not(:first-child) img
   { border-radius:999px }, meant for the wholesale pill-image banner) and a
   :first-child square-aspect rule both out-specificity a plain .fh-story-img
   img selector, which is what silently turned this into a circle. */
.fh-story-band .fh-story-img img {
  border-radius: 24px !important; aspect-ratio: 16 / 10 !important; object-fit: cover !important;
  box-shadow: 0 12px 30px rgba(5, 31, 21, 0.09); width: 100% !important;
}
.fh-story-band p { line-height: 1.85; }

/* Wholesale "Ideal For" checklist */
.fh-ideal-for { margin: 1.25rem 0 0; }
.fh-ideal-for-label {
  display: block; font-size: 0.85rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--fh-forest); margin-bottom: 0.75rem;
}
.fh-ideal-for-list {
  list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem 1.5rem;
}
.fh-ideal-for-list li {
  font-size: 0.95rem; color: var(--fh-text); position: relative; padding-left: 1.75rem;
}
.fh-ideal-for-list li::before {
  content: ""; position: absolute; left: 0; top: 0.1em; width: 19px; height: 19px;
  background-repeat: no-repeat; background-size: contain; background-position: center;
}
.fh-if-hotels::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M3 21h18M5 21V8l7-5 7 5v13M9 21v-5h6v5'/></svg>"); }
.fh-if-planners::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='9' cy='14' r='4.2'/><circle cx='15' cy='14' r='4.2'/></svg>"); }
.fh-if-events::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 21c2-2 3-4 3-7M20 21c-2-2-3-4-3-7M8 14c1-3 1-6-1-9M16 14c-1-3-1-6 1-9'/><circle cx='12' cy='8' r='3'/></svg>"); }
.fh-if-corporate::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><rect x='5' y='4' width='14' height='16' rx='1'/><path d='M9 8h2M13 8h2M9 12h2M13 12h2M11 20v-3.5h2V20'/></svg>"); }
.fh-if-temples::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><path d='M4 14.5h16c0 3-3.5 5-8 5s-8-2-8-5z'/><path d='M12 11.5c1.8-1.2 1.8-3.4 0-5.5-1.8 2.1-1.8 4.3 0 5.5z'/></svg>"); }
.fh-if-banquet::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='9' r='6'/><path d='M4 20h16M8 20V15M16 20V15'/></svg>"); }
@media (max-width: 600px) { .fh-ideal-for-list { grid-template-columns: 1fr; } }

/* Newsletter signup: minimal, sits above the trust strip / footer.
   UI only — no ESP wired up yet, see fh-newsletter.php note. */
.fh-newsletter { background: var(--fh-sage); text-align: center; padding: 3.25rem 1.5rem; }
.fh-newsletter-inner { max-width: 560px; margin: 0 auto; }
.fh-newsletter-heading {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.5rem;
  color: var(--fh-forest); margin: 0 0 0.6rem;
}
.fh-newsletter-copy { font-size: 0.95rem; line-height: 1.6; color: var(--fh-text); margin: 0 0 1.5rem; }
.fh-newsletter-form { display: flex; gap: 0.75rem; max-width: 440px; margin: 0 auto; flex-wrap: wrap; }
.fh-newsletter-input {
  flex: 1 1 220px; height: 52px; border-radius: 999px; border: 1px solid var(--fh-hairline);
  padding: 0 1.3rem; font-size: 0.95rem; background: #fff;
  transition: border-color 220ms ease, box-shadow 220ms ease;
}
.fh-newsletter-input:focus { border-color: var(--fh-green); box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.1); outline: none; }
.fh-newsletter-submit {
  flex: 0 0 auto; background: var(--fh-green); color: #fff; border: 0; border-radius: 999px;
  padding: 0 1.75rem; height: 52px; font-weight: 600; cursor: pointer;
  transition: background 220ms ease, transform 200ms ease;
}
.fh-newsletter-submit:hover { background: var(--fh-green-dark); transform: translateY(-1px); }
.fh-newsletter-note { font-size: 0.95rem; color: var(--fh-green); font-weight: 600; margin: 0; }
@media (max-width: 480px) { .fh-newsletter-form { flex-direction: column; } .fh-newsletter-submit { width: 100%; } }

/* Trust strip: minimal, elegant, sits directly above the footer */
.fh-trust-strip { background: #FAFAF8; text-align: center; padding: 2.75rem 1.5rem; border-top: 1px solid var(--fh-hairline); }
.fh-trust-strip-stars { color: #D9A441; font-size: 1.1rem; letter-spacing: 0.2em; margin-bottom: 0.85rem; }
.fh-trust-strip-headline {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.15rem;
  color: var(--fh-forest); margin: 0 0 0.5rem;
}
.fh-trust-strip-sub { font-size: 0.88rem; color: var(--fh-text-light); margin: 0; letter-spacing: 0.01em; }
.fh-story-band h2 { max-width: 22ch; margin: 0 0 1.1rem !important; display: block; text-align: left; }
.fh-story-band .wp-block-column { border-left: 0 !important; }
.fh-story-band p { max-width: 58ch; margin-bottom: 0; }
.fh-story-band .wp-block-buttons { margin-top: 1.75rem; }
.fh-story-band h2::before, .fh-story-band h2::after { display: none; }
.fh-story-band::after {
  content: ""; position: absolute; right: -18px; bottom: -18px; width: 120px; height: 120px;
  opacity: 0.12; pointer-events: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23C4122F' stroke-width='1.3' stroke-linecap='round'><path d='M8 44c8-2 14-8 16-16' stroke='%23015C2C'/><circle cx='28' cy='22' r='4.5'/><circle cx='36' cy='14' r='3.5'/><circle cx='40' cy='26' r='3'/><path d='M24 28c-3 1-5 3-6 6' stroke='%23015C2C'/></svg>") center / contain no-repeat;
}
/* P4: new occasion icons */
h4.fh-occ-festivals::before { background-color: #F2EFE4; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21c-2-3-2-6 0-9 2 3 2 6 0 9z'/><path d='M12 12V4'/><circle cx='12' cy='3' r='1'/><path d='M6 21h12'/></svg>"); }
h4.fh-occ-engagement::before { background-color: #E9DAF2; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='14.5' r='5.5'/><path d='M9.5 6l2.5-3 2.5 3-2.5 3z'/></svg>"); }
h4.fh-occ-housewarming::before { background-color: #DCE6DC; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 11l8-7 8 7'/><path d='M6 10v10h12V10'/><path d='M12 20v-4c1.8-.5 2.8-1.8 3-3.6-1.8.2-3 .9-3 2.6 0-1.7-1.2-2.4-3-2.6.2 1.8 1.2 3.1 3 3.6z'/></svg>"); }
h4.fh-occ-babyshower::before { background-color: #F5D3DF; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 12h16v2a6 6 0 0 1-6 6h-4a6 6 0 0 1-6-6z'/><path d='M12 12V5c3 0 6 2.5 6 7'/><circle cx='7.5' cy='21' r='1'/><circle cx='16.5' cy='21' r='1'/></svg>"); }
/* occasion rows spacing */
.entry-content > .wp-block-columns + .wp-block-columns:has(h4.fh-occ) { margin-top: -1.25rem; }
/* wedding chip: tiny logo-flower motif beside the label */
h4.fh-occ-wedding a::after {
  content: ""; display: inline-block; width: 10px; height: 10px; margin-left: 0.35rem;
  vertical-align: 1px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C4122F'><circle cx='12' cy='6.5' r='3.4'/><circle cx='6.8' cy='10.3' r='3.4'/><circle cx='17.2' cy='10.3' r='3.4'/><circle cx='8.8' cy='16.4' r='3.4'/><circle cx='15.2' cy='16.4' r='3.4'/><circle cx='12' cy='11.8' r='2.4' fill='%23015C2C'/></svg>") center / contain no-repeat;
}
/* logo hover: quick bloom-pulse (≤500ms), video plays on load only */
.site-header .fh-logo-video { transition: transform 350ms ease-out; transform-origin: 30% 50%; }
.site-header .site-branding a:hover .fh-logo-video { transform: scale(1.04); }
/* P5: best sellers loop inside content */
.fh-bestsellers { margin-bottom: 1rem; }
.fh-bestsellers ul.products { margin-top: 0.5rem; }
/* Homepage-only card enhancement — deliberately scoped under .fh-bestsellers
   so the Shop archive / category pages (sharing the base .woocommerce
   ul.products li.product rules above) are untouched. */
.fh-bestsellers .woocommerce ul.products li.product {
  padding: 1.5rem 1.5rem 1.75rem; border-radius: 18px !important;
  transition: transform 300ms ease, box-shadow 300ms ease;
}
/* Image sized to dominate the card (~70% of total height) — taller aspect
   ratio plus tightened text-block spacing below achieves this without
   needing a fixed card height that would fight variable product titles. */
.fh-bestsellers .woocommerce ul.products li.product img { aspect-ratio: 0.78 / 1; margin-bottom: 1rem; border-radius: 14px !important; }
.fh-bestsellers .woocommerce ul.products li.product .fh-card-cat { margin-bottom: 0.25rem; }
.fh-bestsellers .woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin-bottom: 0.5rem; font-size: 1.15rem !important; font-weight: 700 !important; color: var(--fh-forest);
}
.fh-bestsellers .woocommerce ul.products li.product .price {
  font-size: 1.4rem !important; font-weight: 700 !important; color: var(--fh-green) !important; margin-bottom: 1rem;
}
.fh-bestsellers .woocommerce ul.products li.product .button {
  margin-top: 0.25rem !important; background: var(--fh-green) !important; color: #fff !important;
  border: 0 !important; font-weight: 600 !important; padding: 0.75rem 1.2rem !important;
  box-shadow: 0 6px 16px rgba(1, 92, 44, 0.18);
}
.fh-bestsellers .woocommerce ul.products li.product .button:hover { background: var(--fh-green-dark) !important; }
.fh-bestsellers .woocommerce ul.products li.product:hover { transform: translateY(-6px); box-shadow: var(--fh-shadow-hover); }
/* P6: service banner — green brand band */
.fh-service-band {
  background: var(--fh-green) !important; text-align: center;
  padding: 4.75rem 2rem !important;
}
.fh-service-band h2 {
  color: #fff !important; display: flex; justify-content: center;
  margin: 0 0 0.9rem !important; font-size: clamp(2rem, 3.2vw, 2.6rem);
}
.fh-service-band h2::before, .fh-service-band h2::after { background: rgba(255, 255, 255, 0.3); }
.fh-service-band p { color: rgba(255, 255, 255, 0.88); max-width: 52ch; margin: 0 auto !important; }
.fh-service-band .wp-block-buttons { margin-top: 1.4rem; }
.fh-service-band .fh-service-cta .wp-block-button__link {
  background: #fff !important; color: var(--fh-green) !important;
  padding: 1.1rem 2.64rem !important; font-size: 1.155rem !important;
  transition: background 250ms ease, transform 220ms ease, box-shadow 250ms ease !important;
}
.fh-service-band .fh-service-cta .wp-block-button__link:hover {
  background: var(--fh-cream) !important; transform: translateY(-2px) scale(1.03); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.18);
}

/* ============ SHOP ARCHIVE PREMIUM UI ============ */
/* Header row: serif title + count left, filter + sort right */
.fh-shop-header {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1rem;
  padding-bottom: 1.1rem; margin-bottom: 2rem; border-bottom: 1px solid var(--fh-hairline);
}
.fh-shop-header-left { display: flex; align-items: baseline; gap: 0.6rem; }
.fh-shop-header h1 { font-size: 1.65rem; margin: 0; color: var(--fh-forest); max-width: none; }
.fh-shop-count { color: var(--fh-text-light); font-size: 0.9rem; }
.fh-shop-header-right { display: flex; align-items: center; gap: 0.75rem; }
.fh-shop-header .woocommerce-ordering { margin: 0; }
.fh-filter-toggle {
  display: none; border: 1px solid rgba(1, 92, 44, 0.3); background: transparent; color: var(--fh-green);
  border-radius: 999px; padding: 0.45rem 1.2rem; font-size: 0.9rem; font-weight: 500; cursor: pointer;
}
/* Hide any leftover default toolbar bits */
.woocommerce-result-count { display: none; }

/* Card hierarchy: category micro-label → title → (rating) → price → CTA */
.woocommerce ul.products li.product .fh-card-cat {
  display: block; font-size: 0.68rem; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--fh-text-light); margin-bottom: 0.15rem;
}
.woocommerce ul.products li.product .price {
  font-size: 1.05rem;
}
.woocommerce ul.products li.product .star-rating { margin: 0.2rem 0 0.4rem; color: #D9A441; }
/* Ghost CTA: Kadence's own arrow icon slides on hover (no duplicate arrows) */
.woocommerce ul.products li.product .button .kadence-svg-iconset,
.woocommerce ul.products li.product .button .fh-btn-arrow {
  display: inline-block; transition: transform 220ms ease-out; margin-left: 0.35rem; vertical-align: -2px;
}
.woocommerce ul.products li.product .button:hover .kadence-svg-iconset,
.woocommerce ul.products li.product .button:hover .fh-btn-arrow { transform: translateX(3px); }
/* Active filter chips above the grid */
.fh-active-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: -0.75rem 0 1.5rem; }
.fh-active-chips a {
  display: inline-flex; align-items: center; gap: 0.35rem;
  background: var(--fh-sage); border: 1px solid rgba(1, 92, 44, 0.15); border-radius: 999px;
  padding: 0.25rem 0.85rem; font-size: 0.82rem; color: var(--fh-forest); text-decoration: none;
  transition: border-color 220ms ease, background 220ms ease;
}
.fh-active-chips a:hover { border-color: var(--fh-coral); background: var(--fh-blush); }
.fh-active-chips a span { color: var(--fh-coral); font-weight: 600; }
.fh-active-chips .fh-chips-clear { background: transparent; border-color: transparent; color: var(--fh-text-light); text-decoration: underline; text-underline-offset: 3px; }

/* Cards: ghost CTA, clamped titles */
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.05rem; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  min-height: 2.7em;
}
.woocommerce ul.products li.product .button {
  background: transparent; color: var(--fh-green);
  border: 1px solid rgba(1, 92, 44, 0.35);
  transition: background 200ms ease-out, color 200ms ease-out, border-color 200ms ease-out;
}
.woocommerce ul.products li.product .button:hover { background: var(--fh-green); color: #fff; border-color: var(--fh-green); }
.woocommerce ul.products { column-gap: 2rem; row-gap: 2.5rem; }
.woocommerce ul.products li.product:hover { box-shadow: 0 14px 28px rgba(5, 31, 21, 0.08); }

/* Sidebar: sticky, refined controls */
@media (min-width: 1025px) {
  .sidebar .primary-sidebar-inner, .sidebar > .site-sidebar-inner, #secondary .sidebar-inner-wrap { position: sticky; top: 100px; }
  #secondary { align-self: start; }
}
.sidebar .widget { margin-bottom: 1.75rem; padding-bottom: 1.6rem; }
.sidebar input[type="checkbox"], .sidebar input[type="radio"] { accent-color: var(--fh-green); width: 16px; height: 16px; }
.woocommerce .widget_price_filter .ui-slider .ui-slider-handle { width: 16px; height: 16px; top: -6px; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(5,31,21,0.25); }
.woocommerce .widget_price_filter .price_slider_amount .button {
  background: var(--fh-green); color: #fff; border-radius: 999px; padding: 0.45rem 1.3rem; font-size: 0.85rem;
}
.woocommerce .widget_price_filter .price_label { color: var(--fh-text); font-size: 0.88rem; }
.woocommerce-widget-layered-nav-filters ul li a {
  display: inline-block; background: var(--fh-sage); border: 1px solid rgba(1,92,44,0.15);
  border-radius: 999px; padding: 0.2rem 0.8rem; font-size: 0.82rem; color: var(--fh-forest) !important;
}
.fh-filter-close { display: none; }

/* Empty state */
.fh-shop-empty { text-align: center; padding: 3.5rem 1rem; }
.fh-shop-empty-title { font-family: 'Playfair Display', Georgia, serif; font-size: 1.6rem; color: var(--fh-forest); margin-bottom: 0.5rem; }
.fh-shop-empty p { color: var(--fh-text); }
.fh-shop-empty .button { margin-top: 1rem; background: var(--fh-green); color: #fff; }

/* Mobile: filter drawer */
@media (max-width: 1024px) {
  .fh-filter-toggle { display: inline-flex; }
  #secondary {
    position: fixed; top: 0; right: 0; height: 100dvh; width: min(360px, 88vw);
    background: #fff; z-index: 10001; padding: 3rem 1.4rem 2rem; overflow-y: auto;
    transform: translateX(105%); transition: transform 300ms ease; box-shadow: -12px 0 34px rgba(5,31,21,0.15);
  }
  body.fh-filters-open #secondary { transform: translateX(0); }
  .fh-filter-overlay {
    position: fixed; inset: 0; background: rgba(5, 31, 21, 0.35); z-index: 10000;
    opacity: 0; pointer-events: none; transition: opacity 250ms ease;
  }
  body.fh-filters-open .fh-filter-overlay { opacity: 1; pointer-events: auto; }
  .fh-filter-close {
    display: flex; position: absolute; top: 0.6rem; right: 0.8rem; width: 36px; height: 36px;
    align-items: center; justify-content: center; border: 0; background: transparent;
    font-size: 1.6rem; color: var(--fh-forest); cursor: pointer;
  }
}

/* ============ SHOP FINAL POLISH ============ */
/* 1+2. Card internals: uniform rhythm, image breathing room */
.woocommerce ul.products li.product { padding: 1rem 1rem 1.25rem; }
.woocommerce ul.products li.product img { border-radius: 12px; margin-bottom: 0.85rem; }
.woocommerce ul.products li.product .fh-card-cat { font-size: 0.7rem; letter-spacing: 0.1em; margin-bottom: 0.2rem; color: #6a6f67; /* AA on white */ }
/* Tablet: 2-up grid keeps cards readable between 768–900px */
@media (max-width: 900px) and (min-width: 768px) {
  .woocommerce ul.products.grid-cols { grid-template-columns: repeat(2, 1fr) !important; }
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  line-height: 1.3; margin-bottom: 0.25rem; padding: 0;
}
.woocommerce ul.products li.product .price { margin-bottom: 0.9rem; line-height: 1.3; }
/* 4. CTA: tracked label, unified timing */
.woocommerce ul.products li.product .button { letter-spacing: 0.04em; transition: background 220ms ease-out, color 220ms ease-out, border-color 220ms ease-out; }
/* 5. Hover: one gesture — 2px lift, soft shadow, 1.03 zoom, all 220ms */
.woocommerce ul.products li.product { transition: box-shadow 220ms ease-out, transform 220ms ease-out; }
.woocommerce ul.products li.product:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(5, 31, 21, 0.07); }
.woocommerce ul.products li.product a img { transition: transform 320ms ease-out; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
/* 7. Sidebar: aligned rows, counts right, centered checkboxes */
.sidebar .widget ul li { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.sidebar .widget ul li .count { margin-left: auto; }
.sidebar .woocommerce-widget-layered-nav-list li { justify-content: flex-start; }
.sidebar .woocommerce-widget-layered-nav-list li .count { margin-left: auto; }
.sidebar .widget ul li a { display: inline-flex; align-items: center; gap: 0.45rem; }
.sidebar .widget_price_filter .price_slider_wrapper { padding-top: 0.35rem; }
.sidebar .widget_price_filter .price_slider_amount { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: 1.1rem; }
/* 8. Page balance: pagination clearance, grid top rhythm */
.woocommerce nav.woocommerce-pagination { margin: 3rem 0 1.5rem; }
.fh-shop-header { margin-bottom: 2.25rem; }

/* ============ HERO FADE SLIDER ============ */
.fh-hero-slider { display: grid; position: relative; height: 720px; }
@media (min-width: 768px) and (max-width: 1024px) { .fh-hero-slider { height: 600px; } }
@media (max-width: 767px) { .fh-hero-slider { height: 540px; } }
/* Overrides .entry-content > .alignfull:first-child's 3.25rem top/bottom
   padding (written for an earlier single-image hero, before this slider
   existed — specificity (0,3,0) beats a plain .fh-hero-slider selector
   even with !important on both sides, hence matching the same nesting
   plus the class here to out-specificity it). That padding was the real
   source of the white gaps above/below the hero, not .content-area's margin. */
.entry-content > .fh-hero-slider.alignfull:first-child {
  padding-top: 0 !important; padding-bottom: 0 !important;
  /* margin-bottom intentionally not set here — the Hero→Trust Bar gap is
     owned by the section-rhythm rule below (nth-child(2) margin-top:50px)
     so there's exactly one source of truth for this gap, not two competing
     margins that would collapse to whichever is larger. */
  margin-bottom: 0 !important;
}
.fh-hero-slider > .fh-hero-slide {
  grid-area: 1 / 1; opacity: 0; visibility: hidden;
  transition: opacity 700ms ease, visibility 700ms;
  background-color: transparent; /* longhand — must not clobber each slide's background-image */
  /* WordPress core's flow-layout CSS auto-constrains any non-aligned block
     inside a layout container to var(--wp--style--global--content-size)
     with auto margins to center it. Each slide here is a plain (non-
     alignfull) group nested inside the alignfull .fh-hero-slider, so core
     was capping every slide to ~550px and centering it — the actual root
     cause of the hero reading as boxed, not the padding/gradient tuning. */
  max-width: none !important; width: 100% !important; margin-left: 0 !important; margin-right: 0 !important;
}
.fh-hero-slider > .fh-hero-slide.is-active,
.fh-hero-slider:not(.fh-slider-ready) > .fh-hero-slide:first-child {
  opacity: 1 !important; visibility: visible !important;
}
/* Full-bleed background slides with readability scrim.
   Reference column widened from 1200px to 1600px so the content padding
   loosens on wide viewports (was reading as a boxed layout even though the
   background itself was already edge-to-edge) — requirement: nearly
   full-width hero, ~1600px effective content reference. */
.fh-hero-slide {
  min-height: 720px; display: flex !important; align-items: center; position: relative; overflow: hidden;
  background-position: center right;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem;
}
@media (min-width: 768px) and (max-width: 1024px) { .fh-hero-slide { min-height: 600px; } }
@media (max-width: 767px) { .fh-hero-slide { min-height: 540px; } }
/* Zoomed image layer: background-size:cover always guarantees full coverage
   at any viewport width, but a fixed oversized percentage (e.g. 115%) does
   not — the required cover percentage varies with viewport aspect ratio,
   so a flat number leaves gaps at some widths and under-zooms at others.
   A separate absolutely-positioned layer sized with cover, then scaled up
   12% via transform (cropped by this element's own overflow:hidden), zooms
   the image uniformly with zero gap risk at every breakpoint, without
   scaling the text content sitting in normal flow above it. */
.fh-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center right;
  transform: scale(1.12); transform-origin: center right;
}
.fh-hero-slide > * { position: relative; z-index: 1; }
.fh-hero-slide h1 { margin-top: 0 !important; margin-bottom: 2rem !important; font-size: clamp(2.25rem, 5.5vw, 80px) !important; line-height: 1 !important; }
.fh-hero-slide .has-small-font-size { margin-bottom: 1.25rem !important; }
.fh-hero-slide p:not(.has-small-font-size) { max-width: 520px; font-size: 1.05rem; margin: 0 !important; }
.fh-hero-slide .wp-block-buttons { margin-top: 2.25rem !important; }
.fh-hero-slide .wp-block-button__link { padding: 0.94rem 2.2rem; font-size: 1.1rem; }
/* Gradient stops tuned so the opaque/readable zone covers roughly the left
   42-45% of the slide (content column) and fades out by ~58% (image
   column starts), rather than the previous wider/heavier scrim. */
.fh-slide-bg-1 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.82) 30%, rgba(250,249,246,0.32) 45%, rgba(250,249,246,0) 60%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_1.webp'); }
.fh-slide-bg-2 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.82) 30%, rgba(250,249,246,0.32) 45%, rgba(250,249,246,0) 60%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_3.webp'); }
.fh-slide-bg-3 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.82) 30%, rgba(250,249,246,0.32) 45%, rgba(250,249,246,0) 60%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_2.webp'); }
.fh-slide-bg-4 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.82) 30%, rgba(250,249,246,0.32) 45%, rgba(250,249,246,0) 60%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_5.webp'); }
.fh-slide-bg-5 { background-image: linear-gradient(90deg, rgba(250,249,246,0.95) 0%, rgba(250,249,246,0.82) 30%, rgba(250,249,246,0.32) 45%, rgba(250,249,246,0) 60%), url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_4.webp'); }
.fh-slide-content { max-width: 520px; margin-left: 0 !important; margin-right: 0 !important; }
@media (max-width: 767px) {
  .fh-hero-slide {
    min-height: 460px; align-items: flex-end; padding: 1.5rem 1.25rem 3.25rem;
    background-position: center top;
  }
  .fh-slide-bg-1, .fh-slide-bg-2, .fh-slide-bg-3, .fh-slide-bg-4, .fh-slide-bg-5 {
    background-image: linear-gradient(0deg, rgba(250,249,246,0.97) 0%, rgba(250,249,246,0.9) 42%, rgba(250,249,246,0.15) 75%, rgba(250,249,246,0) 100%), var(--fh-slide-img, none);
  }
  .fh-slide-bg-1 { --fh-slide-img: url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_1.webp'); }
  .fh-slide-bg-2 { --fh-slide-img: url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_3.webp'); }
  .fh-slide-bg-3 { --fh-slide-img: url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_2.webp'); }
  .fh-slide-bg-4 { --fh-slide-img: url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_5.webp'); }
  .fh-slide-bg-5 { --fh-slide-img: url('/wp-content/uploads/2026/07/flower_house_hero_bg_slide_4.webp'); }
}
/* controls: editorial dashes + arrows (injected by JS), now a normal flow
   row below the hero (grid's default row-2 auto-placement, since the
   slides above are pinned to grid-area 1/1) instead of absolutely
   positioned over the image. */
.fh-hero-nav {
  position: absolute; left: 50%; transform: translateX(-50%); bottom: 1rem;
  display: flex; align-items: center; gap: 0.9rem; z-index: 3;
  /* Backdrop pill so the nav reads clearly against any part of any slide
     image, not just the lighter ones it happened to sit on before. */
  background: rgba(255, 255, 255, 0.85); backdrop-filter: blur(6px);
  padding: 0.6rem 1rem; border-radius: 999px; box-shadow: 0 6px 20px rgba(5, 31, 21, 0.12);
}
.fh-hero-dots { display: flex; gap: 0.45rem; }
.fh-hero-dots button {
  width: 30px; height: 5px; border-radius: 3px; border: 0; padding: 0; cursor: pointer;
  background: rgba(1, 92, 44, 0.35); transition: background 250ms ease, width 250ms ease;
}
.fh-hero-dots button.is-active { background: var(--fh-green); width: 40px; }
.fh-hero-arrows { display: flex; gap: 0.35rem; }
.fh-hero-arrows button {
  width: 36px; height: 36px; border-radius: 50%; border: 1.5px solid var(--fh-green);
  background: transparent; color: var(--fh-green); cursor: pointer; font-size: 0.9rem; line-height: 1;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 250ms ease, color 250ms ease;
}
.fh-hero-arrows button:hover { background: var(--fh-green); color: #fff; }
@media (max-width: 767px) {
  .fh-hero-nav { bottom: 0.75rem; }
  .fh-hero-slide .wp-block-image img { aspect-ratio: 16 / 10; }
}

/* ============ CLIENT FEEDBACK ROUND (items 3,4,5,6a) ============ */
:root { --fh-red: #C4122F; }

/* 3. Value-prop editorial line */
.fh-valueline {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.5;
  color: var(--fh-forest); text-align: center;
  max-width: 38ch; margin: 3.5rem auto 0 !important;
}

/* 5. Red accents — logo-flower dot inside heading flourishes */
.entry-content > h2::before {
  width: 72px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C4122F'><circle cx='12' cy='6.5' r='3.4'/><circle cx='6.8' cy='10.3' r='3.4'/><circle cx='17.2' cy='10.3' r='3.4'/><circle cx='8.8' cy='16.4' r='3.4'/><circle cx='15.2' cy='16.4' r='3.4'/><circle cx='12' cy='11.8' r='2.4' fill='%23015C2C'/></svg>") right center / 11px 11px no-repeat,
    linear-gradient(rgba(1, 92, 44, 0.18), rgba(1, 92, 44, 0.18)) left center / 56px 1px no-repeat;
}
.entry-content > h2::after {
  width: 72px;
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C4122F'><circle cx='12' cy='6.5' r='3.4'/><circle cx='6.8' cy='10.3' r='3.4'/><circle cx='17.2' cy='10.3' r='3.4'/><circle cx='8.8' cy='16.4' r='3.4'/><circle cx='15.2' cy='16.4' r='3.4'/><circle cx='12' cy='11.8' r='2.4' fill='%23015C2C'/></svg>") left center / 11px 11px no-repeat,
    linear-gradient(rgba(1, 92, 44, 0.18), rgba(1, 92, 44, 0.18)) right center / 56px 1px no-repeat;
}
/* Scope the centered flourish heading style out of WooCommerce tabs.
   The description tab panel (tabs/description.php) carries the class
   "entry-content" itself, so any h2 inside product description text
   was inheriting the homepage centered-flourish treatment. Higher
   specificity than ".entry-content > h2" wins without !important. */
.woocommerce-tabs .panel.entry-content > h2 {
  display: block; text-align: left;
  margin-top: 0 !important; margin-bottom: 1rem !important;
}
.woocommerce-tabs .panel.entry-content > h2::before,
.woocommerce-tabs .panel.entry-content > h2::after { content: none; display: none; }

/* testimonial: small red flower crest */
.entry-content > .wp-block-group[class*="has-fh-"]:not(.alignfull) { position: relative; }
.entry-content > .wp-block-group[class*="has-fh-"]:not(.alignfull)::before {
  content: ""; position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
  width: 22px; height: 22px;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C4122F'><circle cx='12' cy='6.5' r='3.4'/><circle cx='6.8' cy='10.3' r='3.4'/><circle cx='17.2' cy='10.3' r='3.4'/><circle cx='8.8' cy='16.4' r='3.4'/><circle cx='15.2' cy='16.4' r='3.4'/><circle cx='12' cy='11.8' r='2.4' fill='%23015C2C'/></svg>") center / 14px 14px no-repeat;
  border-radius: 50%;
}
/* wedding chip: deepen toward rose */
h4.fh-occ-wedding::before { background-color: #F3C6D5; }

/* 4. Wedding line-art icons */
p.fh-ic-varmala::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 5c2 5 4.5 7.5 8 7.5S18 10 20 5'/><path d='M12 12.5V15'/><circle cx='12' cy='17.5' r='2.2'/><circle cx='6.5' cy='8.5' r='1.2'/><circle cx='17.5' cy='8.5' r='1.2'/></svg>"); }
p.fh-ic-mandap::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 21V9c0-4 3.5-6 8-6s8 2 8 6v12'/><path d='M7 21v-8M17 21v-8'/><path d='M4 11c2.5 1.5 5 2 8 2s5.5-.5 8-2'/></svg>"); }
/* homepage specialty card: corner floral accent */
.fh-wed-accent { position: relative; overflow: hidden; }
.fh-wed-accent::after {
  content: ""; position: absolute; right: -14px; bottom: -14px; width: 90px; height: 90px;
  opacity: 0.14; pointer-events: none;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23C4122F' stroke-width='1.3' stroke-linecap='round'><path d='M8 44c8-2 14-8 16-16' stroke='%23015C2C'/><circle cx='28' cy='22' r='4.5'/><circle cx='36' cy='14' r='3.5'/><circle cx='40' cy='26' r='3'/><path d='M24 28c-3 1-5 3-6 6' stroke='%23015C2C'/></svg>") center / contain no-repeat;
}

/* 6b. Logo bloom video: plays once, freezes on final frame; static img is the
   reduced-motion fallback (Kadence prints it right after our video) */
.site-header .fh-logo-video {
  display: block; height: 52px !important; width: auto !important;
  aspect-ratio: 1114 / 488; /* reserves exact space before video loads — no layout shift */
  object-fit: contain;
}
.site-header .site-branding a.brand:has(.fh-logo-video) img.custom-logo { display: none; }
@media (prefers-reduced-motion: reduce) {
  .site-header .fh-logo-video { display: none; }
  .site-header .site-branding a.brand:has(.fh-logo-video) img.custom-logo { display: block; }
}

/* 6a. Logo entrance: one-time fade + settle, hover micro-lift */
@media (prefers-reduced-motion: no-preference) {
  .site-header .custom-logo { animation: fh-logo-in 0.35s ease-out both; }
  @keyframes fh-logo-in { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
}
.site-header .site-branding a { transition: transform 250ms ease; }
.site-header .site-branding a:hover { transform: translateY(-1px); }

/* ============ MOBILE POLISH (≤767px) ============ */
@media (max-width: 767px) {
  :root { --fh-section: 2.25rem; }
  /* Header: balanced compact bar */
  .site-header .custom-logo, .site-header .site-branding img, .site-header .header-logo img { max-height: 42px !important; }
  .site-header .site-main-header-inner-wrap { min-height: 58px; }

  /* Hero: tight first screen */
  .entry-content > .alignfull:first-child { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; }
  .entry-content h1 { font-size: clamp(2rem, 8vw, 2.6rem); }
  .entry-content > .alignfull:first-child .has-small-font-size { margin-bottom: 0.4rem; }
  .entry-content > .alignfull:first-child h1 { margin-bottom: 0.6rem; }
  .entry-content > .alignfull:first-child .wp-block-buttons { margin-top: 1rem; margin-bottom: 1.25rem; }
  .entry-content > .alignfull:first-child .wp-block-image img { aspect-ratio: 16 / 10; }
  .entry-content > .alignfull:first-child .wp-block-columns { gap: 0.5rem; }

  /* Trust/stat strips: 2×2 grid instead of tall stack */
  .entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) { padding-top: 1.25rem !important; padding-bottom: 1.25rem !important; }
  .entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) .wp-block-columns {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 1rem 0 !important;
  }
  .entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) .wp-block-column { padding: 0.2rem 0.9rem; }
  .entry-content > .alignfull .wp-block-columns .wp-block-column:not(:first-child) { border-left: 0; }
  .entry-content > .alignfull[class*="has-fh-"]:not(:has(.wp-block-image)) .wp-block-column:nth-child(even) { border-left: 1px solid rgba(1, 92, 44, 0.12); }
  .entry-content > .alignfull .wp-block-column > p strong { font-size: 0.95rem; }

  /* Product/category tile rows: 2×2 grid (skip rows whose cards contain
     their own inner column layouts, e.g. the specialty cards) */
  .entry-content > .wp-block-columns:not(:has(.wp-block-group .wp-block-columns)) {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.25rem !important;
    margin-bottom: 2rem;
  }
  .entry-content > .wp-block-columns .wp-block-column { width: auto !important; }
  .entry-content .wp-block-column h4 { font-size: 0.95rem; margin-top: 0.6rem; }
  .entry-content .wp-block-column h4 + p { font-size: 0.85rem; }
  /* Category chips: compact */
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] { padding: 1.1rem 0.8rem; min-height: 64px; }
  .entry-content .wp-block-columns:has(> .wp-block-column > .wp-block-group[class*="has-fh-"] > h4:only-child) .wp-block-group { min-height: 64px; }

  /* Specialty cards: stack naturally; cap image height so the card stays compact */
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] .wp-block-columns { gap: 0.75rem; }
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] .wp-block-image img {
    max-height: 170px; width: 100%; object-fit: cover;
  }
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] { padding: 1.25rem 1.1rem; }
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] h3 { font-size: 1.1rem; margin-bottom: 0.3rem; }
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] ul.wp-block-list { margin-top: 0.4rem; }
  .entry-content .wp-block-column > .wp-block-group[class*="has-fh-"] ul.wp-block-list li { font-size: 0.85rem; margin-bottom: 0.35rem; }

  /* Specialty + wholesale rows: single column stack stays for banner rows */
  .entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
  .entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) .wp-block-columns { gap: 1.25rem; }
  .entry-content > .alignfull[class*="has-fh-"]:has(.wp-block-image) h2 { font-size: 1.5rem; }

  /* Footer: 2-col link grid, brand block full-width, compressed */
  .site-footer .site-footer-row.site-footer-row-columns-4,
  .site-footer .site-footer-row.site-footer-row-columns-5 {
    display: grid !important; grid-template-columns: 1fr 1fr; gap: 1.5rem 1.25rem !important;
  }
  .site-footer .site-footer-row.site-footer-row-columns-4 > .site-footer-section:first-child,
  .site-footer .site-footer-row.site-footer-row-columns-5 > .site-footer-section:first-child { grid-column: 1 / -1; }
  .site-footer .site-footer-row-container-inner { padding-top: 1.5rem; padding-bottom: 0.25rem; }
  .site-footer p { margin-bottom: 0.4rem; }
  .site-footer .wp-block-image { margin-bottom: 0.35rem; }
  .site-footer .wp-block-image img { max-width: 96px; }
  .site-footer .wp-block-heading { margin-bottom: 0.5rem; }
  .site-footer ul li { margin-bottom: 0.3rem; }
  .site-footer-bottom { padding-top: 0.75rem; padding-bottom: 0.75rem; text-align: center; }
  /* Enquiry sections stack: benefits card above form */
  .fh-enquiry-cols { display: flex !important; flex-direction: column !important; }
  .fh-form-card { padding: 24px; }
  .fh-benefits-card { padding: 1.75rem 1.4rem; }
}

/* ============ CART PAGE PREMIUM ============ */
/* Header */
.fh-cart-header { margin-bottom: 1rem; }
.fh-cart-breadcrumb { margin-bottom: 0.6rem; }
.fh-cart-header h1 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: clamp(1.9rem, 3vw, 2.4rem); color: var(--fh-forest); margin: 0 0 0.4rem; max-width: none;
}
.fh-cart-header p { color: var(--fh-text-light); font-size: 1rem; margin: 0; }

/* Free-delivery progress bar */
.fh-free-bar {
  background: var(--fh-cream); border: 1px solid var(--fh-hairline); border-radius: var(--fh-radius);
  padding: 1.1rem 1.4rem; margin: 1.5rem 0; transition: background 300ms ease, border-color 300ms ease;
}
.fh-free-bar p { margin: 0 0 0.65rem; font-size: 0.92rem; color: var(--fh-text); }
.fh-free-bar p strong { color: var(--fh-green); }
.fh-free-bar--done { background: var(--fh-sage); border-color: rgba(1, 92, 44, 0.18); }
.fh-free-bar-done { display: block; margin: 0 0 0.75rem; }
.fh-free-bar-done strong {
  display: block; color: var(--fh-forest) !important; font-weight: 700; font-size: 1rem; margin-bottom: 0.2rem;
}
.fh-free-bar-done span { display: block; color: var(--fh-text-light); font-size: 0.88rem; }
.fh-free-bar-track { height: 8px; border-radius: 999px; background: rgba(1, 92, 44, 0.1); overflow: hidden; }
.fh-free-bar-fill {
  height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--fh-coral), var(--fh-green));
  transition: width 700ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* Two-column layout: 70% cart form / 30% sticky summary. Kadence's own
   cart_form_wrap_before()/after() wraps EVERYTHING from woocommerce_before_cart
   through woocommerce_after_cart in one .kadence-woo-cart-form-wrap div —
   so the form AND .cart-collaterals (cross-sells + totals) are siblings
   INSIDE that wrap, not inside .fh-cart-layout directly. The grid lives on
   the wrap div itself; .cart-collaterals gets display:contents so its
   children (.fh-cart-gift, .cart_totals) become direct grid items that can
   be placed independently, without flattening the <form> itself. */
.fh-cart-layout .cart-summary { display: none; }
@media (min-width: 1025px) {
  .kadence-woo-cart-form-wrap {
    display: grid; grid-template-columns: 7fr 3fr; gap: 2.5rem; align-items: start;
  }
  .kadence-woo-cart-form-wrap > form.woocommerce-cart-form {
    grid-column: 1; grid-row: 1; float: none !important; width: 100% !important;
  }
  .kadence-woo-cart-form-wrap > .cart-collaterals { display: contents; }
  .kadence-woo-cart-form-wrap .fh-cart-gift { grid-column: 1; grid-row: 2; margin-top: 0.5rem; }
  .kadence-woo-cart-form-wrap .cart_totals { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 100px; align-self: start; }
}

/* Cart item cards: table rows restyled as premium cards via flexbox (no
   DOM changes â€” table semantics stay intact for assistive tech). */
.woocommerce-cart-form table.cart,
.woocommerce-cart-form table.cart tbody,
.woocommerce-cart-form table.cart tr,
.woocommerce-cart-form table.cart td,
.woocommerce-cart-form table.cart th { display: block; border: 0; background: none; }
.woocommerce-cart-form table.cart { width: 100%; border-collapse: separate; }
.woocommerce-cart-form table.cart thead { display: none; }
.woocommerce-cart-form table.cart tbody { display: flex; flex-direction: column; gap: 1.1rem; }
.woocommerce-cart-form table.cart tr.cart_item {
  display: flex; flex-wrap: wrap; align-items: flex-start; gap: 1rem 1.75rem;
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 18px;
  padding: 1.5rem 1.65rem; box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04);
  transition: box-shadow 220ms ease-out, transform 220ms ease-out; position: relative;
}
.woocommerce-cart-form table.cart tr.cart_item:hover { box-shadow: 0 12px 30px rgba(5, 31, 21, 0.09); transform: translateY(-2px); }
.woocommerce-cart-form table.cart td { padding: 0; }

td.product-remove { position: absolute; top: 1rem; right: 1rem; }
td.product-remove a.remove {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%; background: var(--fh-cream);
  color: var(--fh-text-light); font-size: 1.15rem; text-decoration: none; line-height: 1;
  transition: background 200ms ease, color 200ms ease;
}
td.product-remove a.remove:hover { background: var(--fh-coral); color: #fff; }

td.product-thumbnail {
  flex: 0 0 136px; width: 136px; height: 136px; border-radius: 14px; overflow: hidden;
  background: var(--fh-cream);
}
td.product-thumbnail a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
td.product-thumbnail img { width: 100%; height: 100%; object-fit: contain; display: block; }

td.product-name { flex: 1 1 220px; min-width: 200px; padding-right: 2.5rem; }
td.product-name a {
  font-family: 'Playfair Display', Georgia, serif; font-size: 1.12rem; font-weight: 600;
  color: var(--fh-forest); text-decoration: none;
}
td.product-name a:hover { color: var(--fh-green); }
td.product-name dl.variation { font-size: 0.82rem; color: var(--fh-text-light); margin: 0.3rem 0 0; }
.fh-cart-item-cat {
  display: block; font-size: 0.68rem; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--fh-text-light); margin: 0.35rem 0 0.15rem;
}
.fh-cart-item-desc {
  font-size: 0.88rem; color: var(--fh-text-light); line-height: 1.5; margin: 0.35rem 0 0; max-width: 42ch;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.fh-cart-item-chips { margin: 0.6rem 0 0; }

td.product-price { flex: 0 0 90px; font-size: 0.9rem; color: var(--fh-text-light); align-self: center; text-align: right; }

/* Elegant [-] / [+] quantity stepper wrapping the native input */
.quantity {
  position: relative; display: inline-flex; align-items: center;
  border: 1.5px solid rgba(5, 31, 21, 0.14); border-radius: 999px; overflow: hidden; background: #fff;
  transition: border-color 220ms ease, box-shadow 220ms ease;
}
.quantity:focus-within { border-color: var(--fh-green); box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.1); }
.fh-qty-btn {
  width: 42px; height: 42px; border: 0; background: transparent; color: var(--fh-forest);
  font-size: 1.2rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background 220ms ease, color 220ms ease;
}
.fh-qty-btn:hover { background: var(--fh-green); color: #fff; }
.fh-qty-btn:active { transform: scale(0.9); }
.quantity input.qty {
  width: 46px; border: 0; text-align: center; font-size: 0.95rem; font-weight: 600; background: transparent;
  padding: 0; height: 42px; -moz-appearance: textfield;
}
.quantity input.qty::-webkit-inner-spin-button, .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
td.product-quantity { flex: 0 0 auto; align-self: center; }

td.product-subtotal { flex: 0 0 100px; text-align: right; font-weight: 700; color: var(--fh-forest); align-self: center; }

/* Actions row: coupon accordion + Update cart */
.woocommerce-cart-form table.cart td.actions { padding-top: 0.5rem; display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0.75rem 1.25rem; }
.woocommerce-cart-form table.cart td.actions button[name="update_cart"] {
  background: transparent; border: 1px solid rgba(1, 92, 44, 0.3); color: var(--fh-green);
  border-radius: 999px; padding: 0.65rem 1.5rem; font-weight: 600; font-size: 0.88rem; order: 2;
  transition: background 200ms ease;
}
.woocommerce-cart-form table.cart td.actions button[name="update_cart"]:hover { background: var(--fh-sage); }
.woocommerce-cart-form table.cart td.actions > .coupon { order: 1; flex: 1 1 260px; }

/* Coupon: collapsed accordion */
.fh-coupon-toggle {
  display: inline-flex; align-items: center; gap: 0.5rem; background: var(--fh-cream);
  border: 1px solid var(--fh-hairline); border-radius: 999px; color: var(--fh-text);
  font-weight: 500; font-size: 0.86rem; cursor: pointer; padding: 0.6rem 1.1rem;
  transition: border-color 220ms ease, background 220ms ease;
}
.fh-coupon-toggle:hover { border-color: rgba(1, 92, 44, 0.3); background: var(--fh-sage); }
.fh-coupon-gift { font-size: 1rem; line-height: 1; }
.fh-coupon-cta { color: var(--fh-green); font-weight: 600; display: inline-flex; align-items: center; gap: 0.3rem; }
.fh-coupon-caret { font-size: 0.95em; transition: transform 220ms ease; }
.fh-coupon-toggle.fh-coupon-open .fh-coupon-caret { transform: rotate(90deg); }
.coupon.fh-coupon-panel {
  max-height: 0; overflow: hidden; opacity: 0; margin-top: 0;
  transition: max-height 320ms ease, opacity 260ms ease, margin-top 320ms ease;
}
.coupon.fh-coupon-panel.fh-coupon-open { max-height: 220px; opacity: 1; margin-top: 0.85rem; }
.coupon.fh-coupon-panel input#coupon_code {
  height: 44px; border-radius: 999px; border: 1px solid var(--fh-hairline); padding: 0 1.1rem;
  font-size: 0.9rem; margin-right: 0.5rem;
}
.coupon.fh-coupon-panel button[name="apply_coupon"] {
  background: var(--fh-forest); color: #fff; border-radius: 999px; padding: 0.7rem 1.4rem;
  font-size: 0.85rem; font-weight: 600;
}

/* Continue Shopping (left column) */
.fh-cart-continue { margin: 0.25rem 0 1.5rem; }
.fh-cart-continue a {
  display: inline-flex; align-items: center; gap: 0.4rem; color: var(--fh-green); font-weight: 600;
  font-size: 0.92rem; text-decoration: none; transition: transform 200ms ease;
}
.fh-cart-continue a:hover { transform: translateX(-3px); }

/* Delivery benefits row reused from the Product page; wider left column
   here so it goes back to 4-across instead of the Product page's 2x2. */
@media (min-width: 700px) {
  .fh-cart-delivery { grid-template-columns: repeat(4, 1fr) !important; align-items: stretch; }
}
.fh-cart-delivery { margin: 0 0 1.75rem; }
.fh-cart-delivery .fh-pdd {
  padding: 0.7rem 0.9rem 0.7rem 2.75rem; display: flex; flex-direction: column; justify-content: center;
}
.fh-cart-delivery .fh-pdd::before { top: 50%; }
.fh-cart-help { margin: 0 0 2.5rem; }
.fh-cart-help-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.fh-cart-help-actions a {
  border-radius: 999px; padding: 0.7rem 1.5rem; font-weight: 600; font-size: 0.88rem;
  text-decoration: none; transition: background 220ms ease, color 220ms ease, border-color 220ms ease;
}
.fh-cart-help-actions a:first-child { background: var(--fh-green); color: #fff; }
.fh-cart-help-actions a:first-child:hover { background: var(--fh-green-dark); }
.fh-cart-help-call { border: 1px solid rgba(1, 92, 44, 0.3); color: var(--fh-green); }
.fh-cart-help-call:hover { background: var(--fh-sage); }

/* Complete Your Gift: same carousel as Product page's Recently Viewed, cards
   ~12% wider than the previous pass so products feel less cramped. */
.fh-cart-gift .fh-recent-head { margin-bottom: 1.25rem; }
.fh-cart-gift .fh-carousel-nav {
  width: 42px; height: 42px; box-shadow: 0 8px 22px rgba(5, 31, 21, 0.12);
  transition: background 200ms ease, color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}
.fh-cart-gift .fh-carousel-nav:hover:not(:disabled) { transform: scale(1.08); }
@media (min-width: 1025px) {
  .fh-cart-gift .fh-recent-carousel ul.products li.product { flex-basis: calc(26% - 1rem) !important; }
}
.fh-cart-gift .fh-recent-carousel ul.products li.product img { margin-bottom: 1.1rem !important; }
.fh-cart-gift .fh-recent-carousel ul.products li.product .woocommerce-loop-product__title { margin-bottom: 0.35rem !important; }

/* Sticky order summary card */
.cart_totals {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 22px;
  box-shadow: 0 6px 16px rgba(5, 31, 21, 0.04), 0 22px 50px rgba(5, 31, 21, 0.09);
  padding: 2.1rem 1.85rem;
}
.cart_totals h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.3rem; color: var(--fh-forest); margin: 0 0 1.1rem; }
.cart_totals table { width: 100%; border: 0; border-collapse: collapse; }

/* One consistent two-column grid (label / value) for every row, so every
   value — whatever the label length — lands on the same right edge. */
.cart_totals table tr {
  display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; align-items: baseline;
  padding: 0.85rem 0; border-bottom: 1px solid rgba(5, 31, 21, 0.045);
}
.cart_totals table th, .cart_totals table td { display: block; border: 0; padding: 0; font-size: 0.92rem; color: var(--fh-text); }
.cart_totals table th { font-weight: 500; color: var(--fh-text-light); text-align: left; }
.cart_totals table td { text-align: right; }

/* Shipping row: WooCommerce renders the method list, the destination line
   and the "Change address" calculator toggle all inside one <td>. Restyled
   into two clean label/value sub-rows (Delivery, Shipping) instead of one
   cramped block — no markup changes, so the calculator and AJAX shipping
   updates keep working exactly as before. */
.cart_totals table tr.woocommerce-shipping-totals { grid-template-columns: 1fr; row-gap: 0.9rem; }
.cart_totals table tr.woocommerce-shipping-totals th { display: none; }
.cart_totals table tr.woocommerce-shipping-totals td { text-align: left; }

ul#shipping_method {
  display: grid; grid-template-columns: 1fr auto; column-gap: 1rem; align-items: baseline;
  list-style: none; margin: 0; padding: 0;
}
ul#shipping_method::before {
  content: "Delivery"; font-size: 0.92rem; font-weight: 500; color: var(--fh-text-light);
}
ul#shipping_method li { list-style: none; text-align: right; }
ul#shipping_method label { font-weight: 600; color: var(--fh-forest); font-size: 0.92rem; }
.fh-free-label { color: var(--fh-green); font-weight: 600; }

.woocommerce-shipping-destination {
  margin: 0; display: flex; flex-direction: column; gap: 0.3rem;
}
.fh-shipping-label { font-size: 0.88rem; color: var(--fh-text-light); }
.fh-shipping-value { font-size: 1.02rem; font-weight: 700; color: var(--fh-forest); }

form.woocommerce-shipping-calculator { margin: 0.45rem 0 0; }
a.shipping-calculator-button {
  font-size: 0.75rem; font-weight: 500; color: var(--fh-green); text-decoration: none;
  transition: color 200ms ease;
}
a.shipping-calculator-button:hover { color: var(--fh-green-dark); text-decoration: underline; text-underline-offset: 2px; }
.shipping-calculator-form { margin-top: 0.85rem; }

.cart_totals table tr.order-total {
  grid-template-columns: 1fr auto;
  border-bottom: 0; border-top: 2px solid var(--fh-hairline); margin: 0.75rem -1.85rem -0.2rem; padding: 1.3rem 1.85rem 0.25rem;
  background: var(--fh-cream); border-radius: 0 0 14px 14px;
}
.cart_totals table tr.order-total th, .cart_totals table tr.order-total td { font-size: 1.48rem; font-weight: 800; color: var(--fh-forest); }
.wc-proceed-to-checkout { margin-top: 1.5rem; }
.wc-proceed-to-checkout a.checkout-button {
  display: flex; align-items: center; justify-content: center; min-height: 52px;
  text-align: center; background: var(--fh-green) !important; color: #fff !important;
  border-radius: 999px !important; padding: 1rem 1rem !important; font-weight: 700 !important; font-size: 1.02rem;
  box-shadow: 0 8px 20px rgba(1, 92, 44, 0.2); transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease;
}
.wc-proceed-to-checkout a.checkout-button:hover { background: var(--fh-green-dark) !important; box-shadow: 0 12px 28px rgba(1, 92, 44, 0.28); transform: translateY(-2px); }
.wc-proceed-to-checkout a.checkout-button:active { transform: translateY(0); }

/* Reassurance stats + final help CTA (full width, below the grid) */
.fh-cart-why { margin: calc(var(--fh-section) + 1.5rem) 0 2.75rem; }
.fh-cart-final-cta {
  background: var(--fh-green); text-align: center; border-radius: var(--fh-radius);
  padding: 2.75rem 2rem; margin: 0 0 3.5rem;
}
.fh-cart-final-cta h2 { color: #fff; font-family: 'Playfair Display', Georgia, serif; font-size: 1.6rem; margin: 0 0 0.6rem; max-width: none; }
.fh-cart-final-cta p { color: rgba(255, 255, 255, 0.88); margin: 0 auto 1.4rem; max-width: 46ch; }
.fh-cart-final-cta-actions { display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
.fh-cart-final-cta-wa, .fh-cart-final-cta-call {
  border-radius: 999px; padding: 0.8rem 1.8rem; font-weight: 600; font-size: 0.92rem; text-decoration: none;
  transition: background 220ms ease, color 220ms ease;
}
.fh-cart-final-cta-wa { background: #fff; color: var(--fh-green); }
.fh-cart-final-cta-wa:hover { background: var(--fh-cream); }
.fh-cart-final-cta-call { border: 1px solid rgba(255, 255, 255, 0.5); color: #fff; }
.fh-cart-final-cta-call:hover { background: rgba(255, 255, 255, 0.12); }

/* Empty cart */
.fh-cart-empty { text-align: center; padding: 4rem 1rem; max-width: 480px; margin: 0 auto; }
.fh-cart-empty-illustration { margin-bottom: 1.25rem; }
.fh-cart-empty h2 { font-family: 'Playfair Display', Georgia, serif; font-size: 1.7rem; color: var(--fh-forest); margin: 0 0 0.6rem; }
.fh-cart-empty p { color: var(--fh-text-light); margin: 0 0 1.75rem; }
.fh-cart-empty-actions { display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
.fh-cart-empty-browse, .fh-cart-empty-collections {
  border-radius: 999px; padding: 0.85rem 1.9rem; font-weight: 600; font-size: 0.92rem; text-decoration: none;
  transition: background 220ms ease, color 220ms ease, border-color 220ms ease;
}
.fh-cart-empty-browse { background: var(--fh-green); color: #fff; }
.fh-cart-empty-browse:hover { background: var(--fh-green-dark); }
.fh-cart-empty-collections { border: 1px solid rgba(1, 92, 44, 0.3); color: var(--fh-green); }
.fh-cart-empty-collections:hover { background: var(--fh-sage); }
/* The default cart-empty.php "Return to shop" link is redundant with the
   two buttons above. */
.woocommerce-cart .return-to-shop { display: none; }

/* Mobile sticky checkout bar */
.fh-cart-mobile-checkout { display: none; }
@media (max-width: 767px) {
  .fh-cart-layout { gap: 1.5rem; }
  td.product-name { flex-basis: 100%; padding-right: 0; order: 1; }
  td.product-thumbnail { order: 0; }
  td.product-price { order: 2; }
  td.product-quantity { order: 3; }
  td.product-subtotal { order: 4; margin-left: auto; }
  .cart_totals { position: static; }
  body.woocommerce-cart { padding-bottom: 72px; }
  .fh-cart-mobile-checkout {
    display: flex; align-items: center; justify-content: space-between; gap: 1rem;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999;
    background: rgba(255, 254, 252, 0.97); backdrop-filter: blur(8px);
    border-top: 1px solid var(--fh-hairline); box-shadow: 0 -6px 20px rgba(5, 31, 21, 0.08);
    padding: 0.75rem 1.25rem;
  }
  .fh-cart-mobile-total { font-weight: 700; color: var(--fh-forest); }
  .fh-cart-mobile-checkout button {
    background: var(--fh-coral); color: #fff; border: 0; border-radius: 999px;
    padding: 0.75rem 1.6rem; font-weight: 600; cursor: pointer;
  }
}
@media (max-width: 480px) {
  .fh-cart-final-cta { padding: 2.25rem 1.25rem; }
}

/* ============ CHECKOUT PAGE PREMIUM ============ */
/* The Checkout block itself is untouched — this is purely a CSS restyle of
   its own rendered markup, plus a header/trust-strip added as sibling
   content blocks (see fh-checkout.php). */

/* Header */
.fh-checkout-header { margin-bottom: 1.75rem; }
.fh-checkout-header h1 {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: clamp(1.9rem, 3vw, 2.4rem); color: var(--fh-forest); margin: 0 0 0.4rem; max-width: none;
}
.fh-checkout-header p { color: var(--fh-text-light); font-size: 1rem; margin: 0 0 1rem; }
.fh-checkout-badges { display: flex; flex-wrap: wrap; gap: 0.6rem 1.5rem; }
.fh-checkout-badges span { font-size: 0.88rem; color: var(--fh-text); font-weight: 500; }

/* Every checkout section (Contact, Shipping, Shipping method, Payment,
   Order notes) shares this one step class — card-ify all of them at once. */
.wc-block-components-checkout-step {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 18px;
  padding: 1.9rem !important; margin: 0 0 1.25rem !important;
  box-shadow: 0 4px 16px rgba(5, 31, 21, 0.04);
  transition: box-shadow 220ms ease, border-color 220ms ease;
}
.wc-block-components-checkout-step:focus-within { border-color: rgba(1, 92, 44, 0.2); box-shadow: 0 8px 22px rgba(5, 31, 21, 0.07); }
.wc-block-components-checkout-step__title {
  font-family: 'Playfair Display', Georgia, serif; font-weight: 600;
  font-size: 1.3rem; line-height: 1.3; color: var(--fh-forest);
}
.wc-block-components-checkout-step__heading-container {
  margin-bottom: 1.4rem; display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
}
.wc-block-components-address-form label, .wc-block-components-text-input label {
  font-size: 0.86rem; letter-spacing: 0.01em;
}

/* Contact section: quiet "already registered" link, top right of the step */
.fh-checkout-login-link {
  font-size: 0.85rem; font-weight: 500; color: var(--fh-green); text-decoration: none;
  white-space: nowrap; transition: color 200ms ease;
}
.fh-checkout-login-link:hover { color: var(--fh-green-dark); text-decoration: underline; text-underline-offset: 2px; }

/* Inputs: every text input, select and the delivery-date field all share
   .wc-block-components-text-input, so one rule covers all of them. */
.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-country-input .components-input-control__input,
.wc-block-components-select-input select,
.wc-block-components-address-form select {
  height: 52px; border-radius: 12px !important; border: 1px solid var(--fh-hairline) !important;
  font-size: 0.95rem; transition: border-color 220ms ease, box-shadow 220ms ease;
}
.wc-block-components-text-input textarea { height: auto; min-height: 90px; padding-top: 0.9rem; }
.wc-block-components-text-input input:focus,
.wc-block-components-text-input textarea:focus,
.wc-block-components-country-input .components-input-control__input:focus,
.wc-block-components-select-input select:focus {
  border-color: var(--fh-green) !important; box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.1) !important; outline: none;
}
.wc-block-components-text-input, .wc-block-components-address-form__country, .wc-block-components-address-form__state {
  margin-bottom: 1.1rem;
}
.wc-block-components-address-form .wc-block-components-address-form__address_2-toggle { margin: -0.4rem 0 1.1rem; }

/* Delivery date: the plugin injects its field into the Shipping Address
   card using the same .wc-block-components-text-input component, so the
   input styling above already applies. This just highlights the field +
   its note as a distinct inset — no DOM changes, so the jQuery UI
   datepicker binding on the input is completely untouched. */
.wc-block-components-address-form:has(> div > .orddd-datepicker) { position: relative; }
div:has(> .orddd-datepicker) {
  background: var(--fh-sage); border: 1px solid rgba(1, 92, 44, 0.16); border-radius: 14px;
  padding: 1.1rem 1.2rem 1rem; margin: -0.2rem 0 1.1rem;
}
div:has(> .orddd-datepicker)::before {
  content: "\1F4C5 Delivery Date"; display: block; font-weight: 700; color: var(--fh-green);
  font-size: 0.82rem; letter-spacing: 0.02em; margin-bottom: 0.7rem;
}
.orddd-datepicker { margin-bottom: 0 !important; background: transparent; border-color: rgba(1, 92, 44, 0.2) !important; }
.orddd-datepicker input { background: transparent; font-size: 1.05rem !important; font-weight: 700; color: var(--fh-forest); }
.orddd-datepicker label { display: none; }
.orddd_lite_field_note { display: block; margin-top: 0.6rem; font-size: 0.8rem; color: var(--fh-text); }

/* Shipping method: restyle the radio option into a premium delivery card.
   The <label> already wraps the input, so the whole card is natively
   clickable — only visual treatment changes here. */
.wc-block-components-radio-control__option {
  border: 1px solid var(--fh-hairline) !important; border-radius: 14px !important;
  padding: 1.1rem 1.2rem !important; background: #fff;
  transition: border-color 220ms ease, box-shadow 220ms ease, background 220ms ease;
}
.wc-block-components-radio-control__option:hover { border-color: rgba(1, 92, 44, 0.25) !important; box-shadow: 0 6px 16px rgba(5, 31, 21, 0.05); }
.wc-block-components-radio-control__option-checked {
  border-color: var(--fh-green) !important; background: var(--fh-sage);
}
label[for*="free_shipping"] .wc-block-components-radio-control__label {
  display: block; font-weight: 700; color: var(--fh-forest); font-size: 0.98rem;
}
label[for*="free_shipping"] .wc-block-components-radio-control__label::before { content: "\1F69A "; }
label[for*="free_shipping"] .wc-block-components-radio-control__label::after {
  content: "Delivered Today (Order before 4 PM)"; display: block;
  font-size: 0.8rem; font-weight: 400; color: var(--fh-text-light); margin-top: 0.25rem;
}
.wc-block-checkout__shipping-option--free { text-transform: uppercase; color: var(--fh-green); font-weight: 700; font-size: 0.85rem; }

/* Coupon toggle inside the order summary */
.wc-block-components-totals-coupon { margin: 0.5rem 0 0.75rem; }
.wc-block-components-totals-coupon .wc-block-components-panel__button {
  border: 1px solid var(--fh-hairline); border-radius: 999px; background: var(--fh-cream);
  padding: 0.65rem 1.15rem; font-size: 0.86rem; color: var(--fh-text); font-weight: 500;
  transition: border-color 220ms ease, background 220ms ease, transform 180ms ease;
}
.wc-block-components-totals-coupon .wc-block-components-panel__button:hover {
  border-color: rgba(1, 92, 44, 0.3); background: var(--fh-sage); transform: translateY(-1px);
}
.wc-block-components-totals-coupon .wc-block-components-panel__button:active { transform: translateY(0); }
.fh-coupon-cta-action { color: var(--fh-green); font-weight: 600; }
.wc-block-components-totals-coupon__input input { height: 48px; border-radius: 10px !important; }
.wc-block-components-totals-coupon__form .wc-block-components-button { border-radius: 999px !important; }

/* Order summary sidebar: sticky, floating premium card, stronger elevation */
.wc-block-checkout__sidebar {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 20px;
  box-shadow: 0 8px 20px rgba(5, 31, 21, 0.05), 0 28px 60px rgba(5, 31, 21, 0.1);
  padding: 2rem;
}
@media (min-width: 1025px) {
  .wc-block-checkout__sidebar { position: sticky; top: 100px; align-self: start; }
}
.wc-block-components-order-summary-item {
  padding: 1.1rem 0; border-bottom: 1px solid var(--fh-hairline); gap: 1rem;
}
.wc-block-components-order-summary-item:first-child { padding-top: 0; }
.wc-block-components-order-summary-item:last-child { border-bottom: 0; }
.wc-block-components-order-summary-item__image,
.wc-block-components-order-summary-item__image img {
  width: 56px !important; height: 56px !important; min-width: 56px !important; max-width: 56px !important;
  flex: 0 0 56px !important; border-radius: 12px; overflow: hidden;
}
.wc-block-components-order-summary-item__quantity {
  background: var(--fh-forest); color: #fff; font-weight: 700; box-shadow: none;
}
.wc-block-components-order-summary-item__individual-prices { color: var(--fh-text-light); }

/* Totals hierarchy */
.wc-block-components-totals-item { padding: 0.7rem 0; }
.wc-block-components-totals-item__label { color: var(--fh-text-light); font-size: 0.92rem; }
.wc-block-components-totals-item__value { font-weight: 600; color: var(--fh-text); }
.wc-block-components-totals-footer-item {
  border-top: 0; margin: 0.6rem -2rem -2rem; padding: 1.3rem 2rem 1.6rem;
  background: var(--fh-sage); border-radius: 0 0 20px 20px;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
  font-size: 1.5rem; font-weight: 800; color: var(--fh-forest);
}

/* Notices: softer, rounder, more breathing room */
.wc-block-components-notice-banner {
  border-radius: 12px; border-width: 1px; padding: 1rem 1.1rem; align-items: flex-start;
}
.wc-block-components-notice-banner.is-error {
  background: #FEF6E9; border-color: rgba(196, 132, 18, 0.25); color: #7a5613;
}
.wc-block-components-notice-banner.is-error svg { fill: #b5811d; }
.wc-block-components-notice-banner.is-info { background: var(--fh-sage); border-color: rgba(1, 92, 44, 0.15); }
.wc-block-components-notice-banner.is-success { background: var(--fh-sage); border-color: rgba(1, 92, 44, 0.15); }

/* Place Order button: brand green, pill, lift on hover */
.wc-block-components-checkout-place-order-button {
  min-height: 56px !important; border-radius: 999px !important; font-weight: 700 !important; font-size: 1.02rem !important;
  background: var(--fh-green) !important; box-shadow: 0 8px 22px rgba(1, 92, 44, 0.24) !important;
  transition: background 220ms ease, box-shadow 220ms ease, transform 220ms ease !important;
}
.wc-block-components-checkout-place-order-button:hover {
  background: var(--fh-green-dark) !important; box-shadow: 0 12px 30px rgba(1, 92, 44, 0.32) !important; transform: translateY(-2px);
}
.wc-block-components-checkout-place-order-button:active { transform: translateY(0); }

/* Trust strip below the whole checkout block */
.fh-checkout-trust-strip { margin: 2rem 0 var(--fh-section); }
@media (min-width: 700px) {
  .fh-checkout-trust-strip { grid-template-columns: repeat(4, 1fr); }
}

/* Mobile */
@media (max-width: 767px) {
  .wc-block-components-checkout-step { padding: 1.4rem !important; }
  .wc-block-checkout__sidebar { padding: 1.4rem; }
  .wc-block-components-checkout-place-order-button { width: 100%; }
}

/* ============ WEDDINGS PAGE (page ID 15, "Occasions" slug) — premium polish pass ============
   Class-scoped (not nth-child) since this page's structure is stable and each
   section already carries a distinct fh-wed-* class.
   Refinement pass 2: spacing increased +25% from pass-1 baseline per client
   request (reverses the earlier "reduce whitespace" ask for THIS page only). */
body.page-id-15 .content-area { margin-top: 0; margin-bottom: 0; }
body.page-id-15 .entry-content { margin-top: 0; }
body.page-id-15 .entry-content > .fh-wed-hero-slide { margin-top: 0 !important; }

/* Section rhythm (+25% from pass-2's 72px baseline) */
body.page-id-15 .entry-content > .alignfull,
body.page-id-15 .entry-content > h2 { margin-top: 90px !important; margin-bottom: 0 !important; }
body.page-id-15 .entry-content.entry-content > .fh-wed-hero-slide { margin-top: 0 !important; margin-bottom: 0 !important; }
body.page-id-15 .entry-content > h2 { margin-bottom: 2.75rem !important; }
body.page-id-15 .entry-content > .fh-wed-essentials-cta { margin-top: 3.5rem !important; }

/* ---- 1 & 2: Hero ---- single-slide version of the Homepage .fh-hero-slide
   pattern (full-bleed background image + gradient scrim + zoom layer),
   per explicit client request with reference screenshot: same visual
   treatment as the homepage slider, minus the slider mechanics (no
   dots/arrows, one static image only). */
body.page-id-15 .entry-content.entry-content > .fh-wed-hero-slide {
  min-height: 720px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
  position: relative; overflow: hidden;
  background-size: cover !important; background-position: center right !important;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem !important;
}
@media (min-width: 768px) and (max-width: 1024px) { body.page-id-15 .entry-content.entry-content > .fh-wed-hero-slide { min-height: 600px; } }
@media (max-width: 767px) { body.page-id-15 .entry-content.entry-content > .fh-wed-hero-slide { min-height: 540px; } }
body.page-id-15 .fh-wed-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center right;
  transform: scale(1.12); transform-origin: center right;
}
body.page-id-15 .fh-wed-hero-slide > * { position: relative; z-index: 1; margin-left: 0 !important; margin-right: auto !important; }
body.page-id-15 .fh-wed-hero-slide h1 { margin-top: 0 !important; margin-bottom: 2rem !important; font-size: clamp(2.25rem, 5.5vw, 80px) !important; line-height: 1 !important; max-width: none; }
body.page-id-15 .fh-wed-hero-slide .has-small-font-size { margin-bottom: 1.25rem !important; }
body.page-id-15 .fh-wed-hero-slide p:not(.has-small-font-size) { max-width: 520px; font-size: 1.05rem; margin: 0 !important; }
body.page-id-15 .fh-wed-hero-slide .wp-block-buttons { margin-top: 2.25rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-hero-slide .wp-block-button__link { padding: 0.94rem 2.2rem !important; font-size: 1.1rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-hero-slide .wp-block-button__link:hover { transform: translateY(-2px); }
/* ---- 3: Intro + Features ---- */
body.page-id-15 .fh-wed-intro-features { padding-top: 2rem !important; padding-bottom: 2rem !important; }
body.page-id-15 .entry-content > .fh-wed-hero-slide + .fh-wed-intro-features { margin-top: 0 !important; }
body.page-id-15 .fh-wed-intro-heading {
  font-size: clamp(2.3rem, 3.4vw, 3rem) !important; margin-bottom: 1.25rem !important;
  display: block !important;
}
body.page-id-15 .fh-wed-intro-heading::before, body.page-id-15 .fh-wed-intro-heading::after { display: none !important; content: none !important; }
body.page-id-15 .fh-wed-intro-copy { font-size: 1.12rem !important; line-height: 1.85 !important; max-width: 820px; margin-left: auto !important; margin-right: auto !important; margin-bottom: 2.75rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-features.wp-block-columns {
  padding-top: 0 !important; padding-bottom: 0 !important;
  display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 1.75rem !important; align-items: stretch !important;
  max-width: 940px; margin-left: auto !important; margin-right: auto !important;
}
body.page-id-15 .entry-content.entry-content .fh-wed-feature-card {
  background: #fff !important; border-radius: var(--fh-radius) !important; padding: 2rem 1.75rem !important;
  box-sizing: border-box !important; min-height: 168px !important; display: flex !important; flex-direction: column !important; justify-content: center !important;
  box-shadow: 0 10px 28px rgba(5, 31, 21, 0.06) !important; transition: transform 300ms ease, box-shadow 300ms ease;
}
body.page-id-15 .entry-content.entry-content .fh-wed-feature-card:hover { transform: translateY(-6px); box-shadow: 0 18px 38px rgba(5, 31, 21, 0.11) !important; }
body.page-id-15 .fh-wed-feature-card p[class*="fh-ic-"]::before { width: 34px !important; height: 34px !important; margin-bottom: 0.85rem !important; }
body.page-id-15 .fh-wed-feature-card p[class*="fh-ic-"] { line-height: 1.3 !important; font-size: 0.92rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-feature-card p[class*="fh-ic-"] strong { font-weight: 700 !important; font-size: 1.1rem !important; letter-spacing: normal !important; padding-bottom: 0 !important; display: block; margin-bottom: 0.2rem !important; line-height: 1.25 !important; }
@media (max-width: 782px) {
  body.page-id-15 .entry-content.entry-content .fh-wed-features.wp-block-columns { grid-template-columns: 1fr !important; }
  body.page-id-15 .fh-wed-feature-card { min-height: 0 !important; }
}

/* ---- 4: Curated Wedding Essentials ---- */
body.page-id-15 .fh-wed-essentials.wp-block-columns { align-items: stretch !important; }
body.page-id-15 .fh-wed-essentials .wp-block-column {
  background: #fff; border-radius: 18px; padding: 0 0 1.75rem; overflow: hidden;
  box-shadow: 0 10px 26px rgba(5, 31, 21, 0.05); transition: transform 300ms ease, box-shadow 300ms ease;
  display: flex !important; flex-direction: column;
}
body.page-id-15 .fh-wed-essentials .wp-block-column:hover { transform: translateY(-6px); box-shadow: 0 18px 40px rgba(5, 31, 21, 0.1); }
body.page-id-15 .fh-wed-essentials .wp-block-image { position: relative; height: 340px; overflow: hidden; border-radius: 0 !important; margin-bottom: 1.4rem; flex-shrink: 0; }
body.page-id-15 .fh-wed-essentials .wp-block-image img { position: absolute; inset: 0; width: 100% !important; height: 100% !important; border-radius: 0 !important; box-shadow: none !important; object-fit: cover !important; transition: transform 400ms ease; }
body.page-id-15 .fh-wed-essentials .wp-block-column:hover .wp-block-image img { transform: scale(1.07); }
body.page-id-15 .fh-wed-essentials h4 { font-size: 1.15rem !important; font-weight: 700 !important; padding: 0 1.6rem; margin-bottom: 0.6rem !important; }
body.page-id-15 .fh-wed-essentials h4 a { color: inherit; text-decoration: none; }
body.page-id-15 .fh-wed-essentials p.has-fh-text-color { padding: 0 1.6rem; font-weight: 600; color: var(--fh-green) !important; margin-top: auto !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-essentials-cta .wp-block-button__link { padding: 1.15rem 3rem !important; font-size: 1.15rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-essentials-cta .wp-block-button__link:hover { transform: translateY(-2px); }
@media (max-width: 767px) {
  body.page-id-15 .fh-wed-essentials.wp-block-columns { flex-wrap: wrap; }
  body.page-id-15 .fh-wed-essentials .wp-block-column { flex-basis: calc(50% - 0.75rem) !important; min-width: calc(50% - 0.75rem) !important; }
  body.page-id-15 .fh-wed-essentials .wp-block-image { height: 240px; }
}

/* ---- 5: Recent Wedding Decorations gallery (premium portfolio cards) ---- */
body.page-id-15 .fh-wed-gallery {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.25rem;
}
body.page-id-15 .fh-wed-gallery-item { position: relative; overflow: hidden; border-radius: 20px; box-shadow: 0 12px 30px rgba(5, 31, 21, 0.08); transition: transform 300ms ease, box-shadow 300ms ease; }
body.page-id-15 .fh-wed-gallery-item:hover { transform: translateY(-6px); box-shadow: 0 20px 44px rgba(5, 31, 21, 0.14); }
body.page-id-15 .fh-wed-gallery-item .wp-block-image { margin: 0; border-radius: 0 !important; overflow: hidden; }
body.page-id-15 .fh-wed-gallery-item .wp-block-image img {
  width: 100% !important; height: 300px !important; aspect-ratio: auto !important; object-fit: cover !important;
  border-radius: 0 !important; box-shadow: none !important; transition: transform 500ms ease; margin: 0;
}
body.page-id-15 .fh-wed-gallery-item:hover .wp-block-image img { transform: scale(1.08); }
body.page-id-15 .fh-wed-gallery-label {
  position: absolute; left: 0; right: 0; bottom: 0; margin: 0 !important; text-align: left !important;
  padding: 2.5rem 1.5rem 1.25rem !important; box-sizing: border-box;
  background: linear-gradient(to top, rgba(5,31,21,0.88) 0%, rgba(5,31,21,0.35) 60%, transparent 100%);
  color: #fff !important; font-weight: 700 !important; font-size: 1.05rem !important;
  display: flex !important; flex-direction: column !important; gap: 0.3rem;
  opacity: 0; transform: translateY(10px); transition: opacity 300ms ease, transform 300ms ease;
}
body.page-id-15 .fh-wed-gallery-item:hover .fh-wed-gallery-label { opacity: 1; transform: translateY(0); }
body.page-id-15 .fh-wed-gallery-view { font-size: 0.85rem; font-weight: 500; opacity: 0.9; letter-spacing: 0.01em; }
body.page-id-15 .entry-content > .fh-wed-gallery-cta { margin-top: 2.75rem !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-gallery-cta .wp-block-button__link { padding: 1.05rem 2.75rem !important; font-size: 1.1rem !important; box-shadow: 0 8px 20px rgba(1, 92, 44, 0.18); }
body.page-id-15 .entry-content.entry-content .fh-wed-gallery-cta .wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(1, 92, 44, 0.26); }
@media (max-width: 900px) {
  body.page-id-15 .fh-wed-gallery { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; }
  body.page-id-15 .fh-wed-gallery-item .wp-block-image img { height: 220px !important; }
  body.page-id-15 .fh-wed-gallery-label { opacity: 1; transform: translateY(0); padding: 2rem 1.1rem 1rem !important; font-size: 0.95rem !important; }
}

/* ---- 6: Statistics bar ---- */
body.page-id-15 .fh-wed-stats.wp-block-group { padding-top: 3.5rem !important; padding-bottom: 3.5rem !important; }
body.page-id-15 .fh-wed-stats p[class*="fh-ic-"]::before { width: 38px !important; height: 38px !important; margin-bottom: 0.85rem !important; opacity: 0.55; }
body.page-id-15 .entry-content.entry-content .fh-wed-stats p[class*="fh-ic-"] strong { font-weight: 700 !important; font-size: 3rem !important; color: var(--fh-forest) !important; letter-spacing: -0.02em !important; padding-bottom: 0 !important; display: block; margin-bottom: 0.35rem !important; line-height: 1.1 !important; }
body.page-id-15 .fh-wed-stat-label { font-size: 0.85rem; font-weight: 500; color: var(--fh-text); text-transform: none; letter-spacing: 0; }
body.page-id-15 .fh-wed-stats .wp-block-columns { gap: 2.75rem; }
body.page-id-15 .fh-wed-stats .wp-block-column { position: relative; }
@media (min-width: 601px) {
  body.page-id-15 .fh-wed-stats .wp-block-column:not(:first-child)::before {
    content: ""; position: absolute; left: calc(-1.375rem - 1px); top: 10%; bottom: 10%; width: 1px; background: var(--fh-hairline);
  }
}
@media (max-width: 600px) {
  body.page-id-15 .fh-wed-stats .wp-block-columns { flex-wrap: wrap; gap: 1.75rem 1rem; }
  body.page-id-15 .fh-wed-stats .wp-block-column { flex-basis: 50% !important; }
  body.page-id-15 .entry-content.entry-content .fh-wed-stats p[class*="fh-ic-"] strong { font-size: 2.3rem !important; }
}

/* ---- 7: Testimonial ---- */
body.page-id-15 .entry-content.entry-content .fh-wed-testimonial {
  max-width: 840px !important; margin: 90px auto 0 !important; padding: 3.5rem 3.75rem !important;
  box-shadow: 0 22px 50px rgba(5, 31, 21, 0.11) !important; background-color: #FAE3EA !important; position: relative;
  animation: fh-wed-float 7s ease-in-out infinite;
}
@keyframes fh-wed-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@media (prefers-reduced-motion: reduce) {
  body.page-id-15 .fh-wed-testimonial { animation: none; }
}
body.page-id-15 .fh-wed-testimonial-avatar {
  width: 56px; height: 56px; border-radius: 50%; background: var(--fh-forest); color: #fff !important;
  display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.95rem;
  margin: 0 auto 1.25rem; letter-spacing: 0.02em;
}
body.page-id-15 .fh-wed-testimonial-stars { color: var(--fh-coral); font-size: 1.3rem; letter-spacing: 0.2rem; margin-bottom: 1.25rem !important; }
body.page-id-15 .fh-wed-testimonial-quote {
  font-size: 1.5rem !important; font-family: 'Playfair Display', Georgia, serif; line-height: 1.55 !important;
  margin-bottom: 1.5rem !important; position: relative; z-index: 1;
}
body.page-id-15 .fh-wed-testimonial-quote::before, body.page-id-15 .fh-wed-testimonial-quote::after {
  font-family: Georgia, serif; font-size: 2.75rem; color: var(--fh-coral); opacity: 0.5; line-height: 0; vertical-align: -0.4rem;
}
body.page-id-15 .fh-wed-testimonial-quote::before { content: "\201C"; margin-right: 0.15rem; }
body.page-id-15 .fh-wed-testimonial-quote::after { content: "\201D"; margin-left: 0.15rem; }
body.page-id-15 .fh-wed-testimonial-author { font-size: 1.15rem !important; }
body.page-id-15 .fh-wed-testimonial-author strong { color: var(--fh-forest); }
body.page-id-15 .fh-wed-testimonial-meta { display: block; margin-top: 0.4rem; color: var(--fh-text); font-weight: 500; font-size: 0.95rem; }
@media (max-width: 600px) {
  body.page-id-15 .fh-wed-testimonial { padding: 2.25rem 1.5rem !important; }
  body.page-id-15 .fh-wed-testimonial-quote { font-size: 1.15rem !important; }
}

/* ---- 9: Why Couples Choose (trust cards, homepage fh-why-choose language) ---- */
body.page-id-15 .fh-wed-trust-heading { text-align: center; margin-bottom: 2.75rem !important; display: block !important; }
body.page-id-15 .fh-wed-trust-heading::before, body.page-id-15 .fh-wed-trust-heading::after { display: none !important; content: none !important; }
body.page-id-15 .entry-content.entry-content .fh-wed-trust-grid {
  display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 2rem !important; align-items: stretch !important;
}
body.page-id-15 .entry-content.entry-content .fh-wed-trust-card {
  background: #fff !important; border: 1px solid #ECECE8 !important; border-radius: 18px !important; padding: 2rem 1.75rem !important;
  box-shadow: var(--fh-shadow-hover) !important; transition: transform 300ms ease, box-shadow 300ms ease; text-align: center !important;
  display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important;
}
body.page-id-15 .entry-content.entry-content .fh-wed-trust-card:hover { transform: translateY(-7px); box-shadow: 0 20px 46px rgba(0, 0, 0, 0.09) !important; }
body.page-id-15 .fh-wed-trust-card p[class*="fh-ic-"]::before { width: 48px !important; height: 48px !important; margin-bottom: 1.25rem !important; }
body.page-id-15 .fh-wed-trust-card p[class*="fh-ic-"] strong { font-size: 1.25rem !important; font-weight: 700 !important; display: block; margin-bottom: 0.65rem !important; color: var(--fh-forest); white-space: normal !important; }
body.page-id-15 .fh-wed-feature-card p[class*="fh-ic-"] strong { white-space: normal !important; }
body.page-id-15 .fh-wed-trust-card p[class*="fh-ic-"] { font-size: 0.92rem !important; font-weight: 400 !important; line-height: 1.65 !important; color: var(--fh-text) !important; margin: 0 !important; }
@media (max-width: 900px) {
  body.page-id-15 .entry-content.entry-content .fh-wed-trust-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  body.page-id-15 .entry-content.entry-content .fh-wed-trust-grid { grid-template-columns: 1fr !important; }
}

/* ---- 8: Footer transition divider ---- */
body.page-id-15 .fh-wed-footer-divider {
  display: flex; justify-content: center; align-items: center;
  max-width: 1560px; margin: 0 auto; padding: 3.5rem 2rem 3rem; color: var(--fh-hairline);
}
body.page-id-15 .fh-wed-footer-divider svg { width: 200px; height: 24px; color: rgba(1, 92, 44, 0.35); }

/* ---- New icon glyphs for trust cards (custom design + on-time) ---- */
p.fh-ic-trust-custom::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3c1 3-1 4-1 6a3 3 0 1 0 3 3c2 0 3-2 6-1-1 4-5 7-9 7a8 8 0 1 1 1-15z'/><path d='M9 15l1.5-1.5'/></svg>"); }
p.fh-ic-trust-time::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3.5 2'/></svg>"); }

/* ---- Fade-up on scroll (small elements only, per documented lesson
   above: whole-section reveal repeatedly broke page captures) ---- */
body.page-id-15 .fh-wed-feature-card,
body.page-id-15 .fh-wed-essentials .wp-block-column,
body.page-id-15 .fh-wed-gallery-item,
body.page-id-15 .fh-wed-trust-card {
  opacity: 0; transform: translateY(20px);
}
body.page-id-15 .fh-wed-feature-card.fh-in-view,
body.page-id-15 .fh-wed-essentials .wp-block-column.fh-in-view,
body.page-id-15 .fh-wed-gallery-item.fh-in-view,
body.page-id-15 .fh-wed-trust-card.fh-in-view {
  opacity: 1; transform: translateY(0); transition: opacity 600ms ease, transform 600ms ease, box-shadow 300ms ease;
}

/* ============ WHOLESALE (page 16) & CORPORATE (page 17) HERO ============
   Same single-slide full-bleed hero pattern as the Weddings page and the
   Homepage slider (per explicit "make same changes as done for Occasions"
   request). Shared ruleset scoped by page ID, class name kept per-page
   for markup clarity. */
body.page-id-16 .content-area, body.page-id-17 .content-area { margin-top: 0; }
body.page-id-16 .entry-content, body.page-id-17 .entry-content { margin-top: 0; }
body.page-id-16 .entry-content > .fh-wholesale-hero-slide,
body.page-id-17 .entry-content > .fh-corp-hero-slide { margin-top: 0 !important; }
body.page-id-16 .entry-content.entry-content > .fh-wholesale-hero-slide,
body.page-id-17 .entry-content.entry-content > .fh-corp-hero-slide { margin-top: 0 !important; margin-bottom: 0 !important; }

body.page-id-16 .entry-content.entry-content > .fh-wholesale-hero-slide,
body.page-id-17 .entry-content.entry-content > .fh-corp-hero-slide {
  min-height: 720px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
  position: relative; overflow: hidden;
  background-size: cover !important; background-position: center right !important;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem !important;
}
@media (min-width: 768px) and (max-width: 1024px) {
  body.page-id-16 .entry-content.entry-content > .fh-wholesale-hero-slide,
  body.page-id-17 .entry-content.entry-content > .fh-corp-hero-slide { min-height: 600px; }
}
@media (max-width: 767px) {
  body.page-id-16 .entry-content.entry-content > .fh-wholesale-hero-slide,
  body.page-id-17 .entry-content.entry-content > .fh-corp-hero-slide { min-height: 540px; }
}
body.page-id-16 .fh-wholesale-hero-slide::before,
body.page-id-17 .fh-corp-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center right;
  transform: scale(1.12); transform-origin: center right;
}
body.page-id-16 .fh-wholesale-hero-slide > *,
body.page-id-17 .fh-corp-hero-slide > * { position: relative; z-index: 1; margin-left: 0 !important; margin-right: auto !important; }
body.page-id-16 .fh-wholesale-hero-slide h1,
body.page-id-17 .fh-corp-hero-slide h1 { margin-top: 0 !important; margin-bottom: 2rem !important; font-size: clamp(2.25rem, 4.4vw, 64px) !important; line-height: 1.08 !important; max-width: 680px !important; }
body.page-id-16 .fh-wholesale-hero-slide .has-small-font-size,
body.page-id-17 .fh-corp-hero-slide .has-small-font-size { margin-bottom: 1.25rem !important; }
body.page-id-16 .fh-wholesale-hero-slide p:not(.has-small-font-size),
body.page-id-17 .fh-corp-hero-slide p:not(.has-small-font-size) { max-width: 520px; font-size: 1.05rem; margin: 0 !important; }
body.page-id-16 .fh-wholesale-hero-slide .wp-block-buttons,
body.page-id-17 .fh-corp-hero-slide .wp-block-buttons { margin-top: 2.25rem !important; }
body.page-id-16 .entry-content.entry-content .fh-wholesale-hero-slide .wp-block-button__link,
body.page-id-17 .entry-content.entry-content .fh-corp-hero-slide .wp-block-button__link { padding: 0.94rem 2.2rem !important; font-size: 1.1rem !important; }
body.page-id-16 .entry-content.entry-content .fh-wholesale-hero-slide .wp-block-button__link:hover,
body.page-id-17 .entry-content.entry-content .fh-corp-hero-slide .wp-block-button__link:hover { transform: translateY(-2px); }
body.page-id-16 .entry-content > .fh-wholesale-hero-slide + *,
body.page-id-17 .entry-content > .fh-corp-hero-slide + * { margin-top: 0 !important; }

/* ============ ABOUT US PAGE (page ID 18) — premium luxury-brand redesign ============ */

/* New icon glyphs (gem, heart, bouquet, toran, car, event) */
p.fh-ic-gem::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M6 3h12l3 6-9 12L3 9z'/><path d='M3 9h18M9 3l-2.5 6L12 21l5.5-12L15 3'/></svg>"); }
p.fh-ic-heart::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 20.5S3.5 15 3.5 8.8C3.5 5.6 5.9 3.5 8.5 3.5c1.8 0 3.3 1 3.5 2.7 0.2-1.7 1.7-2.7 3.5-2.7 2.6 0 5 2.1 5 5.3 0 6.2-8.5 11.7-8.5 11.7z'/></svg>"); }
p.fh-ic-bouquet::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='7' r='3'/><circle cx='7' cy='10' r='2.3'/><circle cx='17' cy='10' r='2.3'/><path d='M12 10v10M9 21c0-2.5 3-3 3-3M15 21c0-2.5-3-3-3-3'/></svg>"); }
p.fh-ic-toran::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M3 6c4.5 5.5 13.5 5.5 18 0'/><path d='M7 6.5v4M12 6.8v6M17 6.5v4'/><circle cx='7' cy='11' r='1.1'/><circle cx='12' cy='13.3' r='1.1'/><circle cx='17' cy='11' r='1.1'/></svg>"); }
p.fh-ic-car::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 16l1.3-4.5A2 2 0 0 1 7.2 10h9.6a2 2 0 0 1 1.9 1.5L20 16'/><rect x='3' y='16' width='18' height='4' rx='1.2'/><circle cx='7.5' cy='20' r='1.2'/><circle cx='16.5' cy='20' r='1.2'/><circle cx='12' cy='8' r='1.6'/><path d='M12 6.4V4'/></svg>"); }
p.fh-ic-event::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z'/><path d='M4.5 17.5l.6 1.7 1.7.6-1.7.6-.6 1.7-.6-1.7-1.7-.6 1.7-.6z'/><path d='M18.5 15.5l.5 1.4 1.4.5-1.4.5-.5 1.4-.5-1.4-1.4-.5 1.4-.5z'/></svg>"); }

body.page-id-18 .content-area { margin-top: 0; }
body.page-id-18 .entry-content { margin-top: 0; }
body.page-id-18 .entry-content.entry-content > .fh-about-hero-slide { margin-top: 0 !important; margin-bottom: 0 !important; }
body.page-id-18 .entry-content > .alignfull,
body.page-id-18 .entry-content > h2 { margin-top: 110px !important; margin-bottom: 0 !important; }
body.page-id-18 .entry-content > h2 { margin-bottom: 1rem !important; text-align: center; }
body.page-id-18 .entry-content > .fh-about-story { margin-top: 110px !important; }
body.page-id-18 .entry-content > .fh-about-stats-heading,
body.page-id-18 .entry-content > .fh-about-offer-heading { margin-top: 110px !important; }
body.page-id-18 .entry-content.entry-content .fh-about-card-grid { margin-top: 2.75rem !important; }

/* ---- 1: Hero ---- single-slide full-bleed pattern, matching
   Wholesale/Corporate exactly (per explicit side-by-side screenshot
   comparison request — About Us hero must look identical in
   technique: full-bleed photo, no boxed/inset feel, no visible
   top gap). Reverts the earlier boxed real-<img> experiment. */
body.page-id-18 .entry-content > .fh-about-hero-slide { margin-top: 0 !important; }
body.page-id-18 .entry-content.entry-content > .fh-about-hero-slide { margin-top: 0 !important; margin-bottom: 0 !important; }

body.page-id-18 .entry-content.entry-content > .fh-about-hero-slide {
  min-height: 720px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
  position: relative; overflow: hidden;
  background-size: cover !important; background-position: center 60% !important;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem !important;
}
@media (min-width: 768px) and (max-width: 1024px) { body.page-id-18 .entry-content.entry-content > .fh-about-hero-slide { min-height: 600px; } }
@media (max-width: 767px) { body.page-id-18 .entry-content.entry-content > .fh-about-hero-slide { min-height: 540px; } }
body.page-id-18 .fh-about-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center 60%;
  transform: scale(1.08); transform-origin: center 60%;
}
body.page-id-18 .fh-about-hero-slide > * { position: relative; z-index: 1; margin-left: 0 !important; margin-right: auto !important; }
body.page-id-18 .fh-about-hero-slide h1 { margin-top: 0 !important; margin-bottom: 2rem !important; font-size: clamp(2.25rem, 4.4vw, 64px) !important; line-height: 1.08 !important; max-width: 680px !important; }
body.page-id-18 .fh-about-hero-slide .has-small-font-size { margin-bottom: 1.25rem !important; }
body.page-id-18 .entry-content.entry-content .fh-about-hero-slide p:not(.has-small-font-size) { max-width: 520px !important; font-size: 1.05rem; margin: 0 !important; }
body.page-id-18 .fh-about-hero-slide .wp-block-buttons { margin-top: 2.25rem !important; }
body.page-id-18 .entry-content.entry-content .fh-about-hero-slide .wp-block-button__link { padding: 0.94rem 2.2rem !important; font-size: 1.1rem !important; }
body.page-id-18 .entry-content.entry-content .fh-about-hero-slide .wp-block-button__link:hover { transform: translateY(-2px); }
body.page-id-18 .entry-content > .fh-about-hero-slide + * { margin-top: 0 !important; }

/* ---- 2: Our Story ---- */
body.page-id-18 .entry-content.entry-content .fh-about-story { gap: 64px; align-items: center; }
body.page-id-18 .fh-about-story-label { letter-spacing: 0.1em; margin-bottom: 1rem !important; }
body.page-id-18 .fh-about-story-heading { font-size: clamp(2.3rem, 3.4vw, 2.95rem) !important; margin-bottom: 1.5rem !important; }
body.page-id-18 .fh-about-story-copy p:not(.has-small-font-size) { font-size: 1.05rem; line-height: 1.9; margin-bottom: 1.25rem !important; }
body.page-id-18 .entry-content.entry-content .fh-about-story-accent {
  border-radius: 18px; padding: 1.5rem 1.75rem !important; margin: 0.5rem 0 2rem !important; border-left: 3px solid var(--fh-coral);
  background-color: #FCF1F5 !important; box-shadow: 0 10px 26px rgba(5, 31, 21, 0.06);
}
body.page-id-18 .fh-about-story-accent p { margin: 0 !important; font-size: 1.05rem; line-height: 1.6; }
body.page-id-18 .fh-about-timeline { display: flex; flex-wrap: wrap; align-items: center; gap: 0.9rem 0.75rem; }
body.page-id-18 .fh-about-timeline-step {
  display: flex !important; align-items: center; gap: 0.5rem; margin: 0 !important; font-size: 0.88rem; font-weight: 600; color: var(--fh-forest);
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 999px; padding: 0.55rem 1.1rem 0.55rem 0.6rem; white-space: nowrap;
}
body.page-id-18 .fh-about-timeline-step::before {
  content: ""; width: 20px; height: 20px; border-radius: 50%; background: rgba(1,92,44,0.08); flex-shrink: 0;
  background-repeat: no-repeat; background-position: center; background-size: 12px 12px;
}
body.page-id-18 .fh-ic-timeline-start::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round'><path d='M12 21s-7-5-7-11a7 7 0 0 1 14 0c0 6-7 11-7 11z'/><circle cx='12' cy='10' r='2.2'/></svg>"); }
body.page-id-18 .fh-ic-timeline-wedding::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round'><circle cx='8.5' cy='9' r='3'/><circle cx='15.5' cy='9' r='3'/></svg>"); }
body.page-id-18 .fh-ic-timeline-corp::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round'><rect x='4' y='4' width='16' height='17'/><path d='M9 21v-4h6v4M8 8h1M8 12h1M15 8h1M15 12h1'/></svg>"); }
body.page-id-18 .fh-ic-timeline-trust::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2' stroke-linecap='round'><path d='M12 3l7 3v5c0 5-3.5 8-7 10-3.5-2-7-5-7-10V6z'/><path d='M9 12l2 2 4-4'/></svg>"); }
body.page-id-18 .fh-about-timeline-arrow { margin: 0 !important; color: var(--fh-coral); font-size: 0.95rem; }
body.page-id-18 .fh-about-story-media .wp-block-image {
  border-radius: 22px !important; overflow: hidden; box-shadow: 0 22px 50px rgba(5, 31, 21, 0.12) !important;
  animation: fh-about-float 6s ease-in-out infinite;
}
body.page-id-18 .fh-about-story-media .wp-block-image img { border-radius: 22px !important; }
@keyframes fh-about-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { body.page-id-18 .fh-about-story-media .wp-block-image { animation: none; } }
@media (max-width: 900px) {
  body.page-id-18 .entry-content.entry-content .fh-about-story { flex-wrap: wrap; gap: 32px; }
  body.page-id-18 .fh-about-timeline { justify-content: center; }
}

/* ---- Shared card grid + card component (Why Flower House / Why Thousands Choose / What We Offer / Stats) ---- */
body.page-id-18 .entry-content.entry-content .fh-about-card-grid { align-items: stretch !important; gap: 2rem !important; max-width: 1300px !important; }
body.page-id-18 .fh-about-grid-4.wp-block-columns { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; }
body.page-id-18 .fh-about-grid-6.wp-block-columns { display: grid !important; grid-template-columns: repeat(6, 1fr) !important; }
body.page-id-18 .entry-content.entry-content .fh-about-card,
body.page-id-18 .entry-content.entry-content .fh-about-stat-card {
  background: #fff !important; border: 1px solid #ECECE8 !important; border-radius: 22px !important; padding: 2.5rem 2rem !important;
  box-shadow: 0 10px 28px rgba(5, 31, 21, 0.05) !important; transition: transform 300ms ease, box-shadow 300ms ease;
  display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; text-align: center !important;
}
body.page-id-18 .entry-content.entry-content .fh-about-card:hover,
body.page-id-18 .entry-content.entry-content .fh-about-stat-card:hover { transform: translateY(-8px); box-shadow: 0 18px 42px rgba(5, 31, 21, 0.1) !important; }
body.page-id-18 .fh-about-card p[class*="fh-ic-"]::before,
body.page-id-18 .fh-about-stat-card p[class*="fh-ic-"]::before { width: 48px !important; height: 48px !important; margin: 0 auto 1.3rem !important; }
body.page-id-18 .fh-about-card p[class*="fh-ic-"] strong,
body.page-id-18 .fh-about-stat-card p[class*="fh-ic-"] strong { font-size: 1.05rem !important; font-weight: 700 !important; display: block; margin-bottom: 0.65rem !important; color: var(--fh-forest); white-space: normal !important; }
body.page-id-18 .fh-about-card p[class*="fh-ic-"],
body.page-id-18 .fh-about-stat-card p[class*="fh-ic-"] { font-size: 0.9rem !important; font-weight: 400 !important; line-height: 1.6 !important; color: var(--fh-text) !important; margin: 0 !important; white-space: normal !important; }

body.page-id-18 .fh-about-why-heading { text-align: center; }
body.page-id-18 .fh-about-why-subtitle { text-align: center !important; font-size: 1.05rem !important; margin: 0 !important; max-width: 560px; margin-left: auto !important; margin-right: auto !important; }
body.page-id-18 .fh-about-brand-heading { text-align: center; margin-bottom: 0 !important; }

/* Stats: bigger number variant */
body.page-id-18 .fh-about-stat-card p[class*="fh-ic-"]::before { width: 40px !important; height: 40px !important; margin: 0 auto 1rem !important; opacity: 0.6; }
body.page-id-18 .fh-about-stat-card p[class*="fh-ic-"] strong { font-size: 2.7rem !important; font-weight: 700 !important; letter-spacing: -0.02em; margin-bottom: 0.4rem !important; }

/* Brand check-cards: icon + heading only, no description line, taller/more breathing room */
body.page-id-18 .entry-content.entry-content .fh-about-check-card { padding: 2.75rem 1.75rem !important; }
body.page-id-18 .fh-about-check-card p[class*="fh-ic-"] strong { margin-bottom: 0 !important; font-size: 1.05rem !important; }

/* What We Offer: 6 cards read narrow/compressed — extra vertical padding only, layout unchanged */
body.page-id-18 .entry-content.entry-content .fh-about-grid-6 .fh-about-card { padding-top: 3.375rem !important; padding-bottom: 3.375rem !important; }

@media (max-width: 1100px) {
  body.page-id-18 .fh-about-grid-4.wp-block-columns { grid-template-columns: repeat(2, 1fr) !important; }
  body.page-id-18 .fh-about-grid-6.wp-block-columns { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 600px) {
  body.page-id-18 .fh-about-grid-4.wp-block-columns,
  body.page-id-18 .fh-about-grid-6.wp-block-columns { grid-template-columns: 1fr !important; }
}

/* ---- 7: Final CTA ---- */
body.page-id-18 .entry-content.entry-content > .fh-about-cta {
  background-color: #0F5C2E !important; padding: 6rem 2rem !important; text-align: center; position: relative; overflow: hidden;
}
body.page-id-18 .fh-about-cta-buttons {
  position: relative;
}
body.page-id-18 .fh-about-cta-buttons::before {
  content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 480px; height: 220px; z-index: -1;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0) 70%); pointer-events: none;
}
body.page-id-18 .fh-about-cta::before {
  content: ""; position: absolute; right: -60px; top: -60px; width: 380px; height: 380px; opacity: 0.05; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%23FFFFFF' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat; background-size: contain;
}
body.page-id-18 .fh-about-cta > * { position: relative; z-index: 1; }
body.page-id-18 .fh-about-cta-heading { font-size: clamp(2.3rem, 3.8vw, 3.25rem) !important; max-width: 780px; margin-left: auto !important; margin-right: auto !important; margin-bottom: 1.25rem !important; }
body.page-id-18 .fh-about-cta-copy { max-width: 540px; margin-left: auto !important; margin-right: auto !important; font-size: 1.1rem !important; line-height: 1.75 !important; opacity: 0.9; margin-bottom: 2.25rem !important; }
body.page-id-18 .entry-content.entry-content .fh-about-cta-buttons .wp-block-button__link { padding: 1.05rem 2.5rem !important; font-size: 1.1rem !important; transition: transform 250ms ease, box-shadow 250ms ease, background 250ms ease; }
body.page-id-18 .entry-content.entry-content .fh-about-cta-buttons .wp-block-button__link:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 10px 24px rgba(0,0,0,0.2); }
body.page-id-18 .fh-about-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link {
  border: 1.5px solid rgba(255,255,255,0.7) !important; background: transparent !important; color: #fff !important;
}
body.page-id-18 .fh-about-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,0.1) !important; border-color: #fff !important; }

/* ---- Fade-up on scroll (cards + timeline only) ---- */
body.page-id-18 .fh-about-card,
body.page-id-18 .fh-about-timeline-step {
  opacity: 0; transform: translateY(20px);
}
body.page-id-18 .fh-about-card.fh-in-view,
body.page-id-18 .fh-about-timeline-step.fh-in-view {
  opacity: 1; transform: translateY(0); transition: opacity 600ms ease, transform 600ms ease, box-shadow 300ms ease;
}

/* ============ CONTACT US PAGE (page ID 19) — premium luxury-brand redesign ============ */
body.page-id-19 .content-area { margin-top: 0; }
body.page-id-19 .entry-content { margin-top: 0; }
body.page-id-19 .entry-content > .fh-contact-hero-slide { margin-top: 0 !important; }
body.page-id-19 .entry-content.entry-content > .fh-contact-hero-slide { margin-top: 0 !important; margin-bottom: 0 !important; }
body.page-id-19 .entry-content > .alignfull,
body.page-id-19 .entry-content > h2 { margin-top: 100px !important; margin-bottom: 0 !important; }
body.page-id-19 .entry-content > h2 { margin-bottom: 1rem !important; text-align: center; }
body.page-id-19 .entry-content > .fh-contact-hero-slide + * { margin-top: 0 !important; }
body.page-id-19 .entry-content > .fh-contact-trust + * { margin-top: 100px !important; }
body.page-id-19 .entry-content > .fh-contact-map-heading { margin-top: 100px !important; }

/* ---- Hero: identical technique to About/Corporate (full-bleed + gradient) ---- */
body.page-id-19 .entry-content.entry-content > .fh-contact-hero-slide {
  min-height: 680px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
  position: relative; overflow: hidden;
  background-size: cover !important; background-position: center 53% !important;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem !important;
}
@media (min-width: 768px) and (max-width: 1024px) { body.page-id-19 .entry-content.entry-content > .fh-contact-hero-slide { min-height: 560px; } }
@media (max-width: 767px) { body.page-id-19 .entry-content.entry-content > .fh-contact-hero-slide { min-height: 520px; } }
body.page-id-19 .fh-contact-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center 53%;
  transform: scale(1.02); transform-origin: center 53%;
}
body.page-id-19 .fh-contact-hero-slide::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 7%; z-index: 0; pointer-events: none;
  background: linear-gradient(to right, transparent, rgba(250, 249, 246, 0.4));
}
body.page-id-19 .fh-contact-hero-slide > * { position: relative; z-index: 1; margin-left: 0 !important; margin-right: auto !important; }
body.page-id-19 .fh-contact-hero-slide h1 { margin-top: 0 !important; margin-bottom: 1.5rem !important; font-size: clamp(2.25rem, 4vw, 58px) !important; line-height: 1.1 !important; max-width: 620px !important; }
body.page-id-19 .fh-contact-hero-slide .has-small-font-size { margin-bottom: 1.25rem !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-hero-slide p:not(.has-small-font-size) { max-width: 480px !important; font-size: 1.05rem; line-height: 1.7; margin: 0 !important; }
body.page-id-19 .fh-contact-hero-buttons { margin-top: 2.25rem !important; display: flex !important; gap: 1rem; }
body.page-id-19 .entry-content.entry-content .fh-contact-hero-buttons .wp-block-button__link { padding: 0.94rem 2.2rem !important; font-size: 1.05rem !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-hero-buttons .wp-block-button__link:hover { transform: translateY(-2px); }
@media (max-width: 640px) { body.page-id-19 .fh-contact-hero-buttons { flex-wrap: wrap; } }

/* ---- Trust strip ---- */
body.page-id-19 .fh-contact-trust { padding: 1.75rem 2rem !important; }
body.page-id-19 .fh-contact-trust-row { max-width: 1200px !important; margin: 0 auto !important; gap: 1rem !important; }
body.page-id-19 .fh-contact-trust-row p[class*="fh-ic-"],
body.page-id-19 .fh-contact-trust-row p[class*="fh-ci-"] { text-align: center !important; padding-left: 0 !important; font-weight: 600; font-size: 0.92rem; color: var(--fh-forest); }
body.page-id-19 .fh-contact-trust-row p[class*="fh-ic-"]::before,
body.page-id-19 .fh-contact-trust-row p[class*="fh-ci-"]::before { position: static; display: block; width: 30px; height: 30px; margin: 0 auto 0.6rem; }

/* ---- Contact info + form main row ---- */
body.page-id-19 .entry-content.entry-content .fh-contact-main-row { gap: 3.5rem !important; align-items: stretch !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-card-grid { display: grid !important; grid-template-columns: repeat(2, 1fr) !important; gap: 1.25rem !important; margin: 1.75rem 0 !important; align-items: stretch !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card-grid { gap: 1rem !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-card {
  background: #fff !important; border: 1px solid #ECECE8 !important; border-radius: 18px !important; padding: 2rem 1.75rem !important;
  box-shadow: 0 10px 24px rgba(5, 31, 21, 0.05) !important; transition: transform 250ms ease, box-shadow 250ms ease;
  display: flex !important; flex-direction: column !important; justify-content: center !important; box-sizing: border-box;
}
body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card { min-height: 268px !important; justify-content: flex-start !important; padding: 1.85rem 1.6rem !important; }
@media (max-width: 767px) {
  body.page-id-19 .entry-content.entry-content .fh-contact-main-row,
  body.page-id-19 .entry-content.entry-content .fh-contact-secondary-row,
  body.page-id-19 .entry-content.entry-content .fh-contact-map-tags {
    grid-template-columns: 1fr !important;
    display: grid !important;
    row-gap: 1.5rem !important;
  }
  body.page-id-19 .entry-content.entry-content .fh-contact-main-row > .wp-block-column,
  body.page-id-19 .entry-content.entry-content .fh-contact-secondary-row > .wp-block-column {
    width: 100% !important; flex-basis: 100% !important;
  }
  body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card { min-height: 0 !important; }
}
body.page-id-19 .entry-content.entry-content .fh-contact-card:hover { transform: translateY(-4px); box-shadow: 0 18px 38px rgba(5, 31, 21, 0.1) !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card p[class*="fh-ci-"] {
  padding-left: 0 !important; text-align: left !important; margin: 0 !important;
  font-size: 0.82rem; line-height: 1.6; color: var(--fh-text); overflow-wrap: break-word; word-break: break-word;
}
body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card p[class*="fh-ci-"]::before {
  position: static !important; left: auto !important; top: auto !important; display: block !important;
  width: 24px !important; height: 24px !important; margin: 0 0 0.8rem 0 !important;
}
body.page-id-19 .entry-content.entry-content .fh-contact-info-col .fh-contact-card p[class*="fh-ci-"] strong {
  display: block !important; font-size: 1.02rem; font-weight: 700 !important; line-height: 1.3;
  margin-bottom: 0.45rem; letter-spacing: 0.005em; color: var(--fh-forest);
}
body.page-id-19 .fh-contact-card p[class*="fh-ci-"] a { color: var(--fh-green); text-decoration: none; }
body.page-id-19 .fh-contact-card p[class*="fh-ci-"] a:hover { text-decoration: underline; }
body.page-id-19 .entry-content.entry-content .fh-contact-directions .wp-block-button__link {
  border: 1.5px solid var(--fh-green) !important; padding: 0.9rem 2rem !important; font-size: 1rem !important; width: 100%; text-align: center; box-sizing: border-box;
}
body.page-id-19 .entry-content.entry-content .fh-contact-directions .wp-block-button__link:hover { background: var(--fh-green) !important; color: #fff !important; transform: translateY(-2px); }

/* ---- Form card ---- */
body.page-id-19 .entry-content.entry-content .fh-contact-form-card {
  border-radius: 24px !important; box-shadow: 0 26px 64px rgba(5, 31, 21, 0.13) !important; padding: 2.75rem !important; height: 100%; box-sizing: border-box;
}
body.page-id-19 .fh-contact-form .kadence-blocks-form-field { margin-bottom: 1.45rem; }
body.page-id-19 .fh-contact-form label { display: block; font-weight: 600; font-size: 0.85rem; color: var(--fh-forest); margin-bottom: 0.4rem; letter-spacing: 0.01em; }
body.page-id-19 .fh-contact-form label .required { color: var(--fh-coral); margin-left: 0.2rem; }
body.page-id-19 .fh-contact-form input.kb-field, body.page-id-19 .fh-contact-form textarea.kb-field {
  width: 100%; box-sizing: border-box; height: 52px; border-radius: 13px; background: var(--fh-cream);
  border: 1px solid rgba(5, 31, 21, 0.08); padding: 0 1.3rem; font-size: 0.95rem; color: var(--fh-forest);
  transition: border-color 250ms ease, box-shadow 250ms ease, background 250ms ease; font-family: inherit;
}
body.page-id-19 .fh-contact-form input.kb-field::placeholder, body.page-id-19 .fh-contact-form textarea.kb-field::placeholder { color: rgba(5, 31, 21, 0.45); }
body.page-id-19 .fh-contact-form textarea.kb-field { height: auto; min-height: 140px; padding: 0.9rem 1.1rem; resize: vertical; }
body.page-id-19 .fh-contact-form input.kb-field:focus, body.page-id-19 .fh-contact-form textarea.kb-field:focus {
  outline: none; border-color: var(--fh-green); background: #fff; box-shadow: 0 0 0 3px rgba(1, 92, 44, 0.1);
}
body.page-id-19 .fh-contact-form .kb-forms-submit {
  background: var(--fh-green) !important; color: #fff !important; border: 0; border-radius: 999px; padding: 1.15rem 2.75rem;
  font-size: 1.08rem; font-weight: 600; cursor: pointer; transition: transform 250ms ease, box-shadow 250ms ease, background 250ms ease;
  box-shadow: 0 8px 20px rgba(1, 92, 44, 0.18); width: 100%;
}
body.page-id-19 .fh-contact-form .kb-forms-submit:hover { background: var(--fh-green-dark) !important; transform: translateY(-3px) scale(1.015); box-shadow: 0 14px 30px rgba(1, 92, 44, 0.28); }
body.page-id-19 .fh-contact-form-note { text-align: center; margin-top: 1rem !important; }
@media (max-width: 640px) { body.page-id-19 .entry-content.entry-content .fh-contact-form-card { padding: 1.75rem; } }

/* ---- Secondary row: hours + help ---- */
body.page-id-19 .entry-content.entry-content .fh-contact-secondary-row { gap: 2rem !important; align-items: stretch !important; margin-top: 2rem !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-hours-card,
body.page-id-19 .entry-content.entry-content .fh-contact-help-card {
  border-radius: 22px !important; padding: 2.25rem !important; height: 100%; box-sizing: border-box;
  box-shadow: 0 10px 26px rgba(5, 31, 21, 0.05) !important;
}
body.page-id-19 .fh-contact-hours-card h3 { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1.25rem !important; }
body.page-id-19 .fh-contact-hours-card h3::before {
  content: ""; width: 26px; height: 26px; flex-shrink: 0;
  background-size: contain; background-repeat: no-repeat; background-position: center;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3.5 2'/></svg>");
}
body.page-id-19 .fh-contact-hours-list { display: grid; grid-template-columns: 1fr auto; row-gap: 0.65rem; column-gap: 1rem; }
body.page-id-19 .fh-contact-hours-list strong { font-weight: 600; color: var(--fh-forest); }
body.page-id-19 .fh-contact-hours-list span { color: var(--fh-text); }
body.page-id-19 .fh-contact-badge {
  display: inline-flex !important; align-items: center; gap: 0.55rem; margin-top: 1.5rem !important;
  background: rgba(1, 92, 44, 0.08); color: var(--fh-green);
  padding: 0.65rem 1.35rem; border-radius: 999px; font-size: 0.85rem; font-weight: 600;
  border: 1px solid rgba(1, 92, 44, 0.14); transition: background 250ms ease, transform 250ms ease;
}
body.page-id-19 .fh-contact-badge:hover { background: rgba(1, 92, 44, 0.12); transform: translateY(-2px); }
body.page-id-19 .fh-contact-badge::before {
  content: ""; width: 16px; height: 16px; flex-shrink: 0; background-size: contain; background-repeat: no-repeat;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='2.75' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
}
body.page-id-19 .fh-contact-help-card h3 { margin-bottom: 1.25rem !important; }
body.page-id-19 .fh-contact-help-item { margin-bottom: 0.9rem !important; }
body.page-id-19 .fh-contact-help-item a { color: var(--fh-forest); text-decoration: none; font-weight: 600; }
body.page-id-19 .fh-contact-help-item a:hover { color: var(--fh-green); }

/* ---- Map ---- */
body.page-id-19 .fh-contact-map-heading { text-align: center; }
body.page-id-19 .fh-contact-map-wrap {
  border-radius: 28px !important; overflow: hidden; box-shadow: 0 24px 60px rgba(5, 31, 21, 0.13) !important; line-height: 0;
  margin-top: 2.25rem !important; transition: box-shadow 300ms ease;
}
body.page-id-19 .fh-contact-map-wrap:hover { box-shadow: 0 28px 68px rgba(5, 31, 21, 0.16) !important; }
body.page-id-19 .fh-contact-map { width: 100%; height: 440px; border: 0; display: block; }
body.page-id-19 .entry-content.entry-content .fh-contact-map-tags { max-width: 700px !important; margin: 1.75rem auto 0 !important; gap: 1rem !important; }
body.page-id-19 .fh-contact-map-tags p { text-align: center; font-weight: 600; font-size: 0.92rem; color: var(--fh-forest); margin: 0 !important; }

/* ---- How Can We Help (4-card grid) ---- */
body.page-id-19 .fh-contact-help-grid-section { padding: 3.5rem 2rem !important; }
body.page-id-19 .fh-contact-help-grid-heading { text-align: center; }
body.page-id-19 .entry-content.entry-content .fh-contact-help-grid-section .fh-contact-card-grid.fh-contact-grid-4 {
  grid-template-columns: repeat(4, 1fr) !important; max-width: 1300px !important; margin: 2.25rem auto 0 !important;
}
body.page-id-19 .entry-content.entry-content .fh-contact-help-grid-section .fh-contact-card {
  padding: 2.5rem 2rem !important; text-align: center !important; align-items: center !important;
  min-height: 250px; box-shadow: 0 8px 20px rgba(5, 31, 21, 0.045) !important;
}
body.page-id-19 .entry-content.entry-content .fh-contact-help-grid-section .fh-contact-card:hover {
  transform: translateY(-6px) !important; box-shadow: 0 20px 42px rgba(5, 31, 21, 0.1) !important;
}
body.page-id-19 .fh-contact-help-grid-section .fh-contact-card p[class*="fh-ic-"] { padding-left: 0 !important; text-align: center !important; font-size: 0.92rem; line-height: 1.6; color: var(--fh-text-light); }
body.page-id-19 .fh-contact-help-grid-section .fh-contact-card p[class*="fh-ic-"]::before { position: static; display: block; width: 50px; height: 50px; margin: 0 auto 1.2rem; }
body.page-id-19 .fh-contact-help-grid-section .fh-contact-card p[class*="fh-ic-"] strong { display: block; margin-bottom: 0.6rem; font-size: 1.12rem; font-weight: 700; color: var(--fh-forest); }
@media (max-width: 1100px) {
  body.page-id-19 .entry-content.entry-content .fh-contact-help-grid-section .fh-contact-card-grid.fh-contact-grid-4 { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 600px) {
  body.page-id-19 .entry-content.entry-content .fh-contact-card-grid { grid-template-columns: 1fr !important; }
}

/* ---- Final CTA ---- */
body.page-id-19 .entry-content.entry-content > .fh-contact-cta {
  background-color: #0F5C2E !important; padding: 6rem 2rem !important; text-align: center; position: relative; overflow: hidden;
}
body.page-id-19 .fh-contact-cta::before {
  content: ""; position: absolute; left: -60px; bottom: -60px; width: 380px; height: 380px; opacity: 0.05; pointer-events: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%23FFFFFF' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat; background-size: contain;
}
body.page-id-19 .fh-contact-cta::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,0.07), transparent 62%),
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='white' stroke-opacity='0.07' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat, no-repeat;
  background-position: center, right -70px top -70px;
  background-size: cover, 340px 340px;
}
body.page-id-19 .fh-contact-cta > * { position: relative; z-index: 1; }
body.page-id-19 .fh-contact-cta-heading { font-size: clamp(2.2rem, 3.6vw, 3rem) !important; max-width: 760px; margin-left: auto !important; margin-right: auto !important; margin-bottom: 1.25rem !important; }
body.page-id-19 .fh-contact-cta-copy { max-width: 560px; margin-left: auto !important; margin-right: auto !important; font-size: 1.1rem !important; line-height: 1.75 !important; opacity: 0.9; margin-bottom: 2.25rem !important; }
body.page-id-19 .entry-content.entry-content .fh-contact-cta-buttons .wp-block-button__link { padding: 1.05rem 2.5rem !important; font-size: 1.1rem !important; transition: transform 250ms ease, box-shadow 250ms ease; }
body.page-id-19 .entry-content.entry-content .fh-contact-cta-buttons .wp-block-button__link:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 10px 24px rgba(0,0,0,0.2); }
body.page-id-19 .fh-contact-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link {
  border: 1.5px solid rgba(255,255,255,0.7) !important; background: transparent !important; color: #fff !important;
}
body.page-id-19 .fh-contact-cta-buttons .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,0.1) !important; border-color: #fff !important; }

@media (max-width: 900px) {
  body.page-id-19 .entry-content.entry-content .fh-contact-main-row,
  body.page-id-19 .entry-content.entry-content .fh-contact-secondary-row { flex-wrap: wrap; }
  body.page-id-19 .fh-contact-trust-row { flex-wrap: wrap; }
}

/* Fade-up on scroll */
body.page-id-19 .fh-contact-card { opacity: 0; transform: translateY(20px); }
body.page-id-19 .fh-contact-card.fh-in-view { opacity: 1; transform: translateY(0); transition: opacity 600ms ease, transform 600ms ease, box-shadow 300ms ease; }

/* ============ MY ACCOUNT LOGIN/REGISTER (page ID 11, logged-out) — premium luxury-brand redesign ============ */
.fh-ic-fast::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M13 2L4 14h6l-1 8 9-12h-6z'/></svg>"); }
.fh-ic-address::before { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='11' r='3'/><path d='M12 21s-7-6.5-7-11.5a7 7 0 1 1 14 0C19 14.5 12 21 12 21z'/></svg>"); }

body.page-id-11:not(.logged-in) .content-area { margin-top: 0; }
body.page-id-11:not(.logged-in) .entry-content { margin-top: 0; }

/* Hero: identical technique to Contact/About (full-bleed + gradient). */
body.page-id-11:not(.logged-in) .entry-content.entry-content > .fh-al-hero-slide {
  min-height: 706px; display: flex !important; flex-direction: column !important; align-items: flex-start !important; justify-content: center !important;
  position: relative; overflow: hidden; margin-top: 0 !important; margin-bottom: 0 !important;
  background-size: cover !important; background-position: center 50% !important;
  padding: 2.25rem max(2rem, calc((100% - 1600px) / 2 + 1.25rem)) 2.25rem !important;
}
@media (min-width: 768px) and (max-width: 1024px) { body.page-id-11:not(.logged-in) .entry-content.entry-content > .fh-al-hero-slide { min-height: 582px; } }
@media (max-width: 767px) { body.page-id-11:not(.logged-in) .entry-content.entry-content > .fh-al-hero-slide { min-height: 542px; } }
body.page-id-11:not(.logged-in) .fh-al-hero-slide::before {
  content: ""; position: absolute; inset: 0; z-index: 0;
  background-image: inherit; background-size: cover; background-position: center 50%;
  transform: scale(1.02); transform-origin: center 50%;
}
body.page-id-11:not(.logged-in) .fh-al-hero-slide::after {
  content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 7%; z-index: 0; pointer-events: none;
  background: linear-gradient(to right, transparent, rgba(250, 249, 246, 0.4));
}
body.page-id-11:not(.logged-in) .fh-al-hero-slide > * { position: relative; z-index: 1; margin-left: 0 !important; margin-right: auto !important; }
body.page-id-11:not(.logged-in) .fh-al-hero-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--fh-green); margin: 0 0 1rem !important; }
body.page-id-11:not(.logged-in) .fh-al-hero-slide h1 { margin-top: 0 !important; margin-bottom: 1.75rem !important; font-size: clamp(2.55rem, 4.5vw, 65px) !important; line-height: 1.1 !important; max-width: 620px !important; font-family: 'Playfair Display', Georgia, serif; color: var(--fh-forest); }
body.page-id-11:not(.logged-in) .entry-content.entry-content .fh-al-hero-desc { max-width: 480px !important; font-size: 1.05rem; line-height: 1.8; margin: 0 !important; color: var(--fh-text); }
body.page-id-11:not(.logged-in) .fh-al-hero-buttons { margin-top: 2.25rem !important; display: flex !important; gap: 1rem; }
@media (max-width: 640px) { body.page-id-11:not(.logged-in) .fh-al-hero-buttons { flex-wrap: wrap; } }

/* Buttons */
body.page-id-11:not(.logged-in) .fh-al-btn {
  display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 0.94rem 2.2rem;
  font-size: 1.02rem; font-weight: 600; text-decoration: none; box-sizing: border-box; border: 1.5px solid transparent;
  transition: transform 250ms ease, box-shadow 250ms ease, background 250ms ease;
}
body.page-id-11:not(.logged-in) .fh-al-btn-primary { background: var(--fh-green) !important; color: #fff !important; box-shadow: 0 8px 20px rgba(1,92,44,0.18); }
body.page-id-11:not(.logged-in) .fh-al-btn-primary:hover { background: var(--fh-green-dark) !important; transform: translateY(-2px); box-shadow: 0 12px 26px rgba(1,92,44,0.24); }
body.page-id-11:not(.logged-in) .fh-al-btn-secondary { background: #fff !important; color: var(--fh-forest) !important; border: 1.5px solid var(--fh-forest); }
body.page-id-11:not(.logged-in) .fh-al-btn-secondary:hover { background: var(--fh-forest) !important; color: #fff !important; transform: translateY(-2px); }
body.page-id-11:not(.logged-in) .fh-al-btn-outline { background: transparent !important; color: var(--fh-green) !important; border: 1.5px solid var(--fh-green); }
body.page-id-11:not(.logged-in) .fh-al-btn-outline:hover { background: var(--fh-green) !important; color: #fff !important; transform: translateY(-2px); }
body.page-id-11:not(.logged-in) .fh-al-btn-outline-light { background: transparent !important; color: #fff !important; border: 1.5px solid rgba(255,255,255,0.7); }
body.page-id-11:not(.logged-in) .fh-al-btn-outline-light:hover { background: rgba(255,255,255,0.12) !important; border-color: #fff; transform: translateY(-2px); }

/* Trust strip */
body.page-id-11:not(.logged-in) .fh-al-trust { background: var(--fh-sage); padding: 1.4rem 2rem !important; margin-top: 0 !important; }
body.page-id-11:not(.logged-in) .fh-al-trust-row { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; gap: 2rem; }
body.page-id-11:not(.logged-in) .fh-al-trust-row p[class*="fh-ic-"] { text-align: center; padding-left: 0; font-weight: 700; font-size: 0.95rem; letter-spacing: 0.01em; color: var(--fh-forest); margin: 0; flex: 1; }
body.page-id-11:not(.logged-in) .fh-al-trust-row p[class*="fh-ic-"]::before { position: static; display: block; width: 40px; height: 40px; margin: 0 auto 0.65rem; }
@media (max-width: 767px) {
  body.page-id-11:not(.logged-in) .fh-al-trust-row { flex-wrap: wrap; }
  body.page-id-11:not(.logged-in) .fh-al-trust-row p[class*="fh-ic-"] { flex: 1 1 40%; }
}

/* Login + Register cards */
body.page-id-11:not(.logged-in) .woocommerce-account .woocommerce-MyAccount-content { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; max-width: none !important; }
body.page-id-11:not(.logged-in) div.woocommerce { margin-top: 4.5rem !important; margin-bottom: 0 !important; max-width: 1100px; }
body.page-id-11:not(.logged-in) .fh-al-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: stretch; }
body.page-id-11:not(.logged-in) .fh-al-card {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 18px; box-shadow: 0 18px 46px rgba(5,31,21,0.09);
  padding: 2.75rem; display: flex; flex-direction: column; box-sizing: border-box; transition: transform 250ms ease, box-shadow 250ms ease;
}
body.page-id-11:not(.logged-in) .fh-al-card:hover { transform: translateY(-4px); box-shadow: 0 24px 54px rgba(5,31,21,0.12); }
body.page-id-11:not(.logged-in) .fh-al-card h2 { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: 1.8rem; color: var(--fh-forest); margin: 0 0 0.9rem !important; }
body.page-id-11:not(.logged-in) .fh-al-card-desc { color: var(--fh-text-light); font-size: 0.96rem; line-height: 1.65; margin: 0 0 2.25rem !important; }
body.page-id-11:not(.logged-in) .fh-al-login-card .fh-al-card-desc { margin-bottom: 2.75rem !important; }
body.page-id-11:not(.logged-in) .fh-al-login-card .woocommerce-form-login { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; max-width: none !important; width: 100%; }
body.page-id-11:not(.logged-in) .fh-al-login-card form.woocommerce-form-login p.form-row {
  display: flex !important; flex-direction: column !important; align-items: stretch !important; gap: 1rem !important; margin-bottom: 1rem !important;
}
body.page-id-11:not(.logged-in) .fh-al-login-card input.woocommerce-Input,
body.page-id-11:not(.logged-in) .fh-al-login-card input.input-text { height: 42px !important; padding: 0 1.1rem !important; }
body.page-id-11:not(.logged-in) .fh-al-login-card form.woocommerce-form-login label { margin-bottom: 0.4rem !important; }
body.page-id-11:not(.logged-in) .fh-al-login-card form.woocommerce-form-login .woocommerce-form-row { margin-bottom: 1rem !important; }
body.page-id-11:not(.logged-in) .fh-al-login-card form.woocommerce-form-login button[type="submit"] { width: 100%; padding: 0.95rem 1.75rem !important; font-size: 1.02rem !important; transition: transform 250ms ease, box-shadow 250ms ease, background 250ms ease; }
body.page-id-11:not(.logged-in) .fh-al-login-card form.woocommerce-form-login button[type="submit"]:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(1,92,44,0.24); }
body.page-id-11:not(.logged-in) .woocommerce-form-login__rememberme { display: flex; align-items: center; cursor: pointer; }
body.page-id-11:not(.logged-in) input#rememberme { accent-color: var(--fh-green); width: 17px; height: 17px; margin-right: 0.5rem; cursor: pointer; }
body.page-id-11:not(.logged-in) .woocommerce-LostPassword { margin: 0.5rem 0 0 !important; text-align: center; }
body.page-id-11:not(.logged-in) .woocommerce-LostPassword a { color: var(--fh-green); font-weight: 600; text-decoration: none; transition: color 200ms ease; }
body.page-id-11:not(.logged-in) .woocommerce-LostPassword a:hover { text-decoration: underline; text-underline-offset: 3px; }
body.page-id-11:not(.logged-in) .fh-al-register-card {
  justify-content: center; background: linear-gradient(155deg, #FFFEFB 0%, var(--fh-cream) 100%);
  border: 1px solid var(--fh-hairline); position: relative; overflow: hidden;
}
body.page-id-11:not(.logged-in) .fh-al-register-card::after {
  content: ""; position: absolute; right: -50px; bottom: -50px; width: 300px; height: 300px; opacity: 0.04; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%23015C2C' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat; background-size: contain;
}
body.page-id-11:not(.logged-in) .fh-al-register-inner { position: relative; z-index: 1; }
body.page-id-11:not(.logged-in) .fh-al-feature-list { list-style: none; margin: 0 0 2.5rem !important; padding: 0; display: flex; flex-direction: column; gap: 1.35rem; }
body.page-id-11:not(.logged-in) .fh-al-feature-list li { position: relative; padding-left: 1.9rem; font-size: 0.95rem; font-weight: 500; color: var(--fh-text); }
body.page-id-11:not(.logged-in) .fh-al-feature-list li::before {
  content: ""; position: absolute; left: 0; top: 0.1rem; width: 20px; height: 20px; border-radius: 50%; background: rgba(1,92,44,0.1);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23015C2C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>");
  background-repeat: no-repeat; background-position: center; background-size: 11px 11px;
}
body.page-id-11:not(.logged-in) .fh-al-register-card .fh-al-btn { align-self: flex-start; box-shadow: 0 6px 16px rgba(1,92,44,0.1); }
body.page-id-11:not(.logged-in) .fh-al-register-card .fh-al-btn:hover { box-shadow: 0 10px 22px rgba(1,92,44,0.16); }

/* Benefits panel */
body.page-id-11:not(.logged-in) .fh-al-benefits { padding: 6rem 2rem 3.5rem; }
body.page-id-11:not(.logged-in) .fh-al-benefits-inner, body.page-id-11:not(.logged-in) .fh-al-benefit-grid { max-width: 1100px; margin: 0 auto; }
body.page-id-11:not(.logged-in) .fh-al-section-heading { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: clamp(1.75rem, 2.6vw, 2.25rem); color: var(--fh-forest); margin: 0 0 2.5rem !important; text-align: center; }
body.page-id-11:not(.logged-in) .fh-al-benefit-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; align-items: stretch; }
body.page-id-11:not(.logged-in) .fh-al-benefit-card {
  background: #fff; border: 1px solid var(--fh-hairline); border-radius: 16px; padding: 2.5rem 1.75rem; box-sizing: border-box; min-height: 218px;
  display: flex; flex-direction: column; justify-content: center;
  box-shadow: 0 10px 26px rgba(5,31,21,0.06); transition: transform 250ms ease, box-shadow 250ms ease;
}
body.page-id-11:not(.logged-in) .fh-al-benefit-card:hover { transform: translateY(-4px); box-shadow: 0 20px 42px rgba(5,31,21,0.11); }
body.page-id-11:not(.logged-in) .fh-al-benefit-card p[class*="fh-ic-"] { text-align: center; padding-left: 0; margin: 0; }
body.page-id-11:not(.logged-in) .fh-al-benefit-card p[class*="fh-ic-"]::before { position: static; display: block; width: 60px; height: 60px; margin: 0 auto 1.15rem; }
body.page-id-11:not(.logged-in) .fh-al-benefit-card strong { display: block; font-size: 1.05rem; font-weight: 800; letter-spacing: 0.005em; color: var(--fh-forest); }

/* Why shop with Flower House */
body.page-id-11:not(.logged-in) .fh-al-why { padding: 5.5rem 2rem 6rem; }
body.page-id-11:not(.logged-in) .fh-al-why .fh-al-section-heading { margin-bottom: 3rem !important; }
body.page-id-11:not(.logged-in) .fh-al-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin: 3rem auto 0; max-width: 1300px; align-items: stretch; }
body.page-id-11:not(.logged-in) .fh-al-feature-card {
  background: #fff; border: 1px solid #ECECE8; border-radius: 18px; padding: 2.25rem 1.75rem; text-align: center; box-sizing: border-box; min-height: 250px;
  display: flex; flex-direction: column; justify-content: center;
  box-shadow: 0 13px 32px rgba(5,31,21,0.07); transition: transform 250ms ease, box-shadow 250ms ease;
}
body.page-id-11:not(.logged-in) .fh-al-feature-card:hover { transform: translateY(-6px); box-shadow: 0 23px 48px rgba(5,31,21,0.12); }
body.page-id-11:not(.logged-in) .fh-al-feature-card p[class*="fh-ic-"] { text-align: center; padding-left: 0; margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--fh-text); }
body.page-id-11:not(.logged-in) .fh-al-feature-card p[class*="fh-ic-"]::before { position: static; display: block; width: 48px; height: 48px; margin: 0 auto 1.1rem; }
body.page-id-11:not(.logged-in) .fh-al-feature-card strong { display: block; font-size: 1.08rem; font-weight: 700; color: var(--fh-forest); margin-bottom: 0.5rem; }

/* Final CTA */
body.page-id-11:not(.logged-in) .fh-al-cta {
  background-color: #0F5C2E !important; padding: 6rem 2rem !important; margin-top: 5rem !important; text-align: center; position: relative; overflow: hidden;
}
body.page-id-11:not(.logged-in) .fh-al-cta::before {
  content: ""; position: absolute; left: -60px; bottom: -60px; width: 380px; height: 380px; opacity: 0.05; pointer-events: none; z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><g fill='none' stroke='%23FFFFFF' stroke-width='2'><circle cx='100' cy='60' r='30'/><circle cx='140' cy='100' r='30'/><circle cx='100' cy='140' r='30'/><circle cx='60' cy='100' r='30'/><circle cx='100' cy='100' r='18'/></g></svg>");
  background-repeat: no-repeat; background-size: contain;
}
body.page-id-11:not(.logged-in) .fh-al-cta::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background-image: radial-gradient(circle at 50% 45%, rgba(255,255,255,0.07), transparent 62%);
}
body.page-id-11:not(.logged-in) .fh-al-cta-inner { position: relative; z-index: 1; max-width: 720px; margin: 0 auto; }
body.page-id-11:not(.logged-in) .fh-al-cta h2 { font-family: 'Playfair Display', Georgia, serif; font-weight: 600; font-size: clamp(2.35rem, 3.9vw, 3.2rem); color: #fff; margin: 0 0 1.85rem !important; }
body.page-id-11:not(.logged-in) .fh-al-cta p { max-width: 560px; margin: 0 auto 2.75rem !important; font-size: 1.1rem; line-height: 1.75; color: #fff; opacity: 0.9; }
body.page-id-11:not(.logged-in) .fh-al-cta-buttons { display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap; }
body.page-id-11:not(.logged-in) .fh-al-cta-buttons .fh-al-btn { padding: 1.28rem 2.5rem; font-size: 1.1rem; line-height: 1; }

/* Responsive */
@media (max-width: 900px) {
  body.page-id-11:not(.logged-in) .fh-al-cards { grid-template-columns: 1fr; }
  body.page-id-11:not(.logged-in) .fh-al-benefit-grid, body.page-id-11:not(.logged-in) .fh-al-card-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  body.page-id-11:not(.logged-in) .fh-al-benefit-grid, body.page-id-11:not(.logged-in) .fh-al-card-grid { grid-template-columns: 1fr; }
  body.page-id-11:not(.logged-in) .fh-al-card { padding: 2rem 1.5rem; }
  body.page-id-11:not(.logged-in) div.woocommerce { margin-top: 2.5rem !important; }
  body.page-id-11:not(.logged-in) .fh-al-benefits, body.page-id-11:not(.logged-in) .fh-al-why { padding: 3.5rem 1.25rem 0; }
  body.page-id-11:not(.logged-in) .fh-al-cta { padding: 4rem 1.5rem !important; margin-top: 3.5rem !important; }
}
