/* argile.css : Reyran Excavation. reset > tokens > composants > pages > responsive (en fin) */

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,h1,h2,h3,p,ul,ol,dl,dd,figure,address{margin:0}
ul,ol{padding:0;list-style:none}
img,picture,svg,iframe{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit;margin:0}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
a{color:inherit}
[hidden]{display:none!important}

/* ---------- tokens ---------- */
@font-face{font-family:"League Spartan";src:url(../fonts/league-spartan-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Work Sans";src:url(../fonts/work-sans-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(../fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}

:root{
  --limon:#4B4136;
  --limon-profond:#332B23;
  --galet:#8A9795;
  --galet-clair:#B6C0BE;
  --reyran:#B9832A;
  --reyran-vif:#D3A548;
  --reyran-texte:#7A551B;
  --sable:#F4EFE5;
  --roseau:#66754C;
  --filet:rgba(244,239,229,.2);
  --filet-sombre:rgba(51,43,35,.2);
  --rayon:0;
  --ombre:0 1px 2px rgba(20,15,10,.28);
  --ease:cubic-bezier(.2,.6,.2,1);
  --display:"League Spartan",Impact,"Arial Narrow",sans-serif;
  --corps:"Work Sans","Helvetica Neue",Arial,sans-serif;
  --mono:"JetBrains Mono","Courier New",monospace;
  --t13:13px;--t15:15px;--t17:17px;--t20:20px;--t26:26px;--t30:30px;--t34:34px;--t42:42px;--t48:48px;
  --marge:20px;
  --gout:22px;
  --pistes:minmax(calc(var(--marge) - var(--gout)),1fr) repeat(12,minmax(0,83.8px)) minmax(calc(var(--marge) - var(--gout)),1fr);
  --air:64px;
}

body{background:var(--sable);color:var(--limon-profond);font:400 var(--t17)/1.6 var(--corps);-webkit-font-smoothing:antialiased}
:focus-visible{outline:3px solid var(--reyran);outline-offset:3px}
p{max-width:64ch;text-wrap:pretty}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.05;text-wrap:balance;text-transform:uppercase;letter-spacing:.01em}
.ry-vu{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ry-mono{font-family:var(--mono);font-weight:500;font-size:var(--t13);letter-spacing:.02em;text-transform:none}

/* ---------- grille ---------- */
.ry-grille{display:grid;grid-template-columns:var(--marge) minmax(0,1fr) var(--marge)}
.ry-grille>*{grid-column:2}

/* ---------- composants ---------- */
.ry-bouton{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border:1px solid var(--limon-profond);border-radius:var(--rayon);background:var(--reyran-vif);color:var(--limon-profond);font-weight:600;font-size:var(--t17);text-decoration:none;cursor:pointer;white-space:normal;transition:background-color .2s var(--ease),color .2s var(--ease)}
.ry-bouton:hover{background:var(--limon-profond);color:var(--reyran-vif)}
.ry-bouton.est-sombre{background:var(--limon-profond);border-color:var(--limon-profond);color:var(--sable)}
.ry-bouton.est-sombre:hover{background:var(--reyran-vif);color:var(--limon-profond)}
.ry-bouton.est-contour{background:transparent;color:inherit}
.ry-bouton.est-contour:hover{background:var(--limon-profond);color:var(--sable);border-color:var(--limon-profond)}
.ry-lien{color:var(--limon-profond);text-decoration:underline;text-decoration-color:var(--reyran-vif);text-decoration-thickness:2px;text-underline-offset:4px}
.ry-lien:hover{text-decoration-color:var(--roseau)}
.ry-services .ry-lien{color:var(--sable);text-decoration-color:var(--reyran-vif)}

/* repère circulaire (motif 1) */
.ry-point{display:inline-block;width:6px;height:6px;margin-right:10px;border-radius:50%;background:var(--reyran);flex:none}

/* filet ondulé (motif 3) */
.ry-filet{display:block;width:100%;height:8px}

/* cadre photo réservé */
.ry-photo{position:relative;overflow:hidden;background:var(--galet)}
.ry-photo img{width:100%;height:100%;object-fit:cover}
.ry-photo.est-32{aspect-ratio:3/2}
.ry-photo.est-43{aspect-ratio:4/3}
.ry-photo.est-vide{background:var(--limon)}
.ry-photo.est-vide::after{content:"";position:absolute;inset:10px;border:1px solid var(--filet);border-radius:0}

/* signature : trait du Reyran (tracé SVG unique) */
.ry-trait{display:block;width:100%;height:24px}
.ry-trait path{fill:none;stroke:var(--reyran);stroke-width:2;stroke-linecap:round}
.ry-trait.est-sombre path{stroke:var(--limon-profond)}

/* bandeau NAP */
.ry-nap{background:var(--limon-profond);color:var(--sable)}
.ry-nap-in{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;padding:8px 0;font-size:var(--t13)}
.ry-nap a{color:var(--sable);text-decoration:none}
.ry-nap a:hover{color:var(--reyran-vif)}

/* header */
.ry-entete{position:relative;z-index:30;background:var(--sable);border-bottom:1px solid var(--filet-sombre);height:64px}
.ry-entete-in{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:8px;height:100%;width:calc(100% - 2*var(--marge));max-width:1270px;margin-inline:auto}
.ry-logo{position:absolute;top:50%;left:0;transform:translateY(-50%);width:52px;height:52px}
.ry-logo img{width:100%;height:100%}
.ry-nav{display:none}
.ry-menu>summary{display:flex;align-items:center;min-height:44px;padding:0 12px;border:1px solid var(--limon-profond);font-weight:600;font-size:var(--t15)}
.ry-menu[open]>summary{background:var(--limon-profond);color:var(--sable)}
.ry-menu-panneau{position:absolute;left:0;right:0;top:100%;z-index:40;background:var(--sable);border-bottom:1px solid var(--filet-sombre);padding:8px var(--marge) 24px}
.ry-menu-liens a{display:flex;align-items:center;min-height:48px;font-weight:600;text-decoration:none;border-bottom:1px solid var(--filet-sombre)}
.ry-menu-liens a:hover{color:var(--reyran-texte)}
.ry-tel{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;background:var(--reyran-vif);border:1px solid var(--limon-profond);color:var(--limon-profond);font-weight:600;font-size:var(--t15);text-decoration:none;white-space:nowrap;transition:background-color .2s var(--ease)}
.ry-tel:hover{background:var(--limon-profond);color:var(--reyran-vif)}

/* hero split 58/42 */
.ry-hero{background:var(--limon)}
.ry-hero-in{display:grid}
.ry-hero-photo{position:relative;background:var(--limon);min-height:220px}
.ry-hero-photo::after{content:"";position:absolute;inset:14px;border:1px solid var(--filet);border-radius:0}
.ry-hero-panel{position:relative;background:var(--sable);color:var(--limon-profond);padding:32px var(--marge) 28px}
.ry-hero-panel h1{font-size:var(--t30);line-height:1.08}
.ry-hero-texte{margin-top:8px;max-width:46ch}
.ry-faits{display:flex;flex-wrap:wrap;gap:6px 0;margin-top:8px;font-size:var(--t15)}
.ry-faits li{display:flex;align-items:center}
.ry-faits li+li::before{content:"";width:1px;height:16px;margin:0 14px;background:var(--filet-sombre)}
.ry-carte{position:relative;margin-top:10px;background:var(--sable);border:1px solid var(--filet-sombre);box-shadow:var(--ombre);padding:12px 20px 12px}
.ry-carte-accroche{font-family:var(--display);font-weight:800;font-size:var(--t26);line-height:1.1;margin-bottom:6px;text-transform:uppercase}
.ry-carte-accroche span{color:var(--reyran-texte)}
.ry-duo{display:grid;gap:10px;margin-bottom:10px}
.ry-champ{display:block;margin-bottom:10px}
.ry-duo .ry-champ{margin-bottom:0}
.ry-champ label{display:block;margin-bottom:4px;font-weight:600;font-size:var(--t15);line-height:1.3}
.ry-champ input,.ry-champ select{display:block;width:100%;height:44px;padding:0 12px;background:var(--sable);border:1px solid var(--limon-profond);border-radius:var(--rayon);font-size:var(--t17);line-height:1.2}
.ry-champ select{appearance:none;-webkit-appearance:none;padding-right:36px;text-overflow:ellipsis}
.ry-champ-liste{position:relative}
.ry-champ-liste::after{content:"";position:absolute;right:16px;bottom:16px;width:9px;height:9px;border-right:2px solid var(--limon-profond);border-bottom:2px solid var(--limon-profond);transform:rotate(45deg);pointer-events:none}
.ry-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.ry-envoi{width:100%;min-height:56px;margin-top:2px;font-weight:800}
.ry-reassure{margin-top:8px;font-size:var(--t13);line-height:1.3;color:var(--limon)}
.ry-reassure a{color:var(--reyran-texte)}

/* réalisations : état vide + slider avant/après réservé */
.ry-realisations{background:var(--sable);padding:var(--air) 0}
.ry-titre{font-size:var(--t34)}
.ry-intro{margin-top:16px}
.ry-comparos{margin-top:32px;display:grid;gap:24px}
.ry-comparo{position:relative}
.ry-comparo-cadre{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--limon)}
.ry-comparo-cadre::after{content:"";position:absolute;inset:14px;border:1px solid var(--filet);border-radius:0}
.ry-comparo input[type="range"]{display:none}
.ry-comparo-legende{margin-top:10px}
.ry-comparo-commune{font-size:var(--t15);font-weight:600}
.ry-comparo-phrase{margin-top:2px;color:var(--limon)}

/* services : liste éditoriale numérotée, alternance */
.ry-services{background:var(--limon);color:var(--sable);padding:var(--air) 0}
.ry-services .ry-titre{color:var(--sable)}
.ry-services .ry-intro{color:var(--galet-clair)}
.ry-liste{margin-top:32px}
.ry-ligne{display:flex;flex-direction:column;padding:32px 0;border-top:1px solid rgba(244,239,229,.25)}
.ry-ligne:last-child{border-bottom:1px solid rgba(244,239,229,.25)}
.ry-ligne-num{display:flex;align-items:center;margin-bottom:14px;font-family:var(--display);font-weight:800;font-size:var(--t20)}
.ry-ligne-titre{margin-bottom:12px;font-size:var(--t26)}
.ry-ligne-texte p{margin-bottom:12px;color:var(--sable)}
.ry-ligne .ry-photo{margin-top:20px}
.ry-services-fin{margin-top:40px;text-align:center}
.ry-services-fin p{margin-bottom:20px;font-family:var(--display);font-weight:800;font-size:var(--t26);text-transform:uppercase}

/* bande de texture (motif 2) */
.ry-bande{position:relative;height:120px;background:var(--galet);overflow:hidden}
.ry-bande img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply}
.ry-bande.est-vide::after{content:"";position:absolute;inset:10px;border:1px solid var(--filet-sombre);border-radius:0}

/* le sol et l'eau */
.ry-sol{background:var(--galet);color:var(--limon-profond);padding:var(--air) 0}
.ry-sol .ry-filet path{stroke:var(--sable)}
.ry-sol-corps{margin-top:24px}
.ry-sol-corps p{margin-bottom:16px;color:var(--limon-profond)}

/* zone */
.ry-zone{background:var(--limon);color:var(--sable);padding:var(--air) 0}
.ry-zone .ry-titre{color:var(--sable)}
.ry-zone .ry-intro{color:var(--galet-clair)}
.ry-communes{margin-top:28px}
.ry-communes li{display:flex;align-items:baseline;padding:12px 0;border-top:1px solid rgba(244,239,229,.25);font-weight:600}
.ry-zone-carte{margin-top:28px}
.ry-zone-carte[open] .ry-zone-bouton{display:none}
.ry-zone-embed{margin-top:16px}
.ry-zone-embed iframe{width:100%;height:320px;border:0}
.ry-zone-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:20px}

/* avis */
.ry-avis{background:var(--sable);padding:88px 0}
.ry-avis-phrase{margin:20px 0 28px;font-size:var(--t20);line-height:1.35;max-width:34ch}

/* histoire */
.ry-histoire{background:var(--limon-profond);color:var(--sable);padding:var(--air) 0}
.ry-histoire .ry-titre{color:var(--sable)}
.ry-histoire-texte p{margin-top:16px;color:var(--galet-clair)}
.ry-parc{margin-top:28px}
.ry-parc>div{padding:14px 0;border-top:1px solid rgba(244,239,229,.2)}
.ry-parc>div:last-child{border-bottom:1px solid rgba(244,239,229,.2)}
.ry-parc dt{font-family:var(--display);font-weight:800;font-size:var(--t20)}
.ry-parc dd{margin-top:2px;color:var(--galet-clair)}
.ry-histoire-photos{display:grid;gap:20px;margin-top:32px}

/* faq */
.ry-faq{background:var(--sable);padding:var(--air) 0}
.ry-faq-liste{margin-top:28px}
.ry-faq details{border-top:1px solid var(--filet-sombre)}
.ry-faq details:last-child{border-bottom:1px solid var(--filet-sombre)}
.ry-faq summary{position:relative;padding:20px 44px 20px 0;font-family:var(--display);font-weight:800;font-size:var(--t17);text-transform:none;letter-spacing:0}
.ry-faq summary::before,.ry-faq summary::after{content:"";position:absolute;right:6px;top:50%;width:18px;height:2px;margin-top:-1px;background:var(--limon-profond)}
.ry-faq summary::after{transform:rotate(90deg);transition:transform .2s var(--ease)}
.ry-faq details[open]>summary::after{transform:rotate(0)}
.ry-faq details p{padding:0 44px 24px 0}

/* dernier appel + contact */
.ry-contact{background:var(--limon-profond);color:var(--sable);padding:var(--air) 0}
.ry-contact .ry-titre{color:var(--sable)}
.ry-contact .ry-carte{margin-top:28px}
.ry-contact .ry-carte-accroche{color:var(--limon-profond)}

/* footer massif */
.ry-pied{background:var(--limon-profond);color:var(--galet-clair);padding:0 0 100px}
.ry-pied-in{padding:40px 0 0}
.ry-pied-zones{display:grid;gap:32px}
.ry-pied-titre{margin-bottom:8px;font-weight:600;font-size:var(--t15);color:var(--sable);text-transform:uppercase}
.ry-pied address{font-style:normal}
.ry-pied-nom{display:block;font-family:var(--display);font-weight:800;font-size:var(--t20);color:var(--sable);text-transform:uppercase}
.ry-pied-l{display:block;margin-top:4px}
.ry-pied-tel{display:block;width:max-content;margin:10px 0 4px;font-family:var(--display);font-weight:800;font-size:var(--t26);color:var(--sable);text-decoration:none}
.ry-pied a{text-decoration-color:var(--reyran-vif);text-underline-offset:4px}
.ry-pied a:hover{color:var(--reyran-vif)}
.ry-pied li{padding:3px 0}
.ry-pied-zones li a,.ry-pied-zones li{display:inline-block;padding:8px 0}
.ry-pied-faq{margin-top:32px;padding-top:24px;border-top:1px solid rgba(244,239,229,.2)}
.ry-pied-faq p{color:var(--sable);font-weight:600}
.ry-pied-fin{margin-top:32px;padding-top:20px;border-top:1px solid rgba(244,239,229,.2);font-size:var(--t13)}

/* sticky : coin bas-gauche, deux carrés empilés, mobile et desktop */
.ry-sticky{position:fixed;z-index:50;left:16px;bottom:16px;display:flex;flex-direction:column}
.ry-sticky a{display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--limon-profond);border:1px solid var(--reyran);color:var(--sable)}
.ry-sticky a+a{border-top:0}
.ry-sticky a:hover{background:var(--reyran-vif);color:var(--limon-profond)}
.ry-sticky :focus-visible{outline-color:var(--reyran);outline-offset:-4px}
.ry-icone{width:22px;height:22px;flex:none}
.ry-sticky-mot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}

/* ---------- pages intérieures ---------- */
.ry-tete{padding:var(--air) 0 40px;background:var(--limon);color:var(--sable)}
.ry-tete h1{font-size:var(--t34);color:var(--sable)}
.ry-tete p{margin-top:16px;max-width:60ch;color:var(--galet-clair)}
#erreur{display:none;margin-top:20px;max-width:60ch}
#erreur:target{display:block}
.ry-tete #erreur p{color:var(--limon-profond);max-width:none}

.ry-legal{padding:var(--air) 0;background:var(--sable)}
.ry-legal h2{margin-top:32px;margin-bottom:10px;font-size:var(--t20)}
.ry-legal h2:first-child{margin-top:0}
.ry-legal p{margin-bottom:4px;max-width:70ch}

.ry-page-hero{background:var(--limon);color:var(--sable);padding:var(--air) 0 40px}
.ry-page-hero h1{font-size:var(--t30);color:var(--sable)}
.ry-page-hero p{margin-top:16px;max-width:56ch;color:var(--galet-clair)}
.ry-fil{margin-bottom:14px;font-size:var(--t13);color:var(--galet-clair)}
.ry-fil ol{display:flex;flex-wrap:wrap}
.ry-fil li{display:flex;align-items:center}
.ry-fil li:not(:last-child)::after{content:"\203A";margin:0 8px}
.ry-fil a{color:var(--galet-clair);text-decoration:underline;text-underline-offset:3px}
.ry-fil a:hover{color:var(--reyran-vif)}
.ry-page-hero-in{display:grid;gap:24px}
.ry-page-hero .ry-photo{aspect-ratio:3/2}

.ry-prose{padding:var(--air) 0;background:var(--sable)}
.ry-prose section{margin-top:40px}
.ry-prose>section:first-child{margin-top:0}
.ry-prose h2{margin-bottom:14px;font-size:var(--t26)}
.ry-prose p{margin-bottom:14px;max-width:70ch}

.ry-aussi{padding:56px 0;background:var(--galet)}
.ry-aussi ul{margin-top:20px;display:flex;flex-direction:column}
.ry-aussi li{padding:14px 0;border-top:1px solid var(--filet-sombre)}
.ry-aussi li:last-child{border-bottom:1px solid var(--filet-sombre)}

.ry-tel-section{padding:var(--air) 0;background:var(--galet)}
.ry-tel-section p{margin-top:16px;max-width:60ch}
.ry-tel-section .ry-bouton{margin-top:24px}
.ry-lieu-section{padding:var(--air) 0;background:var(--sable)}
.ry-lieu-section p{margin-top:16px;max-width:60ch}
.ry-lieu-actions{margin-top:20px;display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center}

/* ---------- responsive (fin) ---------- */
@media (min-width:600px){
  :root{--marge:32px}
  .ry-duo{grid-template-columns:1fr 1fr}
  .ry-pied-zones{grid-template-columns:1fr 1fr}
  .ry-histoire-photos{grid-template-columns:1fr 1fr}
  .ry-comparos{grid-template-columns:1fr 1fr 1fr}
  .ry-bande{height:160px}
}

@media (min-width:720px){
  :root{--marge:48px;--air:88px}
  .ry-entete{height:76px}
  .ry-logo{width:60px;height:60px}
  .ry-tel,.ry-menu>summary{padding:0 16px;font-size:var(--t17)}
  .ry-hero-panel h1{font-size:clamp(34px,4.6vw,var(--t48))}
  .ry-titre{font-size:var(--t42)}
  .ry-ligne-titre{font-size:var(--t34)}
  .ry-page-hero-in{grid-template-columns:1fr 1fr;align-items:center;gap:0 40px}
}

@media (min-width:1100px){
  :root{--air:104px}
  .ry-grille{grid-template-columns:var(--pistes);column-gap:var(--gout)}
  .ry-grille>*{grid-column:2/-2}

  .ry-entete-in{padding-left:76px}
  .ry-menu{display:none}
  .ry-nav{display:flex;align-items:center;gap:22px;font-weight:600;font-size:var(--t15)}
  .ry-nav a{display:flex;align-items:center;min-height:44px;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:2px;text-underline-offset:6px}
  .ry-nav a:hover,.ry-nav a:focus-visible{text-decoration-color:var(--reyran)}
  .ry-nav-services{position:relative;display:flex;align-items:center}
  .ry-nav-services>summary{display:flex;align-items:center;min-height:44px}
  .ry-nav-services-panneau{position:absolute;left:0;top:100%;z-index:40;display:flex;flex-direction:column;gap:2px;min-width:240px;padding:10px 14px;background:var(--sable);border:1px solid var(--filet-sombre)}
  .ry-nav-services-panneau a{display:flex;align-items:center;min-height:44px;text-decoration:none}
  .ry-nav-services-panneau a:hover{color:var(--reyran-texte)}
  .ry-tel{margin-left:auto}

  .ry-hero-in{grid-template-columns:58fr 42fr;align-items:stretch;min-height:420px}
  .ry-hero-photo{min-height:100%}
  .ry-hero-panel{padding:22px 48px}
  .ry-hero-panel .ry-grille{display:block}

  .ry-realisations .ry-grille,.ry-services .ry-grille,.ry-sol .ry-grille,.ry-zone .ry-grille,.ry-histoire .ry-grille,.ry-faq .ry-grille,.ry-avis .ry-grille,.ry-contact .ry-grille{grid-template-columns:var(--pistes)}

  .ry-ligne{display:grid;grid-template-columns:220px 1fr 320px;gap:0 32px;align-items:start;padding:40px 0;border-top:1px solid rgba(244,239,229,.25)}
  .ry-ligne:nth-child(even){direction:rtl}
  .ry-ligne:nth-child(even) *{direction:ltr}
  .ry-ligne-num{grid-column:1;margin:0}
  .ry-ligne-texte{grid-column:2}
  .ry-ligne .ry-photo{grid-column:3;margin:0}

  .ry-histoire-texte{max-width:60ch}
  .ry-histoire-photos{grid-template-columns:1fr 1fr}

  .ry-comparos{grid-template-columns:repeat(3,1fr)}

  .ry-pied-zones{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
}

@media (prefers-reduced-motion:reduce){
  .ry-bouton,.ry-tel,.ry-faq summary::after{transition:none}
}
