/* =========================================================================
   The Green Care — Design System + Component Library
   -------------------------------------------------------------------------
   The Elementor page templates reference the .gc-* classes below via each
   widget's "CSS Classes" field, so the heavy styling lives here (light,
   maintainable) while the pages stay editable in free Elementor.

   Sections:
     1. Tokens (variables)
     2. Base defaults
     3. Layout helpers
     4. Buttons
     5. Site header (theme)
     6. Site footer (theme)
     7. Page hero (dark banner + breadcrumb)
     8. Section titles
     9. Product cards + badges
    10. Category cards
    11. Shop filters + pagination
    12. Contact cards
    13. Quote list + qty stepper
    14. Forms
    15. Account: sidebar, dashboard cards, table, status pills
    16. Auth card (login / apply / gate)
    17. Green CTA banner
   ========================================================================= */

/* ----------------------------------------------------------------- 1. Tokens */
:root {
  --gc-green:        #1E7A3C;
  --gc-green-dark:   #14532B;
  --gc-green-soft:   #E7F1EA; /* icon chips / soft backgrounds */
  --gc-orange:       #F2941A;
  --gc-orange-dark:  #D97E0C;
  --gc-ink:          #26221F;
  --gc-ink-2:        #33302C; /* cards inside dark areas */
  --gc-cream:        #F4F1EC;
  --gc-beige:        #ECEAE3;
  --gc-white:        #FFFFFF;
  --gc-text:         #3A3A3A;
  --gc-text-muted:   #6B6B6B;
  --gc-text-onink:   #C9C6C1;
  --gc-border:       #E4E1DA;

  --gc-font-heading: "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gc-font-body:    "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;

  --gc-radius-sm:  8px;
  --gc-radius:     12px;
  --gc-radius-lg:  20px;
  --gc-radius-pill: 999px;

  --gc-content-width: 1300px;
  --gc-gap: 24px;
  --gc-shadow: 0 1px 2px rgba(0,0,0,.04), 0 8px 24px rgba(0,0,0,.04);
}

/* ------------------------------------------------------------ 2. Base */
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--gc-font-body);
  color: var(--gc-text);
  background: var(--gc-cream);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4,h5,h6 { font-family: var(--gc-font-heading); font-weight: 700; color: var(--gc-ink); line-height: 1.15; margin: 0 0 .4em; }
a { color: var(--gc-green); text-decoration: none; }
a:hover { color: var(--gc-green-dark); }
img { max-width: 100%; height: auto; display: block; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

/* ------------------------------------------------------------ 3. Layout */
.gc-container { width: 100%; max-width: var(--gc-content-width); margin-inline: auto; padding-inline: 20px; box-sizing: border-box; }
.gc-site-main { min-height: 40vh; }

/* ------------------------------------------------------------ 4. Buttons */
.gc-btn,
button.gc-btn,
input[type="submit"].gc-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font-family: var(--gc-font-heading); font-weight: 600; font-size: 15px;
  color: var(--gc-white); background: var(--gc-orange);
  border: 2px solid var(--gc-orange); border-radius: var(--gc-radius-pill);
  padding: 12px 28px; cursor: pointer; transition: all .15s ease; text-align: center;
}
.gc-btn:hover { background: var(--gc-orange-dark); border-color: var(--gc-orange-dark); color: var(--gc-white); }
.gc-btn--green { background: var(--gc-green); border-color: var(--gc-green); }
.gc-btn--green:hover { background: var(--gc-green-dark); border-color: var(--gc-green-dark); }
.gc-btn--ink { color: var(--gc-ink); }
.gc-btn--outline { background: transparent; color: var(--gc-orange); }
.gc-btn--outline:hover { background: var(--gc-orange); color: var(--gc-white); }
.gc-btn--block { display: flex; width: 100%; }

/* ------------------------------------------------------------ 5. Site header */
.gc-announcement {
  background: var(--gc-ink); color: var(--gc-white);
  font-size: 14px; text-align: center; padding: 12px 20px;
}
.gc-announcement .gc-announcement__icon { color: var(--gc-orange); margin-right: 8px; }

.gc-site-header { background: var(--gc-white); border-bottom: 1px solid var(--gc-border); }
.gc-site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 18px; }
.gc-site-header__brand img,
.gc-site-header__brand .custom-logo { max-height: 48px; width: auto; }
.gc-site-title { font-family: var(--gc-font-heading); font-weight: 800; color: var(--gc-ink); font-size: 22px; }

.gc-site-header__right { display: flex; align-items: center; gap: 28px; }
.gc-menu { list-style: none; display: flex; align-items: center; gap: 28px; margin: 0; padding: 0; }
.gc-menu a { font-family: var(--gc-font-heading); font-weight: 500; color: var(--gc-ink); font-size: 15px; padding-bottom: 4px; }
.gc-menu a:hover, .gc-menu .current-menu-item > a { color: var(--gc-ink); border-bottom: 2px solid var(--gc-orange); }

.gc-header-tools { display: flex; align-items: center; gap: 20px; }
.gc-header-tools a { color: var(--gc-ink); display: inline-flex; align-items: center; }
.gc-header-tools svg { width: 22px; height: 22px; }
.gc-cart-amount { font-family: var(--gc-font-heading); font-weight: 700; font-size: 15px; }

/* ------------------------------------------------------------ 6. Site footer */
.gc-site-footer { background: var(--gc-ink); color: var(--gc-text-onink); padding-top: 56px; }
.gc-site-footer__cols { display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.gc-site-footer h4 { color: var(--gc-white); font-size: 16px; margin-bottom: 18px; }
.gc-site-footer img { max-height: 44px; margin-bottom: 18px; }
.gc-site-footer p { color: var(--gc-text-onink); margin: 0; max-width: 34ch; }
.gc-site-footer .gc-menu--footer { flex-direction: column; align-items: flex-start; gap: 12px; }
.gc-site-footer .gc-menu--footer a { color: var(--gc-text-onink); font-weight: 400; }
.gc-site-footer .gc-menu--footer a:hover { color: var(--gc-white); border: 0; }
.gc-site-footer__bottom {
  border-top: 1px solid rgba(255,255,255,.12); padding-block: 22px;
  display: flex; justify-content: space-between; gap: 16px; font-size: 13px; flex-wrap: wrap;
}
.gc-site-footer__verified { color: #5FbF7f; }

/* ------------------------------------------------------------ 7. Page hero */
.gc-hero { background: var(--gc-ink); color: var(--gc-white); padding-block: 56px; }
.gc-hero__crumb { color: var(--gc-text-onink); font-size: 14px; margin-bottom: 14px; }
.gc-hero__crumb a { color: var(--gc-text-onink); }
.gc-hero h1 { color: var(--gc-white); font-size: 44px; margin-bottom: 12px; }
.gc-hero p { color: var(--gc-text-onink); font-size: 17px; max-width: 60ch; margin: 0; }
/* soft (cream) hero variant used on Home "Welcome back" */
.gc-hero--soft { background: var(--gc-beige); color: var(--gc-ink); }
.gc-hero--soft h1 { color: var(--gc-ink); }
.gc-hero--soft p { color: var(--gc-text-muted); }

/* Shop search bar (inside dark hero) */
.gc-searchbar { display: flex; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.gc-searchbar input { flex: 1 1 380px; border: 0; border-radius: var(--gc-radius-pill); padding: 16px 24px; font-size: 15px; }

/* ------------------------------------------------------------ 8. Section titles */
.gc-section-title { position: relative; padding-left: 16px; font-size: 26px; }
.gc-section-title::before { content:""; position:absolute; left:0; top:.12em; bottom:.12em; width:5px; border-radius:var(--gc-radius-pill); background: var(--gc-green); }
.gc-viewall { color: var(--gc-green); font-family: var(--gc-font-heading); font-weight: 600; }

/* ------------------------------------------------------------ 9. Product cards */
.gc-grid { display: grid; gap: var(--gc-gap); }
.gc-grid--4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.gc-grid--3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.gc-grid--2 { grid-template-columns: repeat(2, minmax(0,1fr)); }

.gc-product { background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); overflow: hidden; position: relative; display: flex; flex-direction: column; }
.gc-product__media { background: var(--gc-beige); aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; color: #B7B3AB; }
.gc-product__media svg { width: 44px; height: 44px; }
.gc-product__body { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.gc-product__cat { color: var(--gc-green); font-family: var(--gc-font-heading); font-weight: 600; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.gc-product__name { font-family: var(--gc-font-heading); font-weight: 600; color: var(--gc-ink); font-size: 16px; }
.gc-product__price { font-family: var(--gc-font-heading); font-weight: 700; color: var(--gc-ink); font-size: 16px; }
.gc-product__row { display: flex; align-items: center; justify-content: space-between; }
.gc-product__stock { color: var(--gc-green); font-size: 13px; }
.gc-product .gc-btn { margin-top: 10px; }

.gc-badge { position: absolute; top: 12px; left: 12px; z-index: 2; font-family: var(--gc-font-heading); font-weight: 700; font-size: 12px; padding: 5px 12px; border-radius: var(--gc-radius-pill); }
.gc-badge--combo { background: var(--gc-orange); color: var(--gc-ink); }
.gc-badge--sale  { background: var(--gc-orange); color: var(--gc-ink); }
.gc-badge--new   { background: var(--gc-green); color: var(--gc-white); }

/* Featured partner (dark) block */
.gc-feature { background: var(--gc-ink); color: var(--gc-white); border-radius: var(--gc-radius-lg); padding: 40px; display: grid; grid-template-columns: 1fr 260px; gap: 32px; align-items: center; }
.gc-feature__eyebrow { color: var(--gc-text-onink); letter-spacing: .08em; text-transform: uppercase; font-size: 12px; font-family: var(--gc-font-heading); font-weight: 600; }
.gc-feature h2 { color: var(--gc-white); font-size: 30px; margin: 10px 0; }
.gc-feature p { color: var(--gc-text-onink); }
.gc-feature__img { background: var(--gc-ink-2); border-radius: var(--gc-radius); aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; color: #6b6660; }

/* ------------------------------------------------------------ 10. Category cards */
.gc-cat { background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); padding: 22px 16px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.gc-cat__icon { width: 54px; height: 54px; border-radius: 50%; background: var(--gc-green-soft); color: var(--gc-green); display: flex; align-items: center; justify-content: center; }
.gc-cat__name { font-family: var(--gc-font-heading); font-weight: 600; color: var(--gc-ink); }
.gc-cat__count { color: var(--gc-text-muted); font-size: 13px; }

/* Brand card */
.gc-brand { background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); padding: 32px; text-align: center; color: var(--gc-text-muted); }
.gc-brand a { display: block; margin-top: 12px; font-family: var(--gc-font-heading); font-weight: 600; }

/* ------------------------------------------------------------ 11. Filters + pagination */
.gc-shop-layout { display: grid; grid-template-columns: 240px 1fr; gap: 32px; }
.gc-filters h4 { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--gc-text-muted); margin: 22px 0 12px; }
.gc-filters label { display: flex; align-items: center; gap: 10px; padding: 6px 0; color: var(--gc-text); font-size: 15px; cursor: pointer; }
.gc-shop-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.gc-select { border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); padding: 10px 16px; background: var(--gc-white); font-family: var(--gc-font-heading); }
.gc-pagination { display: flex; gap: 8px; justify-content: center; margin-top: 32px; }
.gc-pagination a, .gc-pagination span { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--gc-radius-sm); border: 1px solid var(--gc-border); font-family: var(--gc-font-heading); font-weight: 600; color: var(--gc-ink); background: var(--gc-white); }
.gc-pagination .gc-page-current { background: var(--gc-orange); border-color: var(--gc-orange); color: var(--gc-white); }

/* ------------------------------------------------------------ 12. Contact cards */
.gc-card { background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); padding: 28px; box-shadow: var(--gc-shadow); }
.gc-contact-row { display: flex; align-items: center; gap: 16px; padding: 10px 0; }
.gc-contact-row .gc-cat__icon { flex: none; }
.gc-contact-row small { display: block; color: var(--gc-text-muted); text-transform: uppercase; letter-spacing: .04em; font-size: 12px; }
.gc-contact-row strong { font-family: var(--gc-font-heading); font-size: 17px; color: var(--gc-ink); }
.gc-map { background: var(--gc-beige); border-radius: var(--gc-radius-sm); aspect-ratio: 16/9; display: flex; align-items: center; justify-content: center; color: #B7B3AB; }

/* ------------------------------------------------------------ 13. Quote list + stepper */
.gc-quote-row { display: flex; align-items: center; gap: 16px; background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); padding: 16px; }
.gc-quote-row__thumb { width: 64px; height: 64px; border-radius: var(--gc-radius-sm); background: var(--gc-beige); display: flex; align-items: center; justify-content: center; color: #B7B3AB; flex: none; }
.gc-quote-row__info { flex: 1; }
.gc-stepper { display: inline-flex; align-items: center; border: 1px solid var(--gc-border); border-radius: var(--gc-radius-sm); overflow: hidden; }
.gc-stepper button { border: 0; background: var(--gc-white); width: 40px; height: 44px; font-size: 20px; cursor: pointer; color: var(--gc-green); }
.gc-stepper span { min-width: 44px; text-align: center; font-family: var(--gc-font-heading); font-weight: 700; }
.gc-note { background: var(--gc-green-soft); color: var(--gc-green-dark); border-radius: var(--gc-radius-sm); padding: 16px; display: flex; gap: 10px; }

/* ------------------------------------------------------------ 14. Forms */
.gc-field { margin-bottom: 20px; }
.gc-field label { display: block; font-family: var(--gc-font-heading); font-weight: 600; color: var(--gc-ink); margin-bottom: 8px; }
.gc-input, .gc-field input, .gc-field textarea {
  width: 100%; box-sizing: border-box; border: 1px solid var(--gc-border);
  background: #FAF9F6; border-radius: var(--gc-radius-sm); padding: 14px 16px;
  font-family: var(--gc-font-body); font-size: 15px; color: var(--gc-text);
}
.gc-field input:focus, .gc-field textarea:focus { outline: none; border-color: var(--gc-green); }
.gc-field textarea { min-height: 120px; resize: vertical; }
.gc-form-note { color: var(--gc-text-muted); font-size: 14px; text-align: center; margin-top: 12px; }

/* ------------------------------------------------------------ 15. Account */
.gc-account-layout { display: grid; grid-template-columns: 280px 1fr; gap: 40px; }
.gc-account-side { text-align: left; }
.gc-account-avatar { width: 96px; height: 96px; border-radius: 50%; background: var(--gc-beige); margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; color: #B7B3AB; }
.gc-account-side__name { text-align: center; font-family: var(--gc-font-heading); font-weight: 700; font-size: 20px; color: var(--gc-ink); }
.gc-account-side__email { text-align: center; color: var(--gc-text-muted); margin-bottom: 20px; }
.gc-account-nav { list-style: none; margin: 0; padding: 18px 0 0; border-top: 1px solid var(--gc-border); }
.gc-account-nav li { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--gc-radius-sm); color: var(--gc-text); }
.gc-account-nav li.is-active { background: var(--gc-green-soft); color: var(--gc-green); font-family: var(--gc-font-heading); font-weight: 600; }
.gc-dash-card { background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); padding: 24px; }
.gc-dash-card__icon { width: 46px; height: 46px; border-radius: var(--gc-radius-sm); background: var(--gc-green-soft); color: var(--gc-green); display: flex; align-items: center; justify-content: center; margin-bottom: 14px; }
.gc-dash-card h3 { margin: 0 0 4px; font-size: 20px; }
.gc-dash-card__link { color: var(--gc-green); font-family: var(--gc-font-heading); font-weight: 600; display: inline-block; margin-top: 12px; }
.gc-table { width: 100%; border-collapse: collapse; background: var(--gc-white); border: 1px solid var(--gc-border); border-radius: var(--gc-radius); overflow: hidden; }
.gc-table th { text-align: left; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: var(--gc-text-muted); padding: 16px 20px; background: #FAF9F6; }
.gc-table td { padding: 18px 20px; border-top: 1px solid var(--gc-border); font-family: var(--gc-font-heading); }
.gc-pill { padding: 5px 14px; border-radius: var(--gc-radius-pill); font-size: 13px; font-weight: 600; }
.gc-pill--quoted   { background: var(--gc-green-soft); color: var(--gc-green); }
.gc-pill--pending  { background: #FCE9CE; color: var(--gc-orange-dark); }
.gc-pill--approved { background: var(--gc-green-soft); color: var(--gc-green); }

/* ------------------------------------------------------------ 16. Auth card */
.gc-auth { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--gc-cream); padding: 40px 20px; }
.gc-auth__card { width: 100%; max-width: 980px; background: var(--gc-white); border-radius: var(--gc-radius-lg); overflow: hidden; box-shadow: var(--gc-shadow); }
.gc-auth__head { background: var(--gc-ink); color: var(--gc-white); text-align: center; padding: 40px; }
.gc-auth__head img { max-height: 44px; margin: 0 auto 18px; }
.gc-auth__head h1 { color: var(--gc-white); font-size: 34px; margin: 0 0 8px; }
.gc-auth__head p { color: var(--gc-text-onink); margin: 0; }
.gc-auth__body { display: grid; grid-template-columns: 1fr 1fr; }
.gc-auth__col { padding: 40px; }
.gc-auth__col + .gc-auth__col { border-left: 1px solid var(--gc-border); }
.gc-auth__eyebrow { color: var(--gc-text-muted); letter-spacing: .08em; text-transform: uppercase; font-size: 13px; font-family: var(--gc-font-heading); font-weight: 600; margin-bottom: 20px; }
.gc-feature-list { list-style: none; margin: 0; padding: 0; }
.gc-feature-list li { display: flex; align-items: center; gap: 14px; padding: 12px 0; font-size: 17px; color: var(--gc-ink); }
.gc-feature-list .gc-cat__icon { width: 40px; height: 40px; flex: none; }
/* Gate variant: full dark card */
.gc-gate { background: var(--gc-ink); color: var(--gc-white); border-radius: var(--gc-radius-lg); padding: 56px; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.gc-gate__eyebrow { color: var(--gc-green); letter-spacing: .08em; text-transform: uppercase; font-family: var(--gc-font-heading); font-weight: 700; }
.gc-gate h1 { color: var(--gc-white); font-size: 52px; margin: 14px 0; }
.gc-gate p { color: var(--gc-text-onink); font-size: 18px; }
.gc-gate__logo { border: 1px solid rgba(255,255,255,.14); border-radius: var(--gc-radius); padding: 48px; display: flex; align-items: center; justify-content: center; }
.gc-gate .gc-feature-list li { color: var(--gc-white); }

/* ------------------------------------------------------------ 17. Green CTA banner */
.gc-cta-banner { background: var(--gc-green); color: var(--gc-white); text-align: center; padding: 30px 20px; }
.gc-cta-banner a, .gc-cta-banner { font-family: var(--gc-font-heading); font-weight: 700; font-size: 22px; color: var(--gc-white); }

/* =========================================================================
   ELEMENTOR-NATIVE REBUILD HELPERS
   Classes applied to Elementor containers/widgets (via the "CSS Classes"
   field) so native, drag-editable widgets still render on-brand. Layout
   props use !important to beat Elementor's per-element inline CSS.
   ========================================================================= */

/* Grids on a container */
.gc-egrid { display: grid !important; gap: 24px !important; }
.gc-egrid--2 { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.gc-egrid--3 { grid-template-columns: repeat(3, minmax(0,1fr)) !important; }
.gc-egrid--4 { grid-template-columns: repeat(4, minmax(0,1fr)) !important; }
.gc-egrid--7 { grid-template-columns: repeat(7, minmax(0,1fr)) !important; }

/* Elementor button labels should never wrap to two lines */
.elementor-widget-button .elementor-button { white-space: nowrap; }

/* On-brand buttons (target the inner Elementor button) */
.gc-ebtn .elementor-button { background: var(--gc-orange); border-radius: 999px; padding: 13px 30px; font-family: var(--gc-font-heading); font-weight: 600; color: #fff; }
.gc-ebtn .elementor-button:hover { background: var(--gc-orange-dark); }
.gc-ebtn-green .elementor-button { background: var(--gc-green); }
.gc-ebtn-green .elementor-button:hover { background: var(--gc-green-dark); }
.gc-ebtn-outline .elementor-button { background: transparent; color: var(--gc-orange); border: 2px solid var(--gc-orange); }
.gc-ebtn-outline .elementor-button:hover { background: var(--gc-orange); color: #fff; }

/* Product card (Elementor container) */
.gc-ecard { position: relative; background: #fff; border: 1px solid var(--gc-border); border-radius: 12px; overflow: hidden; }
.gc-ecard .elementor-widget-image, .gc-ecard .elementor-widget-image img { margin: 0; display: block; width: 100%; }
.gc-ecard .elementor-widget-image img { aspect-ratio: 1 / 1; object-fit: cover; background: var(--gc-beige); }
.gc-ecard__body { padding: 16px !important; }
.gc-ecat .elementor-heading-title { color: var(--gc-green) !important; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.gc-ename .elementor-heading-title { font-size: 16px; font-weight: 600; color: var(--gc-ink); }
.gc-eprice .elementor-heading-title { font-size: 16px; font-weight: 700; color: var(--gc-ink); }
.gc-ebadge { position: absolute !important; top: 12px; left: 12px; z-index: 2; }
.gc-ebadge .elementor-heading-title { font-size: 12px; font-weight: 700; padding: 5px 12px; border-radius: 999px; display: inline-block; }
.gc-ebadge-combo .elementor-heading-title, .gc-ebadge-sale .elementor-heading-title { background: var(--gc-orange); color: var(--gc-ink); }
.gc-ebadge-new .elementor-heading-title { background: var(--gc-green); color: #fff; }

/* Dark / light section text helpers */
.gc-white .elementor-heading-title { color: #fff !important; }
.gc-lead .elementor-widget-container { color: var(--gc-text-onink) !important; font-size: 17px; }
.gc-crumb .elementor-widget-container { color: var(--gc-text-onink) !important; font-size: 14px; }

/* Auth (canvas) layouts */
.gc-eauth { display: flex !important; align-items: center !important; justify-content: center !important; min-height: 100vh; background: var(--gc-cream); padding: 40px 20px; }
.gc-egate { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 48px !important; background: var(--gc-ink); border-radius: 20px; padding: 56px; align-items: center; width: 100%; max-width: 1120px; }
.gc-egate .gc-eyebrow .elementor-heading-title { color: var(--gc-green) !important; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; font-size: 14px; }
.gc-egate .gc-h1 .elementor-heading-title { color: #fff !important; font-size: 52px; }
.gc-egate .gc-lead .elementor-widget-container { color: var(--gc-text-onink) !important; font-size: 18px; }
.gc-egate .elementor-icon-list-text { color: #fff !important; }
.gc-egate .elementor-icon-list-icon svg, .gc-egate .elementor-icon-list-icon i { fill: var(--gc-green) !important; color: var(--gc-green) !important; }
.gc-gate-logo { border: 1px solid rgba(255,255,255,.14); border-radius: 12px; padding: 48px; display: flex; align-items: center; justify-content: center; }

/* Icon circle (category / dashboard / contact icons) */
.gc-icircle { width: 54px; height: 54px; border-radius: 50% !important; background: var(--gc-green-soft); display: flex; align-items: center; justify-content: center; }
.gc-icircle-sm { width: 46px; height: 46px; border-radius: 10px !important; background: var(--gc-green-soft); }

/* White card surface */
.gc-esurface { background: #fff; border: 1px solid var(--gc-border); border-radius: 12px; }

/* Form fields (visual, editable; wired to a form plugin later) */
.gc-einput { background: #FAF9F6; border: 1px solid var(--gc-border) !important; border-radius: 8px; min-height: 50px !important; }
.gc-etextarea { background: #FAF9F6; border: 1px solid var(--gc-border) !important; border-radius: 8px; min-height: 120px !important; }
.gc-esearch { background: #fff !important; border-radius: 999px !important; min-height: 58px !important; }

/* Data table (built from containers) */
.gc-ethead { background: #FAF9F6 !important; }
.gc-erow { border-top: 1px solid var(--gc-border) !important; }

/* Status pills (heading widget) */
.gc-pill-quoted .elementor-heading-title, .gc-pill-approved .elementor-heading-title { background: var(--gc-green-soft); color: var(--gc-green); padding: 5px 14px; border-radius: 999px; display: inline-block; font-size: 13px; }
.gc-pill-pending .elementor-heading-title { background: #FCE9CE; color: var(--gc-orange-dark); padding: 5px 14px; border-radius: 999px; display: inline-block; font-size: 13px; }

/* Quote row thumb + stepper */
.gc-ethumb { width: 64px; height: 64px; border-radius: 8px !important; background: var(--gc-beige); display: flex; align-items: center; justify-content: center; }
.gc-estepper { border: 1px solid var(--gc-border) !important; border-radius: 8px; overflow: hidden; }

/* Map / image placeholders */
.gc-emap { background: var(--gc-beige); border-radius: 8px; min-height: 210px !important; display: flex; align-items: center; justify-content: center; }

/* Account nav */
.gc-anav-active { background: var(--gc-green-soft) !important; border-radius: 8px; }

/* Notice strip */
.gc-enote { background: var(--gc-green-soft); border-radius: 8px; }

/* Front-end forms ([gc_form]) */
.gc-form .gc-field { margin-bottom: 18px; }
.gc-form label { display: block; font-family: var(--gc-font-heading); font-weight: 600; color: var(--gc-ink); margin-bottom: 8px; }
.gc-form input, .gc-form textarea { width: 100%; box-sizing: border-box; border: 1px solid var(--gc-border); background: #FAF9F6; border-radius: 8px; padding: 14px 16px; font-family: var(--gc-font-body); font-size: 15px; color: var(--gc-text); }
.gc-form input:focus, .gc-form textarea:focus { outline: none; border-color: var(--gc-green); }
.gc-form textarea { min-height: 120px; resize: vertical; }
.gc-form .gc-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; }
.gc-form-submit { width: 100%; border: 0; background: var(--gc-orange); color: #fff; font-family: var(--gc-font-heading); font-weight: 600; font-size: 15px; border-radius: 999px; padding: 15px; cursor: pointer; transition: background .15s ease; }
.gc-form-submit:hover { background: var(--gc-orange-dark); }
.gc-form-note { color: var(--gc-text-muted); font-size: 14px; text-align: center; margin-top: 12px; }
.gc-form-success { background: var(--gc-green-soft); color: var(--gc-green-dark); border-radius: 8px; padding: 14px 16px; margin-bottom: 18px; font-family: var(--gc-font-heading); font-weight: 600; }

/* Shop hero search bar */
.gc-search-row { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.gc-search-form { display: flex; flex: 1 1 420px; gap: 12px; align-items: center; }
.gc-search-form input[type="search"] { flex: 1; min-width: 0; border: 0; border-radius: 999px; padding: 16px 24px; font-size: 15px; background: #fff; color: var(--gc-text); }
.gc-search-form button { border: 0; background: var(--gc-orange); color: #fff; border-radius: 999px; padding: 15px 30px; font-family: var(--gc-font-heading); font-weight: 600; cursor: pointer; white-space: nowrap; transition: background .15s ease; }
.gc-search-form button:hover { background: var(--gc-orange-dark); }
.gc-search-quote { display: inline-block; border: 2px solid var(--gc-orange); color: var(--gc-orange); border-radius: 999px; padding: 13px 28px; font-family: var(--gc-font-heading); font-weight: 600; white-space: nowrap; }
.gc-search-quote:hover { background: var(--gc-orange); color: #fff; }

/* Shop filter form */
.gc-filter-form h4 { font-size: 13px; letter-spacing: .04em; text-transform: uppercase; color: var(--gc-text-muted); margin: 20px 0 10px; }
.gc-filter-form label { display: flex; align-items: center; gap: 10px; padding: 6px 0; color: var(--gc-text); font-size: 15px; cursor: pointer; }
.gc-filter-count { color: var(--gc-text-muted); font-size: 13px; }
.gc-apply { display: block; width: 100%; margin-top: 18px; border: 0; background: var(--gc-green); color: #fff; border-radius: 999px; padding: 13px; font-family: var(--gc-font-heading); font-weight: 600; cursor: pointer; }
.gc-apply:hover { background: var(--gc-green-dark); }
.gc-clear { display: block; text-align: center; margin-top: 10px; color: var(--gc-text-muted); font-size: 14px; }
.gc-result-count { color: var(--gc-text-muted); margin: 0 0 18px; }
.gc-no-products { color: var(--gc-text-muted); }

/* Wider overall content width */
.e-con.e-con-boxed > .e-con-inner { max-width: min(100%, 1300px) !important; }

/* Sidebar layouts (shop filters / account nav) */
.gc-esidebarlayout { display: grid !important; grid-template-columns: 260px minmax(0,1fr) !important; gap: 36px !important; align-items: start !important; }
.gc-e2col-start { align-items: start !important; }
@media (max-width: 1024px) { .gc-esidebarlayout { grid-template-columns: 1fr !important; } }

/* =========================================================================
   WOOCOMMERCE — style the shop, product, cart, checkout and account to match
   the Green Care design.
   ========================================================================= */
.woocommerce-breadcrumb { color: var(--gc-text-muted); font-size: 14px; margin-bottom: 20px; }
.woocommerce .woocommerce-products-header__title, .woocommerce .product_title { font-family: var(--gc-font-heading); color: var(--gc-ink); }
.woocommerce .woocommerce-result-count { color: var(--gc-text-muted); }
.woocommerce .woocommerce-ordering select { border: 1px solid var(--gc-border); border-radius: 8px; padding: 8px 12px; font-family: var(--gc-font-heading); }

/* Product grid + cards */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; margin: 0 !important; padding: 0 !important; }
/* WooCommerce adds clearfix ::before/::after that become stray grid cells
   (the "missing first card"). Remove them. */
.woocommerce ul.products::before, .woocommerce ul.products::after { content: none !important; display: none !important; }
.woocommerce ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.woocommerce ul.products.columns-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; padding: 0 !important; background: #fff; border: 1px solid var(--gc-border); border-radius: 12px; overflow: hidden; position: relative; text-align: left; }
.woocommerce ul.products li.product a img { margin: 0; border-radius: 0; aspect-ratio: 1 / 1; object-fit: cover; background: var(--gc-beige); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 14px 16px 2px; font-family: var(--gc-font-heading); font-weight: 600; font-size: 16px; color: var(--gc-ink); }
.woocommerce ul.products li.product .price { padding: 0 16px; color: var(--gc-ink) !important; font-family: var(--gc-font-heading); font-weight: 700; font-size: 16px; }
.woocommerce ul.products li.product .price del { color: var(--gc-text-muted); font-weight: 400; margin-right: 6px; opacity: 1; }
.woocommerce ul.products li.product .price ins { text-decoration: none; }
.woocommerce ul.products li.product .star-rating { margin: 8px 16px 0; }
.woocommerce ul.products li.product .button, .woocommerce ul.products li.product .added_to_cart { display: block; margin: 12px 16px 16px; text-align: center; }

/* On-sale badge */
.woocommerce span.onsale { position: absolute; top: 12px; left: 12px; right: auto; min-width: auto; min-height: auto; margin: 0; padding: 5px 12px; border-radius: 999px; background: var(--gc-orange); color: var(--gc-ink); font-family: var(--gc-font-heading); font-weight: 700; font-size: 12px; line-height: 1.4; }

/* Buttons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, .woocommerce .button.alt {
  background: var(--gc-orange); color: #fff; border-radius: 999px; padding: 12px 26px; font-family: var(--gc-font-heading); font-weight: 600; font-size: 15px; border: 2px solid var(--gc-orange); transition: all .15s ease; box-shadow: none; text-shadow: none; }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover, .woocommerce .button:hover, .woocommerce .button.alt:hover { background: var(--gc-orange-dark); border-color: var(--gc-orange-dark); color: #fff; }
.woocommerce .button.added, .woocommerce a.added_to_cart { background: var(--gc-green); border-color: var(--gc-green); }

/* Single product */
.single-product div.product .product_title { font-family: var(--gc-font-heading); font-size: 34px; }
.single-product div.product p.price, .single-product div.product span.price { color: var(--gc-green) !important; font-family: var(--gc-font-heading); font-weight: 700; font-size: 24px; }
.single-product .woocommerce-product-gallery__image img { border-radius: 12px; background: var(--gc-beige); }
.woocommerce div.product form.cart .quantity .qty { border: 1px solid var(--gc-border); border-radius: 8px; padding: 10px; }

/* Cart + checkout tables */
.woocommerce table.shop_table { border: 1px solid var(--gc-border); border-radius: 12px; }
.woocommerce table.shop_table th { font-family: var(--gc-font-heading); color: var(--gc-ink); }
.woocommerce .cart_totals h2, .woocommerce-checkout h3, .woocommerce-checkout #order_review_heading { font-family: var(--gc-font-heading); }

/* Form inputs */
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce-input-wrapper input, .woocommerce form .form-row select,
.select2-container--default .select2-selection--single { border: 1px solid var(--gc-border) !important; border-radius: 8px; background: #FAF9F6; padding: 12px 14px; }

/* My account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--gc-border); border-radius: 12px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--gc-border); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 14px 18px; color: var(--gc-ink); font-family: var(--gc-font-heading); font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--gc-green-soft); color: var(--gc-green); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews { border-top-color: var(--gc-green); border-radius: 8px; }
.woocommerce-message .button, .woocommerce-info .button { border-radius: 999px; }

@media (max-width: 1024px) {
  .gc-egrid--4, .gc-egrid--7 { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  .gc-egate { grid-template-columns: 1fr !important; }
  .woocommerce ul.products, .woocommerce ul.products.columns-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 680px) {
  .gc-egrid--2, .gc-egrid--3, .gc-egrid--4, .gc-egrid--7 { grid-template-columns: 1fr !important; }
}

/* ------------------------------------------------------------ Responsive */
@media (max-width: 1024px) {
  .gc-grid--4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .gc-shop-layout, .gc-account-layout { grid-template-columns: 1fr; }
  .gc-feature, .gc-gate, .gc-auth__body { grid-template-columns: 1fr; }
  .gc-auth__col + .gc-auth__col { border-left: 0; border-top: 1px solid var(--gc-border); }
}
@media (max-width: 680px) {
  .gc-grid--4, .gc-grid--3, .gc-grid--2 { grid-template-columns: 1fr; }
  .gc-site-footer__cols { grid-template-columns: 1fr; }
  .gc-hero h1 { font-size: 32px; }
  .gc-menu { display: none; } /* mobile nav handled separately */
}
