/*
Theme Name: Centuate
Theme URI: https://centuate.ca
Author: Centuate
Description: Custom WooCommerce theme for Centuate — wine, gold and cream.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 8.0
License: Private
Text Domain: centuate
Tags: e-commerce, woocommerce
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root {
  --wine:      #570210;
  --wine-deep: #3A0109;
  --gold:      #E8A745;
  --gold-soft: rgba(232,167,69,0.18);
  --cream:     #FFF9E9;
  --card:      #FFFCF2;
  --clay:      #8C5A47;
  --line:      rgba(87,2,16,0.14);
  --line-wine: rgba(255,249,233,0.16);
  --text-wine: rgba(255,249,233,0.86);

  --font-display: 'Fraunces', serif;
  --font-body:    'Inter', sans-serif;
  --radius:       4px;
  --radius-card:  14px;
  --max-w:        1140px;
  --gutter:       28px;
}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; font-family:var(--font-body); background:var(--cream); color:var(--wine); -webkit-font-smoothing:antialiased; font-size:15px; line-height:1.6; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; height:auto; display:block; }
ul { margin:0; padding:0; list-style:none; }
h1,h2,h3,h4,h5,h6 { margin:0; font-weight:500; }
p { margin:0 0 1em; } p:last-child { margin-bottom:0; }
button { cursor:pointer; font-family:var(--font-body); }
input,textarea,select { font-family:var(--font-body); }

/* ============================================================
   LAYOUT
   ============================================================ */
.ct-wrap { max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter); }
.ct-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; }
@media(max-width:600px){ .ct-grid { grid-template-columns:repeat(2,1fr); gap:16px; } }

/* ============================================================
   BUTTONS
   ============================================================ */
.ct-btn,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  display:inline-flex; align-items:center; justify-content:center;
  padding:13px 26px; font-size:12.5px; font-weight:600;
  letter-spacing:0.07em; text-transform:uppercase;
  border-radius:var(--radius); border:1px solid var(--wine);
  background:transparent; color:var(--wine);
  transition:background 0.2s ease; cursor:pointer;
  text-decoration:none; line-height:1; white-space:nowrap;
}
.ct-btn:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover { background:rgba(87,2,16,0.06); }

.ct-btn--primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
button[type="submit"],
input[type="submit"],
.woocommerce #payment #place_order {
  background:var(--wine) !important;
  color:var(--cream) !important;
  border-color:var(--wine) !important;
}
.ct-btn--primary:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
button[type="submit"]:hover,
.woocommerce #payment #place_order:hover {
  background:var(--wine-deep) !important;
  color:var(--cream) !important;
}
.ct-btn--gold { background:var(--gold) !important; color:var(--wine-deep) !important; border-color:var(--gold) !important; }
.ct-btn--gold:hover { background:#f2b85e !important; }
.ct-btn--ghost { background:transparent; color:var(--cream); border:1px solid var(--line-wine); }
.ct-btn--ghost:hover { background:rgba(255,249,233,0.08); }

/* ============================================================
   FORMS
   ============================================================ */
.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="password"],
.woocommerce input[type="number"],
.woocommerce textarea,
.woocommerce select,
.ct-input {
  width:100%; padding:12px 14px; font-size:14px;
  border:1px solid var(--line); border-radius:var(--radius);
  background:#fff; color:var(--wine); outline:none;
  transition:border-color .2s,box-shadow .2s; font-family:var(--font-body);
}
.woocommerce input:focus,.woocommerce textarea:focus,.ct-input:focus {
  border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft);
}
.woocommerce label, .ct-label {
  display:block; font-size:11.5px; letter-spacing:.06em;
  text-transform:uppercase; color:var(--clay); margin-bottom:6px;
}

/* ============================================================
   HEADER
   ============================================================ */
.ct-header { position:sticky; top:0; z-index:100; background:var(--wine); border-bottom:1px solid var(--line-wine); }
.ct-header__inner { display:flex; align-items:center; justify-content:space-between; max-width:var(--max-w); margin:0 auto; padding:18px var(--gutter); }
.ct-logo { font-family:var(--font-display); font-size:22px; font-weight:500; color:var(--cream); letter-spacing:.01em; }
.ct-logo:hover { color:var(--cream); }

.ct-nav { display:flex; align-items:center; gap:36px; }
.ct-nav ul { display:flex; align-items:center; gap:36px; list-style:none; margin:0; padding:0; }
.ct-nav ul li { margin:0; padding:0; position:relative; }
.ct-nav ul li ul { display:none; } /* hide any submenus for now */
.ct-nav a { font-size:13.5px; color:var(--text-wine); letter-spacing:.02em; position:relative; transition:color .2s; }
.ct-nav a::after { content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.ct-nav a:hover,.ct-nav .current-menu-item>a,.ct-nav .current-page-ancestor>a { color:var(--gold); }
.ct-nav a:hover::after { transform:scaleX(1); }

.ct-header__actions { display:flex; align-items:center; gap:18px; }
.ct-cart-icon { position:relative; color:var(--text-wine); display:flex; align-items:center; transition:color .2s; }
.ct-cart-icon:hover { color:var(--gold); }
.ct-cart-count { position:absolute; top:-7px; right:-10px; background:var(--gold); color:var(--wine-deep); font-size:10px; font-weight:700; width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; line-height:1; }

.ct-hamburger { display:none; background:none; border:none; color:var(--cream); font-size:24px; padding:4px; line-height:1; }
.ct-mobile-nav { display:none; background:var(--wine); border-top:1px solid var(--line-wine); padding:14px var(--gutter); }
.ct-mobile-nav.is-open { display:block; }
.ct-mobile-nav ul { list-style:none; margin:0; padding:0; }
.ct-mobile-nav ul li { margin:0; }
.ct-mobile-nav ul li ul { display:none; }
.ct-mobile-nav a { display:block; padding:10px 0; font-size:15px; color:var(--text-wine); border-bottom:1px solid var(--line-wine); }
.ct-mobile-nav li:last-child > a { border-bottom:none; }
@media(max-width:760px){ .ct-nav,.ct-hamburger-hide { display:none; } .ct-hamburger { display:block; } }

/* ============================================================
   HERO
   ============================================================ */
.ct-hero { background:var(--wine); padding:70px var(--gutter) 60px; text-align:center; }
.ct-hero__inner { max-width:var(--max-w); margin:0 auto; }
.ct-hero__eyebrow { font-size:11.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:16px; }
.ct-hero h1 { font-family:var(--font-display); font-weight:500; color:var(--cream); font-size:clamp(36px,6.5vw,64px); line-height:1.04; margin:0 0 20px; }
.ct-hero h1 em { font-style:italic; font-weight:300; color:var(--gold); }
.ct-hero p { font-size:16px; color:var(--text-wine); max-width:480px; margin:0 auto 32px; line-height:1.6; }
.ct-hero__actions { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.ct-dial { display:flex; align-items:center; justify-content:center; gap:10px; margin:32px 0 8px; }
.ct-dial__tick { width:1px; height:16px; background:var(--line-wine); }
.ct-dial__dot { width:7px; height:7px; border-radius:50%; background:var(--gold); }

/* ============================================================
   HOME SECTIONS
   ============================================================ */
.ct-banner { max-width:var(--max-w); margin:60px auto 0; padding:0 var(--gutter); }
.ct-banner img { width:100%; border-radius:20px; aspect-ratio:16/7; object-fit:cover; border:1px solid var(--line); }
.ct-section { max-width:var(--max-w); margin:0 auto; padding:80px var(--gutter) 20px; }
.ct-section__hd { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:32px; flex-wrap:wrap; gap:10px; }
.ct-section__hd h2 { font-family:var(--font-display); font-size:30px; color:var(--wine); }
.ct-section__link { font-size:13.5px; color:var(--wine); position:relative; }
.ct-section__link::after { content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.ct-section__link:hover::after { transform:scaleX(1); }
.ct-why { background:linear-gradient(180deg,#FBEFD3 0%,#F7E3B8 100%); margin-top:90px; padding:70px var(--gutter); border-top:1px solid rgba(232,167,69,.3); border-bottom:1px solid rgba(232,167,69,.3); }
.ct-why__inner { max-width:700px; margin:0 auto; text-align:center; }
.ct-why__eyebrow { font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--clay); margin-bottom:18px; font-family:var(--font-display); }
.ct-why__quote { font-family:var(--font-display); font-size:24px; line-height:1.5; font-weight:400; font-style:italic; color:var(--wine); margin:0 0 26px; }

/* ============================================================
   PRODUCT CARD
   ============================================================ */
.ct-card { display:block; text-decoration:none; cursor:pointer; }
.ct-card__img { position:relative; border-radius:16px; overflow:hidden; aspect-ratio:1/1; background:#F0DEC0; margin-bottom:14px; border:1px solid var(--line); }
.ct-card__img img { width:100%; height:100%; object-fit:cover; transition:transform .4s; display:block; }
.ct-card:hover .ct-card__img img { transform:scale(1.04); }
.ct-card__border { position:absolute; inset:0; border:2px solid var(--gold); border-radius:16px; opacity:0; transition:opacity .25s; pointer-events:none; }
.ct-card:hover .ct-card__border { opacity:1; }
.ct-card__add { position:absolute; bottom:12px; right:12px; background:var(--gold); color:var(--wine-deep); border:none; border-radius:50%; width:38px; height:38px; font-size:20px; font-weight:700; display:flex; align-items:center; justify-content:center; opacity:0; transform:translateY(6px); transition:all .25s; }
.ct-card:hover .ct-card__add { opacity:1; transform:translateY(0); }
.ct-card__placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; }
.ct-card__placeholder svg { opacity:.35; }
.ct-card__cat { font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--clay); margin-bottom:4px; }
.ct-card__name { font-family:var(--font-display); font-size:17px; font-weight:500; color:var(--wine); margin-bottom:4px; }
.ct-card__price { font-size:14.5px; color:var(--wine); }
.ct-card__price del { color:var(--clay); margin-right:6px; }
.ct-card__price ins { text-decoration:none; }

/* WooCommerce loop overrides */
.woocommerce ul.products { padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px; float:none !important; }
.woocommerce ul.products::before,.woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { margin:0 !important; float:none !important; width:auto !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family:var(--font-display); font-size:17px; font-weight:500; color:var(--wine); padding:4px 0 0; }
.woocommerce ul.products li.product .price { color:var(--wine); font-size:14.5px; }
.woocommerce ul.products li.product img { border-radius:16px; border:1px solid var(--line); transition:transform .4s; }
.woocommerce ul.products li.product:hover img { transform:scale(1.03); }
.woocommerce ul.products li.product a.button { margin-top:10px; }

/* ============================================================
   SHOP
   ============================================================ */
.ct-shop-hd { padding:48px var(--gutter) 0; max-width:var(--max-w); margin:0 auto; }
.ct-shop-hd h1 { font-family:var(--font-display); font-size:38px; color:var(--wine); margin:8px 0 0; }
.ct-shop-hd .ct-eyebrow { color:var(--clay); }
.ct-cat-filters { display:flex; gap:10px; flex-wrap:wrap; padding:24px var(--gutter) 0; max-width:var(--max-w); margin:0 auto; }
.ct-cat-filters a { padding:8px 16px; font-size:13px; border-radius:20px; border:1px solid var(--line); color:var(--wine); transition:all .2s; }
.ct-cat-filters a:hover,.ct-cat-filters a.current { background:var(--wine); color:var(--cream); border-color:var(--wine); }
.ct-shop-grid { max-width:var(--max-w); margin:32px auto 100px; padding:0 var(--gutter); }
.woocommerce .woocommerce-result-count { color:var(--clay); font-size:13px; }
.woocommerce .woocommerce-ordering select { padding:9px 12px; border:1px solid var(--line); border-radius:6px; font-size:13px; color:var(--wine); background:#fff; }

/* ============================================================
   SINGLE PRODUCT
   ============================================================ */
.ct-product { max-width:var(--max-w); margin:0 auto; padding:40px var(--gutter) 100px; }
.ct-product__back { display:inline-block; font-size:13px; color:var(--clay); margin-bottom:28px; position:relative; }
.ct-product__back::after { content:""; position:absolute; left:0; right:0; bottom:-3px; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.ct-product__back:hover::after { transform:scaleX(1); }
.ct-product__grid { display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:start; }
@media(max-width:720px){ .ct-product__grid { grid-template-columns:1fr; gap:28px; } }
.ct-product__img { border-radius:18px; overflow:hidden; aspect-ratio:1/1; background:#F0DEC0; border:1px solid var(--line); }
.ct-product__img img { width:100%; height:100%; object-fit:cover; }
.ct-product__cat { font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--clay); margin-bottom:10px; }
.ct-product__title { font-family:var(--font-display); font-size:36px; color:var(--wine); margin-bottom:14px; }
.ct-product__price { font-size:22px; color:var(--wine); margin-bottom:22px; }
.ct-product__price del { color:var(--clay); font-size:16px; margin-right:6px; }
.ct-product__desc { font-size:15px; line-height:1.7; color:var(--clay); margin-bottom:30px; }
.ct-product__meta { margin-top:36px; padding-top:24px; border-top:1px solid var(--line); font-size:13px; color:var(--clay); line-height:1.9; }

.ct-qty-row { display:flex; align-items:center; gap:16px; margin-bottom:22px; }
.ct-qty { display:flex; align-items:center; border:1px solid var(--line); border-radius:6px; }
.ct-qty button { background:none; border:none; padding:10px 14px; font-size:16px; color:var(--wine); }
.ct-qty input[type="number"] { width:40px; text-align:center; border:none; font-size:14px; color:var(--wine); padding:0; background:transparent; -moz-appearance:textfield; }
.ct-qty input::-webkit-outer-spin-button,.ct-qty input::-webkit-inner-spin-button { -webkit-appearance:none; }

/* WooCommerce single overrides */
.woocommerce div.product p.price { font-size:22px; color:var(--wine); }
.woocommerce div.product .woocommerce-product-rating { margin-bottom:14px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { border-bottom:1px solid var(--line); padding:0; background:none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { background:none; border:none; border-radius:0; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { font-size:13px; color:var(--clay); letter-spacing:.04em; text-transform:uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom:2px solid var(--gold); }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { color:var(--wine); }
.woocommerce div.product .woocommerce-tabs .panel { padding:24px 0; color:var(--clay); }
.related.products>h2,.upsells.products>h2 { font-family:var(--font-display); font-size:24px; color:var(--wine); margin-bottom:28px; margin-top:60px; }

/* ============================================================
   CART
   ============================================================ */
.ct-cart-wrap { max-width:900px; margin:0 auto; padding:48px var(--gutter) 100px; }
.ct-cart-wrap h1 { font-family:var(--font-display); font-size:34px; color:var(--wine); margin-bottom:32px; }
.woocommerce table.shop_table { border:none; font-size:14.5px; }
.woocommerce table.shop_table thead th { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--clay); border-bottom:1px solid var(--line); padding:10px 14px; font-weight:500; }
.woocommerce table.shop_table td { border-bottom:1px solid var(--line); padding:18px 14px; color:var(--wine); vertical-align:middle; }
.woocommerce table.cart .product-thumbnail img { border-radius:10px; width:72px; height:72px; object-fit:cover; }
.woocommerce table.cart td.product-name a { font-family:var(--font-display); font-size:16px; color:var(--wine); }
.woocommerce table.cart td.product-remove a { color:var(--clay) !important; font-size:20px; }
.woocommerce table.cart td.product-remove a:hover { color:var(--wine) !important; }
.woocommerce .cart-collaterals { margin-top:40px; }
.woocommerce .cart_totals { max-width:360px; margin-left:auto; }
.woocommerce .cart_totals h2 { font-family:var(--font-display); font-size:20px; color:var(--wine); margin-bottom:16px; }
.woocommerce .cart_totals table th { color:var(--clay); font-weight:400; }
.woocommerce .cart_totals table .order-total td,.woocommerce .cart_totals table .order-total th { font-size:17px; font-weight:600; color:var(--wine); }

/* ============================================================
   CHECKOUT
   ============================================================ */
.ct-checkout-wrap { max-width:1080px; margin:0 auto; padding:48px var(--gutter) 100px; }
.ct-checkout-wrap h1 { font-family:var(--font-display); font-size:32px; color:var(--wine); margin-bottom:6px; }
.ct-checkout-sub { color:var(--clay); font-size:13.5px; margin-bottom:32px; }
.woocommerce-checkout h3,.woocommerce-checkout h2 { font-family:var(--font-display); font-size:20px; color:var(--wine); margin-bottom:18px; font-weight:500; }
#order_review_heading { font-family:var(--font-display); font-size:18px; color:var(--wine); margin-bottom:14px; font-weight:500; }
.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table td { padding:10px 0; border-bottom:1px solid var(--line); color:var(--wine); font-size:14px; }
.woocommerce-checkout-review-order-table .order-total td,.woocommerce-checkout-review-order-table .order-total th { font-size:16px; font-weight:600; }
#payment { background:var(--card); border-radius:var(--radius-card); padding:22px; border:1px solid var(--line); margin-top:24px; }
#payment ul.payment_methods { border-bottom:1px solid var(--line); margin-bottom:14px; padding-bottom:14px; }
#payment ul.payment_methods li label { font-size:14px; color:var(--wine); }
#payment div.payment_box { background:rgba(87,2,16,.04); border-radius:8px; padding:14px; font-size:13.5px; color:var(--clay); }
.woocommerce-order-received h2 { font-family:var(--font-display); font-size:28px; color:var(--wine); }

/* ============================================================
   NOTICES
   ============================================================ */
.woocommerce-message,.woocommerce-info { background:var(--card); border-top:4px solid var(--gold); color:var(--wine); font-size:14px; padding:14px 18px; border-radius:0 0 8px 8px; margin-bottom:24px; }
.woocommerce-error { background:#fdf0f0; border-top:4px solid var(--wine); color:var(--wine); font-size:14px; padding:14px 18px; border-radius:0 0 8px 8px; margin-bottom:24px; }

/* ============================================================
   ABOUT
   ============================================================ */
.ct-about-hero { max-width:800px; margin:0 auto; padding:70px var(--gutter) 50px; text-align:center; }
.ct-about-hero h1 { font-family:var(--font-display); font-size:clamp(32px,5vw,48px); color:var(--wine); margin:14px 0 0; }
.ct-about-body { max-width:700px; margin:0 auto; padding:0 var(--gutter) 80px; }
.ct-about-body p { font-family:var(--font-display); font-size:17px; line-height:1.85; color:var(--clay); margin-bottom:22px; }
.ct-about-body p.is-quote { font-style:italic; color:var(--wine); }
.ct-about-cards { max-width:var(--max-w); margin:0 auto; padding:0 var(--gutter) 90px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media(max-width:760px){ .ct-about-cards { grid-template-columns:1fr; } }
.ct-about-card { padding:26px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-card); }
.ct-about-card h3 { font-family:var(--font-display); font-size:18px; color:var(--wine); margin-bottom:10px; }
.ct-about-card p { font-size:14px; line-height:1.7; color:var(--clay); }

/* ============================================================
   CONTACT
   ============================================================ */
.ct-contact-wrap { max-width:1000px; margin:0 auto; padding:60px var(--gutter) 110px; }
.ct-contact-hd { text-align:center; margin-bottom:50px; }
.ct-contact-hd h1 { font-family:var(--font-display); font-size:clamp(30px,5vw,44px); color:var(--wine); margin-top:14px; }
.ct-contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:50px; }
@media(max-width:720px){ .ct-contact-grid { grid-template-columns:1fr; } }
.ct-info-label { font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.ct-info-val { font-size:15.5px; color:var(--wine); margin-bottom:30px; }
.ct-contact-form .row { margin-bottom:16px; }
.ct-contact-form label { display:block; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--clay); margin-bottom:6px; }
.ct-contact-form input,.ct-contact-form textarea { width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:4px; font-size:14px; font-family:var(--font-body); color:var(--wine); background:#fff; outline:none; transition:border-color .2s,box-shadow .2s; }
.ct-contact-form input:focus,.ct-contact-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.ct-contact-form textarea { resize:vertical; min-height:130px; }
.ct-two-col { display:grid; grid-template-columns:1fr 1fr; gap:14px; }

/* ============================================================
   FOOTER
   ============================================================ */
.ct-footer { background:var(--wine); color:var(--cream); margin-top:100px; }
.ct-footer__inner { max-width:var(--max-w); margin:0 auto; padding:56px var(--gutter) 36px; display:flex; flex-wrap:wrap; gap:48px; justify-content:space-between; }
.ct-footer__brand { max-width:280px; }
.ct-footer__brand-name { font-family:var(--font-display); font-size:22px; color:var(--gold); margin-bottom:12px; }
.ct-footer__brand p { font-size:13.5px; line-height:1.7; color:var(--text-wine); }
.ct-footer__col-title { font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; }
.ct-footer__links { display:flex; flex-direction:column; gap:9px; }
.ct-footer__links a { font-size:13.5px; color:var(--text-wine); transition:color .2s; }
.ct-footer__links a:hover { color:var(--gold); }
.ct-footer__nl p { font-size:13px; color:var(--text-wine); margin-bottom:10px; }
.ct-footer__nl-form { display:flex; gap:8px; }
.ct-footer__nl-form input { flex:1; padding:9px 11px; font-size:13px; border-radius:4px; border:1px solid var(--line-wine); background:rgba(255,249,233,.06); color:var(--cream); outline:none; font-family:var(--font-body); }
.ct-footer__nl-form input::placeholder { color:var(--text-wine); }
.ct-footer__nl-form button { background:var(--gold); color:var(--wine-deep); border:none; padding:9px 14px; font-size:12.5px; font-weight:600; border-radius:4px; cursor:pointer; }
.ct-footer__bottom { border-top:1px solid var(--line-wine); padding:18px var(--gutter); font-size:12px; color:rgba(255,249,233,.55); text-align:center; }

/* ============================================================
   UTILS
   ============================================================ */
.u-vh { position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; }

/* ============================================================
   ELEMENTOR COMPATIBILITY
   ============================================================ */
.ct-elementor-page { width: 100%; }
.ct-elementor-page .elementor-section { width: 100%; }

/* Remove default WordPress body padding that can offset Elementor sections */
.elementor-page .ct-elementor-page { margin: 0; padding: 0; }

/* Make Elementor full-width sections truly full width */
.elementor-section.elementor-section-stretched { 
    left: 0 !important; 
    width: 100% !important; 
}

/* Hero section built in Elementor — wine background helper class */
.e-hero-section { background: var(--wine) !important; }
.e-gold-section { background: linear-gradient(180deg, #FBEFD3 0%, #F7E3B8 100%) !important; }
.e-card-section { background: var(--card) !important; }

/* Elementor content area reset */
.site-content { margin: 0; padding: 0; }
.content-area { margin: 0; padding: 0; }
.site-main { margin: 0; padding: 0; }
.site-main article { margin: 0; padding: 0; }
.site-main .entry-content { margin: 0; padding: 0; }
