/*
Theme Name: Snazzy Constance
Theme URI: https://lavoixdeconstance.com
Author: Snazzy Digital Agency
Author URI: https://snazzy.fr
Description: Thème hôte du plugin « Snazzy Constance Page » : en-tête fixe, menu plein écran, bouton flottant et pied de page V3 sur toutes les pages (articles, boutique WooCommerce, 404), les 7 pages Constance rendues par le plugin. Aucun constructeur de pages.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: Propriétaire, usage réservé à La Voix de Constance
Text Domain: snazzy-constance
Tags: sur-mesure, calendly, woocommerce
*/

/* ==========================================================================
 * Snazzy Constance : socle des pages hors plugin (articles, pages simples,
 * archives, recherche, 404, WooCommerce). Les 7 pages Constance et
 * l'habillage sont stylés par le plugin (theme.css, page-*.css).
 * Vocabulaire V3 : crème #F7F4F1 / brun #5E3B2B / rose #D8B7B1 /
 * taupe #B4A79E / encre #1F1F1F, Playfair Display + Manrope.
 * ========================================================================== */

body.snc-theme{margin:0;background:#F7F4F1;color:#1F1F1F;font-family:'Manrope',sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.snc-main{display:block;min-height:40vh}
.snc-wrap{max-width:1360px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.snc-narrow{max-width:820px;margin:0 auto}

/* ---- en-tête de page générique ---- */
.snc-hero{padding:clamp(150px,16vw,220px) clamp(20px,4vw,56px) clamp(36px,5vw,64px)}
.snc-kicker{display:flex;align-items:center;gap:14px;font-size:10px;font-weight:600;letter-spacing:0.38em;text-transform:uppercase;color:#6F6A67;margin-bottom:26px;animation:vcFadeUp 1s cubic-bezier(0.16,1,0.3,1) 0.1s both}
.snc-kicker::before{content:"";display:block;width:44px;height:1px;background:#B4A79E}
.snc-kicker em{font-family:'Playfair Display',serif;font-style:italic;font-size:15px;letter-spacing:0;color:#B4A79E}
.snc-title{margin:0;font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(38px,6vw,96px);line-height:0.98;letter-spacing:-0.015em;text-transform:uppercase;animation:vcWord 1.3s cubic-bezier(0.16,1,0.3,1) 0.2s both}
.snc-title em{font-style:italic;font-weight:400;text-transform:none;color:#D8B7B1}
.snc-lead{margin:22px 0 0;max-width:640px;font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(19px,2vw,26px);line-height:1.5;color:#1F1F1F;animation:vcFadeUp 1.1s cubic-bezier(0.16,1,0.3,1) 0.5s both}
.snc-meta{margin-top:18px;font-size:10.5px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:#6F6A67}
.snc-meta a{color:#1F1F1F;border-bottom:1px solid rgba(31,31,31,0.3);padding-bottom:3px}

/* ---- image de mise en avant ---- */
.snc-cover{max-width:1360px;margin:0 auto;padding:0 clamp(20px,4vw,56px)}
.snc-cover figure{margin:0;position:relative;aspect-ratio:21/9;overflow:hidden;background:#EEE8E2}
.snc-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}

/* ---- contenu éditorial ---- */
.snc-prose{padding:clamp(40px,5vw,70px) clamp(20px,4vw,56px) clamp(90px,10vw,140px)}
.snc-prose .snc-narrow{font-size:16.5px;line-height:1.9;color:#3A3634}
.snc-prose h2,.snc-prose h3,.snc-prose h4{font-family:'Playfair Display',serif;font-weight:500;line-height:1.15;color:#1F1F1F;margin:1.6em 0 .6em;letter-spacing:-0.01em}
.snc-prose h2{font-size:clamp(28px,3vw,40px)}
.snc-prose h3{font-size:clamp(22px,2.2vw,28px)}
.snc-prose h4{font-size:19px}
.snc-prose p{margin:0 0 1.2em}
.snc-prose a{color:#5E3B2B;border-bottom:1px solid rgba(94,59,43,0.35);transition:border-color .3s ease}
.snc-prose a:hover{color:#5E3B2B;border-color:#5E3B2B}
.snc-prose ul,.snc-prose ol{padding-left:1.3em;margin:0 0 1.2em}
.snc-prose li{margin-bottom:.4em}
.snc-prose blockquote{margin:2em 0;padding:0 0 0 26px;border-left:1px solid #D8B7B1;font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(19px,1.8vw,24px);line-height:1.5;color:#1F1F1F}
.snc-prose img{max-width:100%;height:auto}
.snc-prose figure{margin:2em 0}
.snc-prose figcaption{margin-top:10px;font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:#6F6A67}
.snc-prose hr{border:0;border-top:1px solid rgba(31,31,31,0.14);margin:2.4em 0}
.snc-prose .wp-block-buttons a,.snc-prose .wp-block-button__link{display:inline-flex;align-items:center;gap:14px;background:#5E3B2B;color:#F7F4F1;border:0;border-radius:0;padding:17px 24px;font-family:'Manrope',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;text-decoration:none}

/* ---- lien de retour ---- */
.snc-back{display:inline-flex;align-items:center;gap:12px;margin-top:44px;font-size:10.5px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:#1F1F1F;border-bottom:1px solid #1F1F1F;padding-bottom:5px;transition:color .35s ease,border-color .35s ease}
.snc-back:hover{color:#B4A79E;border-color:#B4A79E}
.snc-back svg{flex:none}

/* ---- listes d'articles ---- */
.snc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:clamp(24px,3vw,44px);padding:0 clamp(20px,4vw,56px) clamp(90px,10vw,140px);max-width:1360px;margin:0 auto;box-sizing:border-box}
.snc-card{display:flex;flex-direction:column;gap:16px}
.snc-card-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:#EEE8E2;display:block}
.snc-card-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(0.16,1,0.3,1)}
.snc-card:hover .snc-card-img img{transform:scale(1.05)}
.snc-card-date{font-size:9.5px;font-weight:600;letter-spacing:0.3em;text-transform:uppercase;color:#6F6A67}
.snc-card h2{margin:0;font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(22px,2vw,28px);line-height:1.2}
.snc-card h2 a{color:#1F1F1F}
.snc-card h2 a:hover{color:#5E3B2B}
.snc-card p{margin:0;font-size:14.5px;line-height:1.8;color:#6F6A67}
.snc-card-more{font-size:10px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:#1F1F1F;border-bottom:1px solid rgba(31,31,31,0.4);padding-bottom:4px;align-self:flex-start}
.snc-empty{padding:0 clamp(20px,4vw,56px) clamp(90px,10vw,140px);font-size:16px;line-height:1.9;color:#6F6A67}

/* ---- pagination ---- */
.snc-pagination{display:flex;flex-wrap:wrap;gap:8px;padding:0 clamp(20px,4vw,56px) clamp(90px,10vw,140px);max-width:1360px;margin:0 auto;box-sizing:border-box}
.snc-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid rgba(31,31,31,0.2);font-size:11px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:#1F1F1F;transition:background .35s ease,color .35s ease,border-color .35s ease}
.snc-pagination .page-numbers.current,.snc-pagination .page-numbers:hover{background:#5E3B2B;color:#F7F4F1;border-color:#5E3B2B}

/* ---- 404 ---- */
.snc-404{background:#5E3B2B;color:#F7F4F1;min-height:78svh;display:flex;align-items:center;padding:clamp(140px,15vw,200px) clamp(20px,4vw,56px)}
.snc-404 .snc-kicker{color:#D8B7B1;justify-content:center}
.snc-404 .snc-kicker::before{display:none}
.snc-404 h1{margin:0 0 24px;font-family:'Playfair Display',serif;font-weight:500;font-size:clamp(40px,6vw,86px);line-height:1;letter-spacing:-0.015em}
.snc-404 h1 em{font-style:italic;font-weight:400;color:#D8B7B1}
.snc-404 p{margin:0 auto 40px;max-width:460px;font-size:15.5px;line-height:1.9;color:rgba(247,244,241,0.65)}
.snc-btn{display:inline-flex;align-items:center;gap:14px;background:#F7F4F1;color:#5E3B2B;padding:18px 26px;font-size:10px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;transition:background .35s ease,color .35s ease}
.snc-btn:hover{background:#D8B7B1;color:#5E3B2B}
.snc-btn--dark{background:#5E3B2B;color:#F7F4F1}
.snc-btn--dark:hover{background:#B4A79E;color:#1F1F1F}

/* ---- recherche ---- */
.snc-search{display:flex;gap:10px;max-width:560px;margin:26px 0 0}
.snc-search input[type=search]{flex:1;min-height:52px;padding:0 18px;border:1px solid rgba(31,31,31,0.2);background:#fff;font-family:'Manrope',sans-serif;font-size:14px;color:#1F1F1F;border-radius:0}
.snc-search input[type=search]:focus{outline:none;border-color:#5E3B2B}
.snc-search button{min-height:52px;padding:0 22px;border:0;background:#5E3B2B;color:#F7F4F1;font-family:'Manrope',sans-serif;font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;cursor:pointer}

/* ---- WooCommerce : habillage minimal aux couleurs V3 ---- */
.snc-woo{padding:clamp(150px,16vw,220px) clamp(20px,4vw,56px) clamp(90px,10vw,140px);max-width:1360px;margin:0 auto;box-sizing:border-box}
.snc-woo h1,.snc-woo h2,.snc-woo h3,.snc-woo .product_title{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-0.01em;line-height:1.1}
.snc-woo h1{font-size:clamp(34px,5vw,68px);margin:0 0 30px}
.snc-woo .button,.snc-woo button.button,.snc-woo .single_add_to_cart_button,.snc-woo .checkout-button,.snc-woo #place_order{background:#5E3B2B!important;color:#F7F4F1!important;border:0!important;border-radius:0!important;padding:17px 24px!important;font-family:'Manrope',sans-serif!important;font-size:10px!important;font-weight:600!important;letter-spacing:0.22em!important;text-transform:uppercase!important}
.snc-woo .button:hover,.snc-woo button.button:hover{background:#B4A79E!important;color:#1F1F1F!important}
.snc-woo .price,.snc-woo .woocommerce-Price-amount{font-family:'Playfair Display',serif;font-size:1.2em;color:#5E3B2B}
.snc-woo .woocommerce-message,.snc-woo .woocommerce-info,.snc-woo .woocommerce-error{border-top-color:#5E3B2B;background:#fff}
.snc-woo .woocommerce-message::before,.snc-woo .woocommerce-info::before{color:#5E3B2B}
.snc-woo input.input-text,.snc-woo textarea,.snc-woo select{border:1px solid rgba(31,31,31,0.2);padding:12px 14px;font-family:'Manrope',sans-serif;border-radius:0;background:#fff}
.snc-woo .woocommerce-MyAccount-navigation a{font-size:10.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase}

/* ---- accessibilité ---- */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media (max-width:920px){
  .snc-hero{padding-top:130px}
  .snc-woo{padding-top:130px}
}
@media (prefers-reduced-motion:reduce){
  .snc-kicker,.snc-title,.snc-lead{animation:none!important}
}
