/*
Theme Name: ACG Printing Advanced
Description: Identité ACG Printing modernisée pour Elementor, WooCommerce et PonantPrint.
Author: ACG Printing / Com du Ponant
Author URI: https://comduponant.fr
Template: hello-elementor
Version: 2.0.0
Text Domain: acg-printing
*/

:root {
  --acg-ink: #101828;
  --acg-navy: #182235;
  --acg-navy-2: #202d44;
  --acg-pink: #ec1672;
  --acg-pink-dark: #cf0f60;
  --acg-pink-soft: #fff0f6;
  --acg-gold: #b99534;
  --acg-gold-soft: #fbf5e4;
  --acg-text: #344054;
  --acg-muted: #667085;
  --acg-line: #e4e7ec;
  --acg-surface: #ffffff;
  --acg-bg: #f7f9fc;
  --acg-success: #079455;
  --acg-radius-sm: 10px;
  --acg-radius: 16px;
  --acg-radius-lg: 24px;
  --acg-shadow: 0 14px 40px rgba(16, 24, 40, .08);
  --acg-shadow-strong: 0 24px 70px rgba(16, 24, 40, .13);
  --acg-max: 1380px;
}

html { scroll-behavior: smooth; }
body,
button,
input,
select,
textarea,
.elementor-widget-text-editor,
.elementor-widget-heading,
.woocommerce,
.woocommerce-page {
  font-family: "Segoe UI", Arial, sans-serif !important;
}
body {
  color: var(--acg-text);
  background: var(--acg-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { background: var(--acg-pink); color: #fff; }
a { color: var(--acg-pink); transition: color .18s ease, opacity .18s ease; }
a:hover { color: var(--acg-pink-dark); }
:focus-visible { outline: 3px solid rgba(236,22,114,.28); outline-offset: 3px; }

h1,h2,h3,h4,h5,h6,
.elementor-heading-title {
  font-family: "Segoe UI", Arial, sans-serif !important;
  color: var(--acg-ink);
  letter-spacing: -.035em;
}
h1 { font-size: clamp(2.5rem, 5vw, 5rem); line-height: .98; font-weight: 750; }
h2 { font-size: clamp(2rem, 3.7vw, 3.4rem); line-height: 1.05; font-weight: 730; }
h3 { font-size: clamp(1.3rem, 2vw, 1.8rem); line-height: 1.2; font-weight: 700; }
p { line-height: 1.7; }

/* Global Elementor spacing */
.elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--acg-max); }
.elementor-location-header,
.elementor-location-footer { font-family: "Segoe UI", Arial, sans-serif !important; }

/* Header existing Elementor template */
.elementor-location-header .elementor-element-37174e5 {
  background: var(--acg-navy) !important;
  border: 0 !important;
}
.elementor-location-header .elementor-element-37174e5 .elementor-widget-container,
.elementor-location-header .elementor-element-37174e5 a,
.elementor-location-header .elementor-element-37174e5 .elementor-icon-list-text {
  font-size: 12px !important;
  letter-spacing: .01em;
}
.elementor-location-header .elementor-element-7860e516 {
  background: rgba(255,255,255,.97) !important;
  border-bottom: 1px solid rgba(16,24,40,.07);
  box-shadow: 0 8px 30px rgba(16,24,40,.055);
  position: relative;
  z-index: 50;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item {
  color: var(--acg-ink) !important;
  font-weight: 650 !important;
  font-size: 14px !important;
  letter-spacing: -.01em;
  padding-top: 25px !important;
  padding-bottom: 25px !important;
}
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,
.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: var(--acg-pink) !important;
}
.elementor-location-header .elementor-menu-cart__toggle .elementor-button {
  border-radius: 999px !important;
  background: var(--acg-pink-soft) !important;
  color: var(--acg-pink) !important;
  border: 1px solid rgba(236,22,114,.14) !important;
}

/* Footer */
.elementor-location-footer .elementor-element-48aa10ec {
  background: var(--acg-navy) !important;
  border-top: 1px solid rgba(255,255,255,.08);
}
.elementor-location-footer,
.elementor-location-footer a,
.elementor-location-footer .elementor-icon-list-text { color: rgba(255,255,255,.78) !important; }
.elementor-location-footer a:hover { color: #fff !important; }

/* Buttons */
.elementor-button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  border-radius: 12px !important;
  font-family: "Segoe UI", Arial, sans-serif !important;
  font-weight: 700 !important;
  text-transform: none !important;
  letter-spacing: -.01em !important;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease !important;
}
.elementor-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  transform: translateY(-1px);
}

/* ACG modern home */
.acg-modern-home { overflow: hidden; background: var(--acg-bg); }
.acg-modern-home * { box-sizing: border-box; }
.acg-shell { width: min(var(--acg-max), calc(100% - 48px)); margin: 0 auto; }
.acg-home-hero {
  position: relative;
  padding: clamp(64px, 9vw, 126px) 0 clamp(58px, 8vw, 104px);
  background:
    radial-gradient(circle at 78% 16%, rgba(236,22,114,.15), transparent 27%),
    radial-gradient(circle at 17% 85%, rgba(185,149,52,.10), transparent 24%),
    linear-gradient(135deg, #f9fbff 0%, #fff 52%, #fff8fb 100%);
  border-bottom: 1px solid var(--acg-line);
}
.acg-hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .72fr); gap: clamp(42px,7vw,96px); align-items: center; }
.acg-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px; border-radius: 999px;
  background: var(--acg-pink-soft); color: #c81062;
  font-size: 12px; font-weight: 800; letter-spacing: .065em;
  text-transform: uppercase;
}
.acg-eyebrow:before { content:""; width:8px; height:8px; border-radius:999px; background:var(--acg-pink); box-shadow:0 0 0 5px rgba(236,22,114,.09); }
.acg-home-hero h1 { max-width: 840px; margin: 20px 0 24px; }
.acg-home-hero h1 span { color: var(--acg-pink); }
.acg-lead { max-width: 720px; color: var(--acg-muted); font-size: clamp(17px,1.4vw,20px); margin: 0; }
.acg-hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.acg-btn { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 22px; border-radius:13px; text-decoration:none !important; font-weight:750; }
.acg-btn-primary { color:#fff !important; background:var(--acg-pink); box-shadow:0 12px 26px rgba(236,22,114,.22); }
.acg-btn-primary:hover { background:var(--acg-pink-dark); color:#fff !important; transform:translateY(-1px); }
.acg-btn-secondary { color:var(--acg-ink) !important; background:#fff; border:1px solid var(--acg-line); box-shadow:0 8px 24px rgba(16,24,40,.05); }
.acg-btn-secondary:hover { border-color:#cfd4dc; color:var(--acg-ink) !important; transform:translateY(-1px); }
.acg-hero-note { margin-top:20px; color:#7a8699; font-size:13px; }

.acg-config-preview { position:relative; padding:18px; border:1px solid #e8ebf0; border-radius:26px; background:rgba(255,255,255,.78); box-shadow:var(--acg-shadow-strong); backdrop-filter:blur(14px); }
.acg-preview-head { padding:20px 20px 18px; border-radius:18px; background:linear-gradient(135deg,var(--acg-navy),#2c1733); color:#fff; }
.acg-preview-head small { display:block; color:rgba(255,255,255,.62); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.acg-preview-head strong { display:block; margin-top:8px; font-size:24px; line-height:1.1; }
.acg-preview-progress { display:flex; gap:5px; margin-top:16px; }
.acg-preview-progress i { height:4px; flex:1; border-radius:999px; background:rgba(255,255,255,.15); }
.acg-preview-progress i:nth-child(-n+3) { background:var(--acg-pink); }
.acg-preview-body { padding:12px 4px 2px; display:grid; gap:10px; }
.acg-option-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.acg-option { min-height:68px; padding:13px 14px; border:1px solid var(--acg-line); border-radius:14px; background:#fff; }
.acg-option span { display:block; color:#98a2b3; font-size:11px; margin-bottom:5px; }
.acg-option strong { color:var(--acg-ink); font-size:14px; line-height:1.25; }
.acg-option.is-active { border-color:var(--acg-pink); background:#fff7fb; box-shadow:0 0 0 2px rgba(236,22,114,.07); }
.acg-preview-price { margin-top:10px; padding:16px 18px; border-radius:16px; background:var(--acg-navy); color:#fff; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.acg-preview-price span { color:rgba(255,255,255,.62); font-size:11px; }
.acg-preview-price strong { font-size:30px; line-height:1; letter-spacing:-.04em; }

.acg-trust-strip { background:#fff; border-bottom:1px solid var(--acg-line); }
.acg-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.acg-trust-item { display:flex; align-items:center; gap:12px; padding:22px 18px; border-right:1px solid var(--acg-line); color:var(--acg-text); }
.acg-trust-item:first-child { padding-left:0; }
.acg-trust-item:last-child { border-right:0; }
.acg-trust-icon { width:34px; height:34px; flex:0 0 34px; border-radius:10px; display:grid; place-items:center; background:var(--acg-pink-soft); color:var(--acg-pink); font-weight:800; }
.acg-trust-item strong { display:block; font-size:13px; color:var(--acg-ink); }
.acg-trust-item small { display:block; margin-top:2px; color:#98a2b3; font-size:11px; }

.acg-section { padding:clamp(70px,8vw,116px) 0; }
.acg-section-white { background:#fff; }
.acg-section-head { display:flex; justify-content:space-between; gap:32px; align-items:end; margin-bottom:38px; }
.acg-section-head > div { max-width:760px; }
.acg-section-head .acg-eyebrow { margin-bottom:14px; }
.acg-section-head h2 { margin:0; }
.acg-section-head p { margin:12px 0 0; color:var(--acg-muted); font-size:17px; }
.acg-text-link { color:var(--acg-ink) !important; font-weight:750; white-space:nowrap; text-decoration:none !important; }
.acg-text-link:after { content:"→"; margin-left:8px; color:var(--acg-pink); }

/* WooCommerce product cards on homepage and archives */
.acg-products .woocommerce ul.products,
.woocommerce ul.products { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px !important; margin:0 !important; }
.acg-products .woocommerce ul.products li.product,
.woocommerce ul.products li.product {
  width:auto !important; margin:0 !important; float:none !important;
  background:#fff; border:1px solid var(--acg-line); border-radius:18px;
  padding:12px 12px 16px !important; box-shadow:0 8px 28px rgba(16,24,40,.045);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  overflow:hidden;
}
.woocommerce ul.products li.product:hover { transform:translateY(-3px); box-shadow:var(--acg-shadow); border-color:#d6dae2; }
.woocommerce ul.products li.product a img { border-radius:13px; margin:0 0 16px !important; aspect-ratio:1 / 1; object-fit:cover; background:#f2f4f7; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size:17px !important; line-height:1.3; font-weight:700; color:var(--acg-ink); padding:0 5px !important; }
.woocommerce ul.products li.product .price { padding:0 5px; color:var(--acg-pink) !important; font-size:16px !important; font-weight:750 !important; }
.woocommerce ul.products li.product .button { width:calc(100% - 10px); margin:12px 5px 0 !important; min-height:44px; display:inline-flex; align-items:center; justify-content:center; background:var(--acg-ink) !important; color:#fff !important; }
.woocommerce ul.products li.product .button:hover { background:var(--acg-pink) !important; }

.acg-special-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.acg-special-card { position:relative; min-height:460px; padding:34px; border-radius:24px; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; text-decoration:none !important; background:#111; box-shadow:var(--acg-shadow); isolation:isolate; }
.acg-special-card:before { content:""; position:absolute; inset:0; background-image:var(--acg-card-bg); background-size:cover; background-position:center; z-index:-2; transition:transform .5s ease; }
.acg-special-card:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(9,16,27,.10) 18%,rgba(9,16,27,.86) 100%); z-index:-1; }
.acg-special-card:hover:before { transform:scale(1.035); }
.acg-special-card .tag { align-self:flex-start; padding:7px 10px; border-radius:999px; color:#fff; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.18); backdrop-filter:blur(8px); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.acg-special-card h3 { color:#fff; margin:14px 0 8px; font-size:clamp(28px,3vw,42px); }
.acg-special-card p { max-width:520px; margin:0; color:rgba(255,255,255,.74); }
.acg-special-card .discover { margin-top:22px; color:#fff; font-weight:750; }
.acg-special-card.acg-gold-card:after { background:linear-gradient(180deg,rgba(25,20,8,.08) 18%,rgba(25,20,8,.88) 100%); }
.acg-special-card.acg-gold-card .tag { background:rgba(185,149,52,.25); }

.acg-process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.acg-step { padding:26px; border:1px solid var(--acg-line); border-radius:18px; background:#fff; }
.acg-step-num { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; background:var(--acg-pink-soft); color:var(--acg-pink); font-weight:800; }
.acg-step h3 { margin:20px 0 8px; font-size:18px; }
.acg-step p { margin:0; color:var(--acg-muted); font-size:14px; line-height:1.6; }

.acg-cta { padding:clamp(40px,6vw,74px); border-radius:28px; background:linear-gradient(135deg,var(--acg-navy),#28162c); color:#fff; display:flex; justify-content:space-between; gap:42px; align-items:center; box-shadow:var(--acg-shadow-strong); }
.acg-cta h2 { color:#fff; margin:0; max-width:780px; }
.acg-cta p { margin:12px 0 0; max-width:760px; color:rgba(255,255,255,.66); }
.acg-cta .acg-btn-secondary { background:#fff; border-color:#fff; }

/* Generic content pages */
.elementor-location-single:not(.elementor-location-product) .elementor-widget-text-editor,
body.page .elementor-widget-text-editor { color:var(--acg-text); }
body.page:not(.home) .elementor-section-wrap > .elementor-section:first-child,
body.page:not(.home) .elementor > .elementor-section:first-child { background-color:var(--acg-bg); }

/* WooCommerce archive */
.woocommerce-products-header,
.elementor-widget-woocommerce-archive-description { color:var(--acg-text); }
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { color:var(--acg-muted); }
.woocommerce .woocommerce-ordering select,
.woocommerce select,
.woocommerce input.input-text,
.woocommerce textarea,
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  min-height:46px; border:1px solid var(--acg-line) !important; border-radius:11px !important; background:#fff !important; color:var(--acg-ink) !important;
}

/* Cart, checkout, account */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce { max-width:1240px; margin:0 auto; }
.woocommerce table.shop_table,
.woocommerce .cart_totals,
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-account .woocommerce-MyAccount-content {
  border:1px solid var(--acg-line) !important;
  border-radius:18px !important;
  background:#fff;
  box-shadow:0 8px 28px rgba(16,24,40,.035);
}
.woocommerce table.shop_table { overflow:hidden; }
.woocommerce-cart .cart-collaterals .cart_totals { padding:24px; }
.woocommerce-checkout #order_review { padding:22px; }
.woocommerce-checkout #payment { background:#f8fafc !important; border-radius:14px !important; }
.woocommerce-checkout #payment div.payment_box { background:#fff !important; border:1px solid var(--acg-line); border-radius:12px; }
.woocommerce-checkout #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { background:var(--acg-pink) !important; color:#fff !important; min-height:56px; display:flex; align-items:center; justify-content:center; box-shadow:0 12px 26px rgba(236,22,114,.18); }
.woocommerce-checkout #place_order:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background:var(--acg-pink-dark) !important; }
.woocommerce-info,
.woocommerce-message,
.woocommerce-error { border-radius:12px; border-top:0 !important; border:1px solid var(--acg-line); background:#fff; box-shadow:0 6px 20px rgba(16,24,40,.04); }
.woocommerce-message:before { color:var(--acg-success) !important; }

/* Single products, including PonantPrint */
.single-product .elementor-location-single { background:var(--acg-bg); }
.single-product .summary,
.single-product .elementor-widget-woocommerce-product-add-to-cart { font-family:"Segoe UI",Arial,sans-serif !important; }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color:var(--acg-pink); font-weight:750; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius:10px 10px 0 0; }

/* Keep special gold identity as a secondary premium accent */
.acg-gold,
.acg-gold-text { color:var(--acg-gold) !important; }
.acg-gold-bg { background:var(--acg-gold-soft) !important; }

/* Responsive */
@media (max-width: 1100px) {
  .acg-hero-grid { grid-template-columns:1fr; }
  .acg-config-preview { max-width:720px; }
  .acg-products .woocommerce ul.products,
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .acg-process-grid { grid-template-columns:repeat(2,1fr); }
  .acg-trust-grid { grid-template-columns:repeat(2,1fr); }
  .acg-trust-item:nth-child(2) { border-right:0; }
  .acg-trust-item:nth-child(-n+2) { border-bottom:1px solid var(--acg-line); }
}
@media (max-width: 767px) {
  .acg-shell { width:min(100% - 28px,var(--acg-max)); }
  .acg-home-hero { padding-top:52px; }
  .acg-home-hero h1 { font-size:clamp(42px,13vw,64px); }
  .acg-hero-actions { flex-direction:column; }
  .acg-btn { width:100%; }
  .acg-option-row { grid-template-columns:1fr; }
  .acg-special-grid,
  .acg-process-grid,
  .acg-products .woocommerce ul.products,
  .woocommerce ul.products { grid-template-columns:1fr !important; }
  .acg-special-card { min-height:380px; padding:24px; }
  .acg-section-head { display:block; }
  .acg-section-head .acg-text-link { display:inline-block; margin-top:20px; }
  .acg-trust-grid { grid-template-columns:1fr; }
  .acg-trust-item { border-right:0; border-bottom:1px solid var(--acg-line); padding-left:0; }
  .acg-trust-item:last-child { border-bottom:0; }
  .acg-cta { display:block; padding:32px 24px; }
  .acg-cta .acg-btn { margin-top:26px; }
  .elementor-location-header .elementor-element-37174e5 { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

/* Modern WooCommerce archive template */
.acg-archive-hero { border-bottom:1px solid var(--acg-line); }
.acg-archive-hero .woocommerce-breadcrumb { margin:0; color:#98a2b3; font-size:13px; }
.acg-archive-hero .woocommerce-breadcrumb a { color:#667085; text-decoration:none; }
.acg-archive-hero .woocommerce-breadcrumb a:hover { color:var(--acg-pink); }
.acg-archive-hero .term-description,
.acg-archive-hero .woocommerce-archive-description { max-width:760px; color:var(--acg-muted); }
.acg-archive-products .woocommerce-notices-wrapper { margin-bottom:20px; }
.acg-archive-hero { padding:58px 24px 42px !important; background:#f7f9fc !important; }
.acg-archive-products { padding:44px 24px 90px !important; background:#fff !important; }
@media (max-width:767px){
  .acg-archive-hero { padding:40px 16px 30px !important; }
  .acg-archive-products { padding:28px 16px 64px !important; }
}
