/*
Theme Name: Frozen Product Catalog
Description: B2B frozen food catalog child theme for Bio Green Farm.
Template: bio-green-farm
Version: 1.0.1
Requires at least: 6.4
Text Domain: kd-frozen-catalog
*/

:root {
  --kd-forest: #173f31;
  --kd-green: #1b784d;
  --kd-green-deep: #0e5d3b;
  --kd-mint: #eaf3ee;
  --kd-paper: #f6f8f6;
  --kd-ink: #18342b;
  --kd-muted: #60766b;
  --kd-line: #d9e5de;
  --kd-white: #fff;
  --kd-max: 1240px;
}

html { scroll-behavior: smooth; }
body { color: var(--kd-ink); background: var(--kd-white); font-family: "Open Sans", "Noto Sans SC", sans-serif; }
body .wp-site-blocks { overflow: clip; }
body a { text-decoration: none; }
body a:focus-visible, body button:focus-visible { outline: 3px solid #f2bb5c; outline-offset: 3px; }
.kd-skip-link { position: absolute; top: -100px; left: 16px; z-index: 1000; padding: 10px 15px; color: #fff; background: var(--kd-forest); }
.kd-skip-link:focus { top: 8px; color: #fff; }
.kd-container { width: min(calc(100% - 48px), var(--kd-max)); margin-inline: auto; }

.kd-utility { background: var(--kd-forest); color: #d9ebe1; font-size: 12px; letter-spacing: .06em; }
.kd-utility .kd-container { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.kd-utility a { color: #fff; }
.kd-header-wrap { background: #fff; border-bottom: 1px solid var(--kd-line); position: relative; z-index: 20; }
.kd-header { min-height: 88px; display: flex; align-items: center; gap: 48px; }
.kd-brand { color: var(--kd-forest); display: inline-flex; align-items: center; gap: 12px; min-width: 0; }
.kd-brand:hover, .kd-brand:focus { color: var(--kd-green); }
.kd-brand-mark { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #fff; background: var(--kd-green); font-size: 29px; line-height: 1; }
.kd-brand-text { display: flex; flex-direction: column; min-width: 0; }
.kd-brand-text strong { font-size: 18px; line-height: 1.2; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kd-brand-text small { font-size: 9px; font-weight: 700; letter-spacing: .16em; margin-top: 4px; }
.kd-nav { display: flex; justify-content: center; align-items: center; gap: clamp(22px, 3vw, 44px); margin-left: auto; white-space: nowrap; }
.kd-nav a { color: var(--kd-ink); font-size: 14px; font-weight: 700; padding-block: 10px; transition: color .2s ease; }
.kd-nav a:hover { color: var(--kd-green); }
.kd-header-cta, .kd-button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 48px; padding: 0 23px; border-radius: 5px; font-size: 13px; font-weight: 800; white-space: nowrap; transition: background .2s ease, color .2s ease, transform .2s ease; }
.kd-header-cta { background: var(--kd-green); color: #fff; }
.kd-header-cta:hover, .kd-button-primary:hover { background: var(--kd-green-deep); color: #fff; transform: translateY(-2px); }

.kd-hero { position: relative; isolation: isolate; min-height: clamp(560px, 54vw, 760px); background: #e9eeed; display: flex; align-items: center; }
.kd-hero-image { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.kd-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(247,250,249,.97) 0%, rgba(247,250,249,.91) 30%, rgba(247,250,249,.36) 52%, rgba(247,250,249,0) 72%); }
.kd-hero-content { padding-block: 75px; }
.kd-eyebrow, .kd-kicker { color: var(--kd-green); font-size: 12px; font-weight: 800; letter-spacing: .17em; }
.kd-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 25px; }
.kd-eyebrow-line { width: 25px; height: 2px; background: currentColor; }
.kd-hero h1 { color: var(--kd-forest); font-size: clamp(44px, 5.3vw, 78px); line-height: 1.2; font-weight: 800; letter-spacing: -.05em; margin: 0; max-width: 720px; }
.kd-hero h1 em { font-style: normal; color: var(--kd-green); }
.kd-hero-copy { max-width: 510px; color: #3a5549; font-size: clamp(15px, 1.4vw, 18px); line-height: 1.9; margin: 28px 0 32px; }
.kd-visual-note { max-width: 460px; color: var(--kd-muted); font-size: 11px; line-height: 1.6; margin: 24px 0 0; }
.kd-hero-actions { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.kd-button-primary { background: var(--kd-green); color: #fff; }
.kd-text-link { color: var(--kd-forest); font-size: 14px; font-weight: 800; border-bottom: 1px solid currentColor; padding-bottom: 5px; }
.kd-text-link:hover { color: var(--kd-green); }
.kd-hero-rail { position: absolute; bottom: 24px; right: max(24px, calc((100vw - var(--kd-max)) / 2)); display: flex; align-items: center; gap: 13px; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .15em; text-shadow: 0 1px 8px #30473a; }
.kd-hero-rail span { width: 45px; height: 1px; background: currentColor; }

.kd-categories { padding-block: clamp(70px, 8vw, 120px); scroll-margin-top: 30px; }
.kd-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 34px; }
.kd-kicker { margin: 0 0 14px; }
.kd-section-heading h2, .kd-catalog-band h2, .kd-footer h2 { color: var(--kd-forest); font-size: clamp(31px, 3.3vw, 48px); line-height: 1.25; letter-spacing: -.04em; margin: 0; font-weight: 800; }
.kd-section-heading > p { color: var(--kd-muted); max-width: 330px; font-size: 14px; line-height: 1.8; margin: 0 0 4px; }
.kd-category-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.kd-category-card { position: relative; min-height: clamp(300px, 31vw, 420px); border-radius: 9px; overflow: hidden; color: #fff; background: var(--kd-forest); }
.kd-category-card img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.kd-category-card:hover img { transform: scale(1.055); }
.kd-card-shade { position: absolute; inset: 35% 0 0; background: linear-gradient(0deg, rgba(8,37,26,.82), transparent); }
.kd-card-content { position: absolute; left: 26px; right: 26px; bottom: 25px; display: grid; gap: 5px; }
.kd-card-content small { color: #d7e7dc; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.kd-card-content strong { font-size: 24px; font-weight: 800; }
.kd-card-arrow { position: absolute; right: 0; bottom: 2px; width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; font-size: 18px; }
.kd-category-card:hover, .kd-category-card:focus { color: #fff; }
.kd-more-categories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 35px; border-top: 1px solid var(--kd-line); border-left: 1px solid var(--kd-line); }
.kd-more-categories a { min-height: 100px; padding: 23px 25px; border-right: 1px solid var(--kd-line); border-bottom: 1px solid var(--kd-line); display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--kd-ink); transition: background .2s ease; }
.kd-more-categories a:hover { background: var(--kd-mint); color: var(--kd-green); }
.kd-more-categories a > span:first-child { display: flex; flex-direction: column; gap: 4px; }
.kd-more-categories strong { font-size: 16px; }
.kd-more-categories small { color: var(--kd-muted); font-size: 11px; }
.kd-more-categories a > span:last-child { color: var(--kd-green); font-size: 20px; }

.kd-catalog-band { background: var(--kd-mint); scroll-margin-top: 30px; }
.kd-catalog-band-inner { min-height: 300px; padding-block: 64px; display: flex; justify-content: space-between; align-items: center; gap: 35px; }
.kd-catalog-band h2 { margin-bottom: 17px; }
.kd-catalog-band p:last-child { color: var(--kd-muted); line-height: 1.8; margin: 0; max-width: 540px; }
.kd-about-band { padding-block: 92px; max-width: 820px; }
.kd-about-band h2 { color: var(--kd-forest); font-size: clamp(31px, 3.3vw, 48px); line-height: 1.25; margin: 0 0 18px; letter-spacing: -.04em; }
.kd-about-band > p:not(.kd-kicker) { color: var(--kd-muted); line-height: 1.9; max-width: 690px; margin: 0 0 26px; }
.kd-button-outline { border: 1px solid var(--kd-green); color: var(--kd-green); }
.kd-button-outline:hover { background: var(--kd-green); color: #fff; transform: translateY(-2px); }
.kd-featured-products { max-width: var(--kd-max); padding: 90px 24px; }
.kd-featured-products h2 { font-size: clamp(30px, 3vw, 44px); color: var(--kd-forest); }
.kd-product-grid { gap: 22px; }
.kd-product-grid > li { border: 1px solid var(--kd-line); background: #fff; border-radius: 8px; overflow: hidden; padding-bottom: 18px; }
.kd-product-grid .wp-block-post-featured-image img, .kd-product-grid .wc-block-components-product-image img { aspect-ratio: 4 / 3; object-fit: cover; }
.kd-product-grid h2, .kd-product-grid h3, .kd-product-grid p { margin-inline: 18px; }
.kd-product-grid .wp-block-post-title { font-size: 20px; line-height: 1.35; }
.kd-product-grid .wp-block-post-title a { color: var(--kd-forest); }
.kd-product-grid .wp-block-post-excerpt { color: var(--kd-muted); font-size: 14px; }

.kd-footer { background: var(--kd-forest); color: #dcece3; scroll-margin-top: 30px; }
.kd-footer-main { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(220px, .6fr); gap: 80px; padding-block: 80px; }
.kd-footer-kicker { color: #94d4af; font-size: 11px; font-weight: 800; letter-spacing: .17em; margin-bottom: 16px; }
.kd-footer h2 { color: #fff; margin-bottom: 15px; }
.kd-footer-main p { max-width: 490px; font-size: 14px; line-height: 1.85; }
.kd-footer-button { display: inline-flex; align-items: center; gap: 28px; color: var(--kd-forest); background: #fff; border-radius: 4px; padding: 14px 21px; margin-top: 13px; font-size: 13px; font-weight: 800; }
.kd-footer-button:hover { color: #fff; background: var(--kd-green); }
.kd-footer-side { border-left: 1px solid #47705b; padding-left: 40px; align-self: center; }
.kd-footer-side strong { color: #fff; font-size: 19px; }
.kd-footer-side p { margin: 8px 0 25px; }
.kd-footer-side a, .kd-footer-bottom a { color: #dcece3; }
.kd-footer-side a:hover, .kd-footer-bottom a:hover { color: #fff; text-decoration: underline; }
.kd-footer-bottom { border-top: 1px solid #47705b; min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 20px; font-size: 12px; }

.kd-archive-shell, .kd-single-shell { width: min(calc(100% - 48px), var(--kd-max)); margin: 0 auto; padding-block: 52px 90px; }
.kd-page-shell { width: min(calc(100% - 48px), 850px); margin: 0 auto; padding-block: 70px 110px; }
.kd-page-shell > h1 { color: var(--kd-forest); font-size: clamp(38px, 4.4vw, 62px); line-height: 1.18; letter-spacing: -.04em; margin: 0 0 34px; }
.kd-page-shell .wp-block-post-content { color: var(--kd-ink); font-size: 17px; line-height: 1.9; }
.kd-page-shell .wp-block-post-content h2 { color: var(--kd-forest); font-size: 26px; margin-top: 42px; }
.kd-page-shell .wp-block-post-content a { color: var(--kd-green); text-decoration: underline; text-underline-offset: 3px; }
.kd-archive-shell > h1 { color: var(--kd-forest); font-size: clamp(36px, 4vw, 56px); margin-bottom: 10px; }
.kd-archive-shell > p { color: var(--kd-muted); }
.kd-archive-shell .wp-block-query { margin-top: 36px; }
.kd-single-shell .woocommerce div.product .product_title { color: var(--kd-forest); }
.kd-single-shell .woocommerce-product-details__short-description, .kd-single-shell .woocommerce-Tabs-panel { line-height: 1.8; }
.kd-single-shell .woocommerce table.shop_attributes { border-color: var(--kd-line); }
.kd-single-shell .woocommerce div.product div.images img { border-radius: 8px; }
.kd-single-shell .woocommerce div.product .product_meta { color: var(--kd-muted); font-size: 13px; line-height: 1.8; }
.kd-single-shell .woocommerce div.product .product_meta a { color: var(--kd-green); }
.kd-single-shell .woocommerce-tabs { margin-top: 44px; }
.kd-single-shell .woocommerce-tabs table { width: 100%; border-collapse: collapse; }
.kd-single-shell .woocommerce-tabs th, .kd-single-shell .woocommerce-tabs td { padding: 11px 14px; border: 1px solid var(--kd-line); text-align: left; }
.kd-product-inquiry { margin-top: 70px; padding: clamp(26px, 4vw, 44px); background: var(--kd-mint); border-radius: 8px; gap: 20px; }
.kd-product-inquiry h2 { color: var(--kd-forest); margin: 0 0 8px; font-size: clamp(26px, 2.8vw, 36px); }
.kd-product-inquiry p { color: var(--kd-muted); margin: 0; }
.kd-product-inquiry-button .wp-block-button__link { background: var(--kd-green); color: #fff; border-radius: 4px; font-size: 13px; font-weight: 800; padding: 15px 22px; }
.kd-product-inquiry-button .wp-block-button__link:hover { background: var(--kd-green-deep); }

@media (max-width: 980px) {
  .kd-header { gap: 20px; flex-wrap: wrap; padding-block: 17px; }
  .kd-nav { order: 3; width: 100%; justify-content: flex-start; gap: 28px; margin: 0; overflow-x: auto; }
  .kd-header-cta { margin-left: auto; }
  .kd-category-grid { gap: 12px; }
  .kd-category-card { min-height: 310px; }
}

@media (max-width: 700px) {
  .kd-container, .kd-archive-shell, .kd-single-shell, .kd-page-shell { width: min(calc(100% - 32px), var(--kd-max)); }
  .kd-utility .kd-container { min-height: 32px; }
  .kd-header { min-height: 75px; }
  .kd-brand-text strong { max-width: 170px; font-size: 16px; }
  .kd-brand-text small { font-size: 8px; }
  .kd-header-cta { min-height: 40px; padding-inline: 14px; font-size: 12px; }
  .kd-nav { gap: 24px; padding-bottom: 2px; }
  .kd-nav a { font-size: 13px; }
  .kd-hero { min-height: 610px; align-items: flex-start; }
  .kd-hero-image { height: 48%; top: auto; object-position: 64% center; }
  .kd-hero::before { background: linear-gradient(180deg, #f5f8f6 0%, #f5f8f6 54%, rgba(245,248,246,.25) 76%, transparent 100%); }
  .kd-hero-content { padding-block: 66px 270px; }
  .kd-hero h1 { font-size: clamp(38px, 9vw, 58px); }
  .kd-hero-copy { margin-block: 19px 22px; font-size: 14px; max-width: 420px; }
  .kd-hero-rail { display: none; }
  .kd-section-heading { display: block; }
  .kd-section-heading > p { margin-top: 16px; }
  .kd-category-grid { grid-template-columns: 1fr; gap: 14px; }
  .kd-category-card { min-height: 315px; }
  .kd-more-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 22px; }
  .kd-more-categories a { min-height: 86px; padding: 16px; }
  .kd-more-categories strong { font-size: 14px; }
  .kd-more-categories small { font-size: 10px; }
  .kd-catalog-band-inner { display: block; min-height: 0; }
  .kd-catalog-band .kd-button { margin-top: 28px; }
  .kd-footer-main { grid-template-columns: 1fr; gap: 35px; padding-block: 60px; }
  .kd-footer-side { border-left: 0; border-top: 1px solid #47705b; padding: 28px 0 0; }
  .kd-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 440px) {
  .kd-utility span { font-size: 10px; }
  .kd-header-cta { display: none; }
  .kd-brand-text strong { max-width: 220px; }
  .kd-hero { min-height: 650px; }
  .kd-hero-actions { gap: 17px; }
  .kd-more-categories { grid-template-columns: 1fr; }
  .kd-more-categories a { min-height: 69px; }
  .kd-product-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .kd-category-card img, .kd-button, .kd-header-cta { transition: none; }
}
