/*
Theme Name: L'Opportunist
Theme URI: https://lopportunist.fr/
Author: L'Opportunist
Description: Thème léger et éditorial conçu pour L'Opportunist et son plugin L'Opportunist Core. Compatible WooCommerce et Elementor.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: lopportunist-theme
*/

:root{
  --lopt-bg:#f6f0e7;
  --lopt-paper:#fffdf9;
  --lopt-ink:#17231f;
  --lopt-green:#153b31;
  --lopt-green-2:#0f5b46;
  --lopt-cognac:#aa6842;
  --lopt-muted:#626863;
  --lopt-line:rgba(23,35,31,.14);
  --lopt-max:1380px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--lopt-bg);color:var(--lopt-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
.lopt-main{width:min(var(--lopt-max),calc(100% - 40px));margin:0 auto;min-height:55vh;padding:42px 0 70px}
.lopt-main--elementor{width:100%;max-width:none;padding:0;overflow:hidden}
.lopt-page-head{max-width:980px;margin:0 auto 28px}
.lopt-page-title{font:700 clamp(42px,6vw,78px)/.95 Georgia,"Times New Roman",serif;letter-spacing:-.035em;margin:0}
.lopt-entry{max-width:980px;margin:0 auto;font-size:17px;line-height:1.75;color:#515852}
.lopt-entry h2,.lopt-entry h3{font-family:Georgia,"Times New Roman",serif;color:var(--lopt-ink)}
.lopt-entry h2{font-size:clamp(30px,4vw,48px);line-height:1.02;margin:60px 0 18px}
.lopt-entry a{text-decoration:underline;text-underline-offset:3px}

/* Fallback header — utilisé sans Core */
.lopt-topbar{height:28px;background:#0d0e0d;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - var(--lopt-max))/2));font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.lopt-header{background:rgba(255,253,249,.96);border-bottom:1px solid var(--lopt-line);position:relative;z-index:30}
.lopt-header-inner{max-width:var(--lopt-max);height:86px;margin:auto;padding:0 8px;display:grid;grid-template-columns:260px 1fr auto;align-items:center;gap:26px}
.lopt-brand strong{font:700 25px/1 Georgia,"Times New Roman",serif;display:block}
.lopt-brand small{display:block;margin-top:7px;font-size:7px;letter-spacing:.08em}
.lopt-nav{display:flex;justify-content:center;gap:28px;font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.025em}
.lopt-actions{display:flex;align-items:center;gap:15px}
.lopt-actions a{font-size:11px;font-weight:700}
.lopt-cart-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;margin-left:4px;border-radius:50%;background:var(--lopt-green);color:#fff;font-size:10px}
.lopt-menu-button{display:none;border:0;background:transparent;padding:8px;cursor:pointer}
.lopt-menu-button span{display:block;width:23px;height:1px;background:var(--lopt-ink);margin:6px 0}
.lopt-mobile-menu{display:none;padding:12px 20px 22px;border-top:1px solid var(--lopt-line);background:var(--lopt-paper)}
.lopt-mobile-menu a{display:block;padding:13px 0;border-bottom:1px solid var(--lopt-line);font-size:13px;font-weight:700}

/* Footer — utilisé sans Core */
.lopt-footer{background:#17382f;color:#fff;margin-top:0}
.lopt-footer-inner{max-width:var(--lopt-max);margin:auto;padding:58px 8px;display:grid;grid-template-columns:1.4fr .7fr .7fr;gap:70px}
.lopt-footer .lopt-brand small{color:rgba(255,255,255,.72)}
.lopt-footer p{max-width:400px;color:rgba(255,255,255,.72);font-size:13px;line-height:1.65}
.lopt-footer-col b{display:block;margin-bottom:15px;text-transform:uppercase;font-size:10px;letter-spacing:.08em}
.lopt-footer-col a{display:block;margin:9px 0;color:rgba(255,255,255,.78);font-size:12px}
.lopt-footer-bottom{max-width:var(--lopt-max);margin:auto;padding:18px 8px 22px;border-top:1px solid rgba(255,255,255,.15);font-size:10px;color:rgba(255,255,255,.6)}

/* WooCommerce hors pages prises en charge par le Core */
.woocommerce .button,.woocommerce button.button,.woocommerce input.button,.woocommerce a.button,.woocommerce #respond input#submit{background:var(--lopt-green)!important;color:#fff!important;border-radius:0!important;padding:14px 20px!important;font-size:11px!important;text-transform:uppercase!important;letter-spacing:.055em!important;font-weight:800!important}
.woocommerce .button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce a.button:hover{background:var(--lopt-green-2)!important;color:#fff!important}
.woocommerce-message,.woocommerce-info,.woocommerce-error{background:var(--lopt-paper)!important;border-top-color:var(--lopt-green)!important;color:var(--lopt-ink)!important}
.woocommerce-message::before,.woocommerce-info::before{color:var(--lopt-green)!important}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.select2-container--default .select2-selection--single{background:#fff;border:1px solid var(--lopt-line);border-radius:0;min-height:48px;padding:10px 12px}
.woocommerce-cart .cart-collaterals .cart_totals,.woocommerce-checkout-review-order,.woocommerce-checkout #customer_details>div{background:var(--lopt-paper);padding:24px;border:1px solid var(--lopt-line)}
.woocommerce table.shop_table{border:1px solid var(--lopt-line);border-radius:0;background:var(--lopt-paper)}
.woocommerce table.shop_table th{font-size:10px;text-transform:uppercase;letter-spacing:.05em}
.woocommerce table.shop_table td{border-top:1px solid var(--lopt-line)}
.woocommerce-cart h1,.woocommerce-checkout h1{font:700 clamp(38px,5vw,62px)/.95 Georgia,"Times New Roman",serif}

/* Ne pas casser les widgets Produits Elementor Pro historiques. */
.elementor-widget-woocommerce-products ul.products,
.elementor-widget-wc-archive-products ul.products{font-family:inherit}

/* Blog / archives classiques */
.lopt-archive-head{max-width:var(--lopt-max);margin:0 auto;padding:54px 0 28px;border-bottom:1px solid var(--lopt-line)}
.lopt-archive-head h1{font:700 clamp(44px,6vw,76px)/.95 Georgia,"Times New Roman",serif;margin:0}
.lopt-post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.lopt-post-card{background:var(--lopt-paper);border:1px solid var(--lopt-line)}
.lopt-post-card img{display:block;width:100%;aspect-ratio:1.35/1;object-fit:cover}
.lopt-post-card-copy{padding:20px}
.lopt-post-card h2{font:700 27px/1.05 Georgia,"Times New Roman",serif;margin:0 0 12px}
.lopt-post-card p{font-size:13px;line-height:1.6;color:var(--lopt-muted)}
.lopt-meta{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--lopt-cognac);margin-bottom:9px}

@media(max-width:900px){
 .lopt-header-inner{height:70px;padding:0 18px;grid-template-columns:1fr auto}.lopt-nav{display:none}.lopt-menu-button{display:block}.lopt-actions .lopt-account{display:none}.lopt-topbar span:nth-child(2),.lopt-topbar span:nth-child(3){display:none}.lopt-topbar{justify-content:center;height:24px}.lopt-mobile-menu.is-open{display:block}.lopt-footer-inner{grid-template-columns:1fr;gap:30px;padding:44px 22px}.lopt-footer-bottom{padding:16px 22px}.lopt-post-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .lopt-main{width:calc(100% - 28px);padding:28px 0 50px}.lopt-main--elementor{width:100%;padding:0}.lopt-page-title{font-size:42px}.lopt-entry{font-size:16px;line-height:1.72}.lopt-header-inner{height:66px}.lopt-brand strong{font-size:21px}.lopt-brand small{font-size:6px}.lopt-actions a{font-size:11px}.lopt-post-grid{grid-template-columns:1fr}.lopt-archive-head{padding:38px 0 22px}
}
