/*
Theme Name: Stephane Riss - Affectio
Theme URI: https://affectio.fr
Author: Stephane Riss / Affectio
Author URI: https://affectio.fr
Description: Theme vitrine one-page pour l'agence Affectio, conseil en gastronomie (Marseille & Paris).
Version: 1.4
Requires at least: 5.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: affectio
*/

  :root{
    --paper:#FFFFFF;
    --surface:#FFFFFF;
    --ink:#030F85;
    --muted:#5B63A6;
    --line:rgba(3,15,133,.15);
    --line-soft:rgba(3,15,133,.08);
    --brass:#ff002c;      /* accent = rouge signature */
    --brass-deep:#CC0023;
    --accent-soft:#C9CEF2; /* light accent for blue blocks */
    --olive:#5A6150;
    --dusk:#030F85;      /* block ground (hero, QEAT, footer) */
    --dusk-ink:#FFFFFF;
    --dusk-muted:#AEB4E0;
    --dusk-line:rgba(255,255,255,.18);
    --serif:"Fraunces", Georgia, "Times New Roman", serif;
    --sans:"Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
    --maxw:1120px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --paper:#FFFFFF;
      --surface:#FFFFFF;
      --ink:#030F85;
      --muted:#5B63A6;
      --line:rgba(3,15,133,.15);
      --line-soft:rgba(3,15,133,.08);
      --brass:#ff002c;
      --brass-deep:#CC0023;
      --accent-soft:#C9CEF2;
      --olive:#5A6150;
    }
  }
  :root[data-theme="dark"]{
    --paper:#FFFFFF;
    --surface:#FFFFFF;
    --ink:#030F85;
    --muted:#5B63A6;
    --line:rgba(3,15,133,.15);
    --line-soft:rgba(3,15,133,.08);
    --brass:#ff002c;
    --brass-deep:#CC0023;
    --accent-soft:#C9CEF2;
    --olive:#5A6150;
  }

  *{box-sizing:border-box;}
  body{
    margin:0;background:var(--paper);color:var(--ink);
    font-family:var(--sans);font-size:17px;line-height:1.6;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  }
  h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0;text-wrap:balance;line-height:1.05;}
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;}

  .wrap{max-width:var(--maxw);margin:0 auto;padding-inline:24px;}
  .eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);font-weight:600;}

  /* ---------- Header ---------- */
  header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft);}
  .nav{max-width:var(--maxw);margin:0 auto;padding:15px 24px;display:flex;align-items:center;gap:24px;}
  .brand{display:flex;flex-direction:column;line-height:1;margin-right:auto;}
  .brand b{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.01em;}
  .brand span{font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:5px;}
  .brand-logo{height:42px;width:auto;display:block;}
  @media(max-width:520px){.brand-logo{height:34px;}}
  .navlinks{display:flex;gap:26px;align-items:center;}
  .navlinks a{font-size:14px;color:var(--muted);transition:color .2s;}
  .navlinks a:hover{color:var(--ink);}
  .btn{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;
    padding:11px 20px;border-radius:999px;transition:transform .2s, background .2s, color .2s;}
  .btn-solid{background:var(--brass);color:#fff;}
  .btn-solid:hover{background:var(--brass-deep);transform:translateY(-1px);}
  .btn-ghost{border:1px solid var(--dusk-line);color:var(--dusk-ink);}
  .btn-ghost:hover{background:#fff;border-color:#fff;color:var(--dusk);}
  .btn-line{border:1px solid var(--line);color:var(--ink);}
  .btn-line:hover{border-color:var(--brass);color:var(--brass);transform:translateY(-1px);}
  /* Boutons pleins rouges #ff002c partout (fond blanc comme blocs bleus) */
  @media(max-width:760px){.navlinks{display:none;}}

  /* ---------- Hero ---------- */
  .hero{background:linear-gradient(rgba(3,15,133,.82),rgba(3,15,133,.86)), url('https://www.affectio.fr/wp-content/uploads/2026/09/table_verjus.jpg') center/cover no-repeat;color:var(--dusk-ink);position:relative;overflow:hidden;}
  .hero::before{content:"";position:absolute;inset:0;
    background:radial-gradient(120% 80% at 78% 8%, rgba(255,255,255,.10), transparent 55%),
               radial-gradient(90% 70% at 8% 100%, rgba(120,140,255,.20), transparent 60%);
    pointer-events:none;}
  .hero-inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:96px 24px 92px;}
  .hero .eyebrow{color:var(--accent-soft);}
  .hero h1{font-size:clamp(2.6rem,7vw,5.1rem);letter-spacing:-.015em;margin:22px 0 0;max-width:15ch;}
  .hero h1 em{font-style:italic;color:#FFFFFF;}
  .hero .lede{margin-top:26px;max-width:52ch;font-size:clamp(1.05rem,2.4vw,1.28rem);color:var(--dusk-muted);}
  .hero-cta{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap;}
  .signature{margin-top:52px;padding-top:26px;border-top:1px solid var(--dusk-line);
    display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;color:var(--dusk-muted);font-size:14px;}
  .signature b{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--dusk-ink);font-size:19px;}

  /* ---------- Section scaffolding ---------- */
  section{padding-block:clamp(64px,9vw,110px);}
  .sec-head{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:48px;max-width:60ch;}
  .sec-head h2{font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.01em;}
  .sec-head p{color:var(--muted);}

  /* ---------- Expertise ---------- */
  .expertise{border-bottom:1px solid var(--line-soft);}
  .exp-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,6vw,80px);align-items:start;}
  .exp-body p+p{margin-top:18px;}
  .exp-body .drop{font-family:var(--serif);font-size:1.35rem;line-height:1.5;color:var(--ink);}
  .pillars{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line);}
  .pillar{padding:20px 0;border-bottom:1px solid var(--line);}
  .pillar b{font-family:var(--serif);font-weight:600;font-size:1.2rem;display:block;}
  .pillar span{color:var(--muted);font-size:14.5px;}
  @media(max-width:780px){.exp-grid{grid-template-columns:1fr;}}

  /* ---------- Services ---------- */
  .services{background:var(--surface);border-block:1px solid var(--line-soft);}
  .offers{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);}
  .offer{padding:34px 30px 40px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);
    display:flex;flex-direction:column;gap:14px;position:relative;transition:background .25s;}
  .offer:nth-child(2n){border-right:0;}
  .offer:hover{background:color-mix(in srgb,var(--brass) 7%,transparent);}
  .offer .k{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--brass);font-weight:600;}
  .offer h3{font-size:1.55rem;letter-spacing:-.01em;}
  .offer p{color:var(--muted);font-size:15.5px;}
  .offer ul{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px;}
  .offer li{font-size:14px;color:var(--ink);padding-left:18px;position:relative;}
  .offer li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--brass);}
  @media(max-width:860px){.offers{grid-template-columns:1fr;}
    .offer{border-right:0;}}

  /* ---------- QEAT ---------- */
  .qeat{background:var(--dusk);color:var(--dusk-ink);position:relative;overflow:hidden;}
  .qeat::before{content:"";position:absolute;inset:0;
    background:radial-gradient(80% 120% at 100% 0%, rgba(255,255,255,.10), transparent 55%);pointer-events:none;}
  .qeat-inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:clamp(56px,8vw,90px) 24px;
    display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,70px);align-items:center;}
  .qeat .eyebrow{color:var(--accent-soft);}
  .qeat h2{font-size:clamp(2rem,4.6vw,3.2rem);margin-top:16px;letter-spacing:-.01em;}
  .qeat p{color:var(--dusk-muted);margin-top:20px;max-width:46ch;}
  .qeat .btn-solid{margin-top:30px;}
  .qeat-badge{border:1px solid var(--dusk-line);border-radius:14px;padding:34px;background:rgba(241,233,218,.03);}
  .qeat-badge .lab{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dusk-muted);}
  .qeat-badge .big{font-family:var(--serif);font-size:clamp(2.4rem,6vw,3.6rem);line-height:1;margin-top:10px;color:#FFFFFF;}
  .qeat-badge .qeat-logo{height:81px;width:auto;max-width:100%;margin:12px auto 0;display:block;}
  .qeat-badge .sub{color:var(--dusk-muted);margin-top:14px;font-size:14.5px;}
  @media(max-width:820px){.qeat-inner{grid-template-columns:1fr;}}

  /* ---------- Contact ---------- */
  .contact .wrap{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,70px);align-items:end;}
  .contact h2{font-size:clamp(2rem,5vw,3.3rem);letter-spacing:-.01em;max-width:12ch;}
  .contact .lede{color:var(--muted);margin-top:20px;max-width:44ch;}
  .cinfo{display:flex;flex-direction:column;gap:2px;}
  .cinfo .row{padding:16px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;align-items:baseline;}
  .cinfo .row:last-child{border-bottom:1px solid var(--line);}
  .cinfo .lab{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
  .cinfo .val{font-size:16px;text-align:right;}
  .cinfo a.val{border-bottom:1px solid var(--brass);transition:color .2s;}
  .cinfo a.val:hover{color:var(--brass);}
  @media(max-width:820px){.contact .wrap{grid-template-columns:1fr;}}

  /* ---------- Formulaire de contact ---------- */
  .cform{display:flex;flex-direction:column;gap:14px;margin-top:28px;}
  .cform-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .cform label{display:flex;flex-direction:column;gap:6px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);}
  .cform input,.cform textarea{font-family:var(--sans);font-size:15px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:6px;padding:12px 14px;letter-spacing:normal;text-transform:none;width:100%;}
  .cform input:focus,.cform textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass);}
  .cform textarea{resize:vertical;min-height:120px;}
  .cform .btn-solid{align-self:flex-start;margin-top:4px;}
  .cform .af-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0;overflow:hidden;}
  .cform-note{font-size:14px;padding:12px 14px;border-radius:6px;text-transform:none;letter-spacing:normal;}
  .cform-note.ok{background:rgba(3,15,133,.07);color:var(--ink);}
  .cform-note.err{background:rgba(255,0,44,.09);color:var(--brass);}
  .cform-alt{font-size:14px;color:var(--muted);margin-top:2px;}
  .cform-alt a{color:var(--brass);border-bottom:1px solid var(--brass);}
  @media(max-width:520px){.cform-row{grid-template-columns:1fr;}}

  /* ---------- Footer ---------- */
  footer{background:var(--dusk);color:var(--dusk-muted);}
  .foot{max-width:var(--maxw);margin:0 auto;padding:44px 24px;display:flex;justify-content:space-between;
    gap:20px;flex-wrap:wrap;align-items:center;font-size:13.5px;}
  .foot b{font-family:var(--serif);color:var(--dusk-ink);font-weight:600;font-size:19px;}
  .foot-logo{height:64px;width:auto;display:block;}
  .foot .fnav{display:flex;gap:22px;flex-wrap:wrap;}
  .foot a:hover{color:var(--dusk-ink);}

  a:focus-visible,.btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:6px;}
  @media (prefers-reduced-motion:reduce){*{transition:none!important;}}

  /* ---------- Reconnaissance ---------- */
  .reco{border-top:1px solid var(--line-soft);}
  .reco-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,6vw,72px);align-items:start;}
  .reco-body .drop{font-family:var(--serif);font-size:1.3rem;line-height:1.5;color:var(--ink);}
  .reco-body p+p{margin-top:16px;}
  .reco-body>p:not(.drop):not(.reco-note){color:var(--muted);}
  .reco-note{font-size:13px;color:var(--muted);font-style:italic;margin-top:18px;}
  .reco-body .btn-solid{margin:38px 0 12px;}
  .reco-side{display:flex;flex-direction:column;gap:18px;}
  .reco-card{border:1px solid var(--line);border-radius:6px;padding:24px 26px;}
  .reco-card h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;color:var(--ink);margin:0 0 12px;}
  .reco-list,.reco-steps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px;}
  .reco-list li{position:relative;padding-left:20px;font-size:15px;color:var(--ink);}
  .reco-list li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--brass);}
  .reco-steps{counter-reset:step;}
  .reco-steps li{position:relative;padding-left:36px;font-size:15px;color:var(--ink);counter-increment:step;min-height:24px;display:flex;align-items:center;}
  .reco-steps li::before{content:counter(step);position:absolute;left:0;top:0;width:24px;height:24px;border-radius:50%;background:var(--brass);color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;}
  @media(max-width:820px){.reco-grid{grid-template-columns:1fr;}}

  /* ---------- Galerie ---------- */
  .gallery-band .eyebrow{margin-bottom:20px;}
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
  .gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:4px;display:block;}
  @media(max-width:720px){.gallery{grid-template-columns:repeat(2,1fr);}}

  /* ---------- Scroll reveal ---------- */
  .has-reveal .sec-head,
  .has-reveal .exp-body,
  .has-reveal .pillar,
  .has-reveal .offer,
  .has-reveal .gallery img,
  .has-reveal .reco-body,
  .has-reveal .reco-card,
  .has-reveal .qeat-inner>div,
  .has-reveal .contact .wrap>div{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);}
  .has-reveal .is-visible{opacity:1 !important;transform:none !important;}
  .has-reveal .gallery img:nth-child(2){transition-delay:.08s;}
  .has-reveal .gallery img:nth-child(3){transition-delay:.16s;}
  .has-reveal .gallery img:nth-child(4){transition-delay:.24s;}
  .has-reveal .offer:nth-child(2){transition-delay:.1s;}
  @media (prefers-reduced-motion:reduce){.has-reveal .sec-head,.has-reveal .exp-body,.has-reveal .pillar,.has-reveal .offer,.has-reveal .gallery img,.has-reveal .reco-body,.has-reveal .reco-card,.has-reveal .qeat-inner>div,.has-reveal .contact .wrap>div{opacity:1;transform:none;transition:none;}}

