/*
Theme Name: SanArt — Sandra Sudan
Theme URI: https://sanart.ch
Author: ABiL MEDiAS
Author URI: https://abil.ch
Description: Thème minimaliste pour l'artiste peintre Sandra Sudan (SanArt). Contenu éditable dans Gutenberg (pages assemblées en blocs + shortcodes SanArt). Galeries d'œuvres (type de contenu « Œuvre » + taxonomie « Galerie »), événements gérés via les articles standard.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.5
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: sanart
*/

/* ============================================================
   TOKENS
   ============================================================ */
:root{
  --paper:#F4F1E9;
  --paper-2:#fbfaf6;
  --ink:#262420;
  --muted:#6b6557;
  --faint:#9a9385;
  --line:rgba(38,36,32,0.12);
  --line-strong:rgba(38,36,32,0.18);
  --accent:#5c7541;
  --olive-light:#A9AD86;
  --card:#fbfaf6;
  --chip:#ece8de;
  --dark:#211f1b;
  --dark-2:#35322c;
  --font-display:"Cormorant Garamond", Georgia, serif;
  --font-body:"Jost", "Helvetica Neue", Arial, sans-serif;
  --wrap:1180px;
  --gutter:40px;
}

/* ============================================================
   RESET
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:300;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:color .35s ease,opacity .35s ease}
button{font-family:inherit;transition:background .35s ease,color .35s ease,border-color .35s ease}
::selection{background:var(--accent);color:var(--paper)}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;color:var(--ink);margin:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}

/* a11y + pagination */
.screen-reader-text{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--paper);padding:10px 18px}
.skip-link:focus{left:8px;top:8px}
.pagination,.nav-links{display:flex;justify-content:center;gap:10px;margin-top:48px}
.pagination .page-numbers,.nav-links .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 12px;
  border:1px solid var(--line-strong);border-radius:2px;font-size:13px;letter-spacing:.06em;color:var(--ink);transition:all .3s ease;
}
.pagination .page-numbers.current,.pagination .page-numbers:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* utility */
.eyebrow{font-family:var(--font-body);font-weight:400;font-size:12px;letter-spacing:0.4em;text-transform:uppercase;color:var(--accent)}
.center{text-align:center}
.serif-italic{font-family:var(--font-display);font-style:italic}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn{
  display:inline-block;border:none;cursor:pointer;
  font-family:var(--font-body);font-weight:400;font-size:12.5px;letter-spacing:0.22em;text-transform:uppercase;
  padding:15px 34px;border-radius:2px;background:var(--dark);color:var(--paper);
  transition:background .35s ease,color .35s ease;
}
.btn:hover{background:var(--accent)}
.btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong);padding:13px 28px}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--ghost-light{background:transparent;color:var(--paper);border:1px solid rgba(244,241,233,.4)}
.btn--ghost-light:hover{background:var(--paper);color:var(--ink)}
.btn--block{display:block;width:100%;text-align:center}

.backlink{
  display:inline-block;background:none;border:none;cursor:pointer;padding:0 0 24px;
  font-family:var(--font-body);font-size:11.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--faint);
  transition:color .35s ease;
}
.backlink:hover{color:var(--accent)}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky;top:0;z-index:80;
  background:rgba(244,241,233,.88);
  backdrop-filter:blur(10px);
  /* border-bottom:1px solid var(--line); */
  transition:box-shadow .3s ease,background .3s ease;
}
.site-header.is-scrolled{box-shadow:0 6px 24px -18px rgba(38,36,32,.5)}
.site-header__inner{height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:14px}
.brand__logo{height:140px;width:auto; transition:height .3s ease;}
.brand__tag{font-family:var(--font-body);font-weight:400;font-size:12px;letter-spacing:0.34em;text-transform:uppercase;color:var(--muted);padding-top:3px}

.site-header.is-scrolled .brand__logo{height:80px;width:auto}

.main-nav ul{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:36px}
.main-nav > ul > li{position:relative}

/* Submenu styling */
.main-nav .sub-menu{
  position:absolute;top:100%;left:0;background:white;min-width:250px;
  list-style:none;margin:0;padding:12px 0;box-shadow:0 4px 12px rgba(0,0,0,.1);
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s ease,visibility .3s ease,transform .3s ease;
  border-radius:2px;z-index:1000;
  display:flex;flex-direction:column;row-gap:0;align-items:flex-start;
}

.main-nav > ul > li:hover > .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0);
}

.main-nav .sub-menu a{
  display:block;padding:10px 18px;font-size:14px;letter-spacing:0.15em;
  color:var(--ink);transition:background .3s ease,color .3s ease;
}

.main-nav .sub-menu a:hover{
  background:#f5f5f5;color:var(--accent);
}

.main-nav .sub-menu a::after{display:none}

.main-nav li.menu-item-has-children > a{
  position:relative;display:inline-flex;align-items:center;gap:6px;
}

/* Desktop indicator (down arrow) - hidden by default */
.main-nav > ul > li.menu-item-has-children > a::after{
  content:"";display:inline-block;width:0;height:0;
  border-left:3px solid transparent;border-right:3px solid transparent;
  border-top:3px solid currentColor;vertical-align:2px;
  margin-left:4px;transition:transform .35s ease,border-top-color .35s ease;
}

.main-nav > ul > li.menu-item-has-children > a:hover::after{
  border-top-color:var(--accent);
}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--accent)}
.main-nav a:hover::after,.main-nav .current-menu-item>a::after{right:0}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;width:40px;height:40px;padding:8px}
.nav-toggle span{display:block;height:1.5px;background:var(--ink);margin:6px 0;transition:transform .3s ease,opacity .3s ease}
body.nav-open .nav-toggle span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
body.nav-open .nav-toggle span:nth-child(2){opacity:0}
body.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ============================================================
   HERO (front page)
   ============================================================ */
.hero{padding:96px var(--gutter) 40px;text-align:center}
.hero__logo{height:150px;width:auto;margin:30px auto 8px}
.hero__title{font-style:italic;font-weight:400;font-size:clamp(30px,5vw,42px);line-height:1.15;margin-top:14px}
.hero__lead{max-width:600px;margin:24px auto 0;font-size:17px;line-height:1.75;color:#5b564b}
.hero__cta{margin-top:34px}

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.section{padding:56px var(--gutter)}
.section-head{
  display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--line-strong);padding-bottom:16px;margin-bottom:34px;
}
.section-head h2{font-weight:500;font-size:30px}
.section-head .label{font-size:12px;letter-spacing:0.2em;text-transform:uppercase;color:var(--faint)}
.page-intro{padding:80px var(--gutter) 24px;text-align:center}
.page-intro h1{font-weight:400;font-size:clamp(34px,5vw,46px);margin-top:16px}
.page-intro p{max-width:560px;margin:18px auto 0;font-size:12px;line-height:1.7;color:var(--muted)}

/* ============================================================
   WORK GRID / FIGURES
   ============================================================ */
.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.gallery-grid{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:26px}
.figure{margin:0;}
.figure__frame{overflow:hidden;border-radius:2px;background:#e6e1d6;aspect-ratio:1/1;box-shadow: 0 15px 40px -34px rgba(38, 36, 32, .55);}
.figure__frame img{width:100%;height:100%;object-fit:cover;transition:transform .85s cubic-bezier(.4,0,.2,1)}
.figure:hover .figure__frame img{transform:scale(1.04)}
.figure figcaption{margin-top:10px; text-align:center;}
.figure__title{font-family:var(--font-display);font-style:italic;font-size:22px;color:var(--ink)}
.figure__title-link{display:inline;text-decoration:none;color:inherit}
.figure__title{transition:text-decoration .3s ease}
.figure__title-link:hover .figure__title{color:var(--accent);}
.figure__meta{font-size:12px;letter-spacing:0.08em;color:var(--faint);margin-top:3px}
.figure__cap-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:12px}
.figure__cap-row .tag{font-size:11px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faint)}
.figure__title-link svg{margin-left:6px;fill:var(--ink);transition: .3s ease}
.figure__title-link:hover svg{fill:var(--accent); margin-left:8px;transform:translateY(2px)} 

/* placeholder slot */
.slot{display:flex;flex-direction:column}
.slot__frame{
  width:100%;aspect-ratio:4/5;border:1px dashed var(--line-strong);background:#efece3;border-radius:2px;
  display:flex;align-items:center;justify-content:center;text-align:center;color:#bdb6a6;
}
.slot__frame span{font-size:12px;letter-spacing:.08em}
.slot__title{margin-top:14px;font-family:var(--font-display);font-style:italic;font-size:22px;color:#bdb6a6}

/* ============================================================
   GALLERY CARDS
   ============================================================ */
.gallery-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.gallery-card{background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .35s ease}
.gallery-card:hover{border-color:var(--accent)}
.gallery-card__cover{overflow:hidden;aspect-ratio:1/1;background:#e6e1d6}
.gallery-card__cover img{width:100%;height:100%;object-fit:cover;transition:transform .85s cubic-bezier(.4,0,.2,1)}
.gallery-card:hover .gallery-card__cover img{transform:scale(1.05)}
.gallery-card__body{padding:22px 22px 26px;flex:1;display:flex;flex-direction:column}
.gallery-card__body h3{font-weight:500;font-size:24px;margin-bottom:10px}
.gallery-card__body p{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 16px;flex:1}
.gallery-card__more{font-family:var(--font-body);font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--accent)}

/* gallery rows (galeries index) */
.gallery-rows{display:flex;flex-direction:column;gap:18px}
.gallery-row{display:grid;grid-template-columns:0.8fr 1.2fr;background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden;transition:border-color .35s ease}
.gallery-row:hover{border-color:var(--accent)}
.gallery-row__cover{overflow:hidden;background:#e6e1d6;min-height:240px}
.gallery-row__cover img{width:100%;height:100%;object-fit:cover;transition:transform .85s cubic-bezier(.4,0,.2,1)}
.gallery-row:hover .gallery-row__cover img{transform:scale(1.04)}
.gallery-row__body{padding:40px 44px;display:flex;flex-direction:column;justify-content:center}
.gallery-row__count{font-size:11.5px;letter-spacing:0.24em;text-transform:uppercase;color:var(--faint)}
.gallery-row__body h2{font-weight:500;font-size:clamp(26px,3.6vw,34px);margin:10px 0 14px}
.gallery-row__body p{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 22px;max-width:460px}

/* ============================================================
   GALLERY VIEW HEADER
   ============================================================ */
.gallery-hero{padding:64px var(--gutter) 10px}
.gallery-hero__head{border-bottom:1px solid var(--line-strong);padding-bottom:26px}
.gallery-hero__head h1{font-weight:500;font-size:clamp(32px,5vw,42px)}
.gallery-hero__head p{max-width:680px;margin:14px 0 0;font-size:16px;line-height:1.7;color:var(--muted)}

/* ============================================================
   ŒUVRE DETAIL
   ============================================================ */
.oeuvre{padding:64px var(--gutter) 90px}
.oeuvre__grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:60px;align-items:start}
.oeuvre__media img{width:100%;border-radius:3px;box-shadow:0 30px 60px -34px rgba(38,36,32,.55)}
.oeuvre__cat{font-size:11.5px;letter-spacing:0.24em;text-transform:uppercase;color:var(--accent)}
.oeuvre__title{font-weight:500;font-size:clamp(30px,4.4vw,40px);margin:12px 0 6px}
.oeuvre__sub{font-family:var(--font-display);font-style:italic;font-size:18px;color:var(--faint);margin-bottom:26px}
.oeuvre__specs{display:grid;grid-template-columns:auto 1fr;column-gap:26px;row-gap:11px;font-size:14px;border-top:1px solid var(--line-strong);padding-top:22px}
.oeuvre__specs dt{color:var(--faint);letter-spacing:.04em}
.oeuvre__specs dd{color:#403c34;margin:0}
.oeuvre__block{margin-top:22px;border-top:1px solid var(--line-strong);padding-top:20px}
.oeuvre__block .lbl{font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--faint);margin-bottom:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:12.5px;color:#403c34;background:var(--chip);border:1px solid rgba(38,36,32,.08);padding:6px 13px;border-radius:999px}
.oeuvre__desc{margin:24px 0 0;font-size:15.5px;line-height:1.85;color:#403c34}
.oeuvre__notes{margin-top:26px;border-top:1px solid var(--line-strong);padding-top:22px;display:flex;flex-direction:column;gap:9px;font-size:13.5px;color:#5b564b}
.oeuvre__notes .star{color:var(--accent);margin-right:9px}
.oeuvre__foot{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.dispo{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:0.14em;text-transform:uppercase;color:var(--accent)}
.dispo .dot{width:8px;height:8px;border-radius:50%;background:var(--accent);display:inline-block}
.dispo--vendu{color:var(--faint)}
.dispo--vendu .dot{background:var(--faint)}
.price{font-family:var(--font-display);font-size:22px;color:var(--ink);font-weight:bold;}

/* ============================================================
   ARTISTE (bio)
   ============================================================ */
.artiste-head{padding:80px var(--gutter) 30px;text-align:center}
.artiste-head h1{font-weight:400;font-size:clamp(34px,5vw,46px);margin-top:16px}
.artiste-head .sub{font-family:var(--font-display);font-style:italic;font-size:23px;color:var(--muted);margin-top:10px}
.artiste-body{padding:30px var(--gutter) 80px;display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:start}
.artiste-portrait{position:sticky;top:110px}
.artiste-portrait img{width:100%;border-radius:3px;box-shadow:0 24px 50px -28px rgba(38,36,32,.5)}
.artiste-portrait .facts{margin-top:18px;border-top:1px solid var(--line-strong);padding-top:18px;font-size:13.5px;line-height:1.9;color:var(--muted)}
.artiste-text{font-size:16.5px;line-height:1.95;color:#403c34}
.artiste-text p{margin:0 0 20px}
.artiste-quote{font-family:var(--font-display);font-style:italic;font-size:22px;color:var(--accent);margin:30px 0 0;line-height:1.5}
.artiste-sign{margin-top:14px;font-size:13px;letter-spacing:0.18em;text-transform:uppercase;color:var(--faint)}

/* ============================================================
   EVENTS
   ============================================================ */
.event-list{padding:38px var(--gutter) 84px;display:flex;flex-direction:column;gap:18px;max-width: 1180px;margin: 0 auto;}
.event-card{display:grid;grid-template-columns:0.85fr 1.15fr;background:var(--card);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.event-card__cover{overflow:hidden;background:#e6e1d6;min-height:260px}
.event-card__cover img{width:100%;height:100%;object-fit:cover}
.event-card__body{padding:40px 44px;display:flex;flex-direction:column;justify-content:center}
.event-meta{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.badge{font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--paper);background:var(--accent);padding:5px 12px;border-radius:999px;white-space:nowrap}
.badge--past{background:var(--faint)}
.event-dates{font-size:12.5px;letter-spacing:0.08em;color:var(--muted)}
.event-card__body h2{font-weight:500;font-size:30px;margin-bottom:6px}
.event-card__sub{font-family:var(--font-display);font-style:italic;font-size:18px;color:var(--accent);margin-bottom:14px}
.event-card__body p{font-size:14.5px;line-height:1.7;color:var(--muted);margin:0 0 18px;max-width:480px}
.event-card__place{font-size:13px;color:#5b564b;line-height:1.7;margin-bottom:20px}

/* event single */
.event-hero{background:var(--dark-2);color:var(--paper)}
.event-hero__inner{padding:72px var(--gutter)}
.event-hero .eyebrow{color:var(--olive-light)}
.event-hero h1{font-weight:500;font-style:italic;font-size:clamp(38px,6vw,54px);line-height:1.05;margin-top:18px;color:var(--paper)}
.event-hero__when{margin-top:22px;font-size:16px;letter-spacing:0.06em;color:#e6e1d2}
.event-detail{padding:64px var(--gutter) 40px;display:grid;grid-template-columns:1.2fr 0.8fr;gap:56px;align-items:start;}
.event-detail__text{font-size:17px;line-height:1.9;color:#403c34}
.event-detail__text p{margin:0 0 20px}
.info-card{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:30px 32px}
.info-card .lbl{font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--faint);margin-bottom:16px}
.info-card dl{display:flex;flex-direction:column;gap:16px;margin:0;font-size:14px;color:#403c34;line-height:1.6}
.info-card dt{color:var(--faint);font-size:12px;letter-spacing:0.06em;margin-bottom:3px}
.info-card dd{margin:0}
.event-thumbs{padding:10px var(--gutter) 84px}
.event-thumbs__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.event-thumbs img{width:100%;object-fit:cover;border-radius:2px}

/* event teaser on home */
.teaser{background:var(--dark-2);color:var(--paper)}
.teaser__inner{padding:64px var(--gutter);display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.teaser .eyebrow{color:var(--olive-light)}
.teaser h2{font-weight:500;font-style:italic;font-size:clamp(30px,4vw,40px);line-height:1.1;margin-top:18px;color:var(--paper)}
.teaser p{font-size:16px;line-height:1.7;color:#cfcabb;margin:20px 0 0;max-width:440px}
.teaser__when{margin-top:26px;font-size:14px;letter-spacing:0.08em;color:#e6e1d2;line-height:1.9}
.teaser__cta{margin-top:28px}
.teaser__art{display:block;grid-template-columns:1fr 1fr;gap:14px}
.teaser__art img{width:100%;object-fit:cover;border-radius:2px}
.teaser__art img:first-child{grid-row:span 2;height:100%}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{padding:80px var(--gutter) 90px;display:grid;grid-template-columns:0.9fr 1.1fr;gap:64px;align-items:start}
.contact__intro h1{font-weight:400;font-size:clamp(34px,5vw,46px);margin-top:16px}
.contact__intro>p{font-size:16px;line-height:1.8;color:var(--muted);margin:22px 0 34px;max-width:420px}
.contact__details{display:flex;flex-direction:column;gap:20px;font-size:14.5px;color:#403c34;border-top:1px solid var(--line-strong);padding-top:26px}
.contact__details .lbl{font-size:12px;letter-spacing:0.16em;text-transform:uppercase;color:var(--faint);margin-bottom:4px}
.contact__form{background:var(--card);border:1px solid var(--line);border-radius:3px;padding:40px}
.form-field{margin-bottom:18px}
.form-field label{display:block;font-size:11.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}
.form-field input,.form-field textarea{
  width:100%;background:#fff;border:1px solid var(--line-strong);border-radius:2px;padding:13px 14px;
  font-family:var(--font-body);font-size:15px;color:var(--ink);font-weight:300;transition:border-color .35s ease,background-color .35s ease,box-shadow .35s ease;
}
.form-field input:focus,.form-field textarea:focus{border-color:var(--accent);outline:none}
.form-field textarea{resize:vertical;min-height:130px}
.form-success{text-align:center;padding:40px 10px}
.form-success .h{font-family:var(--font-display);font-style:italic;font-size:30px;color:var(--accent)}
.form-success p{font-size:15px;color:var(--muted);line-height:1.7;margin:14px 0 26px}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--dark);color:#cfcabb}
.site-footer__top{padding:56px var(--gutter) 40px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-footer__logo{height:140px;width:auto;filter:invert(1) brightness(1.6)}
.site-footer__top p{font-size:13.5px;line-height:1.8;color:#8f897c;margin:18px 0 0;max-width:300px}
.site-footer h4{font-family:var(--font-body);font-weight:400;font-size:11.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--olive-light);margin-bottom:16px}
.site-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}
.site-footer a{font-size:1rem;color:var(--#ece8de);transition:color .35s ease,opacity .35s ease}
.site-footer a:hover{color:#fff}
.site-footer__contact{display:flex;flex-direction:column;gap:11px;font-size:13.5px;color:#cfcabb}
.site-footer__bottom{border-top:1px solid rgba(244,241,233,.1)}
.site-footer__bottom .wrap{padding-top:20px;padding-bottom:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:1rem;color:#6f6a5e;letter-spacing:0.04em}
.site-footer__bottom .wrap a{font-size:1rem;transition:0.3s;color:var(--muted);}
.site-footer__bottom .wrap a:hover{color:var(--card);}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
.reveal.is-visible{opacity:1;transform:none}

/* ============================================================
   GUTENBERG / CONTENT (the_content)
   ============================================================ */
.entry-content{max-width:760px;margin:0 auto;font-size:16.5px;line-height:1.85;color:#403c34}
.entry-content > *{margin-top:0;margin-bottom:1.2em}
.entry-content h2{font-size:30px;margin:1.6em 0 .5em}
.entry-content h3{font-size:23px;margin:1.4em 0 .4em}
.entry-content a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.entry-content blockquote{border-left:2px solid var(--accent);margin:1.4em 0;padding:.2em 0 .2em 24px;font-family:var(--font-display);font-style:italic;font-size:22px;color:var(--muted)}
.entry-content img{border-radius:3px}
.entry-content .wp-block-pullquote,.entry-content figure{margin:1.6em 0}

/* ============================================================
   BLOCK STYLES (front-end mirror of editor-style.css)
   ============================================================ */
.is-style-sanart-quote{
  border:none;border-left:2px solid var(--accent);
  padding:.2em 0 .2em 24px;margin:1.4em 0;
  font-family:var(--font-display);font-style:italic;font-size:22px;color:var(--muted);
}
.is-style-sanart-quote cite{display:block;margin-top:10px;font-family:var(--font-body);font-style:normal;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.is-style-sanart-frame img{border-radius:3px;box-shadow:0 24px 50px -28px rgba(38,36,32,.5)}

/* ============================================================
   ENTRY CANVAS — pages authored in Gutenberg (the_content)
   ============================================================ */
.entry-canvas{padding:100px 0 50px 0;}
/* vertical rhythm between top-level sections */
.entry-canvas > *{margin-top:56px;margin-bottom:0}
.entry-canvas > *:first-child{margin-top:0}
/* constrain plain text blocks; leave grids/sections full width */
.entry-canvas > p,
.entry-canvas > h1,
.entry-canvas > h2,
.entry-canvas > h3,
.entry-canvas > ul,
.entry-canvas > ol,
.entry-canvas > blockquote,
.entry-canvas > figure,
.entry-canvas > .wp-block-quote,
.entry-canvas > .wp-block-columns{
  max-width:860px;margin-left:auto;margin-right:auto;
  padding-left:var(--gutter);padding-right:var(--gutter);
}
.entry-canvas > .wp-block-columns{max-width:1180px}
/* dynamic grids from shortcodes */
.entry-canvas .work-grid,
.entry-canvas .gallery-cards,
.entry-canvas .gallery-rows,
.entry-canvas .gallery-grid{max-width:1180px;margin-left:auto;margin-right:auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.entry-canvas .contact{max-width:1180px;margin-left:auto;margin-right:auto;padding:0 var(--gutter)}
.entry-canvas .teaser{margin-top:0px;margin-bottom: -50px;}

/* Hero (block group) */
.sanart-hero{max-width:760px;margin:0 auto;text-align:center;padding:0px var(--gutter) 10px}
.sanart-hero .eyebrow{margin:0}
.sanart-hero__logo{margin:30px auto 8px !important}
.sanart-hero__logo img{height:150px;width:auto;margin:0 auto}
.sanart-hero__title{font-style:italic;font-weight:400;font-size:clamp(30px,5vw,42px);line-height:1.15;margin:14px 0 0}
.sanart-hero__lead{max-width:600px;margin:24px auto 0;font-size:17px;line-height:1.75;color:#5b564b}
.sanart-hero .wp-block-buttons{margin-top:34px}

/* Fond animé « Lignes de relief » (voir assets/js/hero-lines.js) */
.sanart-hero{position:relative;overflow:hidden}
.sanart-hero__bg{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;margin-top: 100px !important;}
.sanart-hero > :not(.sanart-hero__bg){position:relative;z-index:1}

/* Section heading groups */
.sa-heading{max-width:760px;margin:0 auto;text-align:center;padding:0 var(--gutter)}
.sa-heading .eyebrow{margin:0 0 14px}
.sa-heading h1{font-weight:400;font-size:clamp(34px,5vw,46px)}
.sa-heading h2{font-weight:500;font-size:clamp(28px,4vw,34px)}
.sa-sub{font-family:var(--font-display);font-style:italic;font-size:23px;color:var(--muted);margin-top:8px !important}
.sa-lead{max-width:600px;margin:18px auto 0 !important;font-size:16px;line-height:1.7;color:var(--muted)}

/* Artiste two-column */
.entry-canvas .sa-artiste{align-items:flex-start}
.entry-canvas .sa-artiste .wp-block-column:first-child{position:sticky;top:110px}
.entry-canvas .sa-artiste p{font-size:16.5px;line-height:1.95;color:#403c34;margin:0 0 20px}

/* Heading spans inside shortcode cards */
.gallery-card__h{display:block;font-family:var(--font-display);font-weight:500;font-size:24px;color:var(--ink);margin-bottom:10px}
.gallery-row__h{display:block;font-family:var(--font-display);font-weight:500;font-size:clamp(26px,3.6vw,34px);color:var(--ink);margin:10px 0 14px}
.teaser__h{font-weight:500;font-style:italic;font-size:clamp(30px,4vw,40px);line-height:1.1;margin-top:18px;color:var(--paper)}
.figure__cap{display:block;margin-top:14px}

/* WordPress buttons → SanArt button */
.entry-canvas .wp-block-button__link{
  background:var(--dark);color:var(--paper);border:none;border-radius:2px;
  font-family:var(--font-body);font-weight:400;font-size:12.5px;letter-spacing:0.22em;text-transform:uppercase;
  padding:15px 34px;transition:background .35s ease;
}
.entry-canvas .wp-block-button__link:hover{background:var(--accent)}

.event-thumbs__single img{width:100%;border-radius:3px}

/* wrapper spans used inside shortcode <a> cards need to be block-level */
.figure__frame,
.gallery-card__cover,
.gallery-row__cover,
.event-card__cover,
.figure__cap,
.figure__cap-row,
.gallery-card__body,
.gallery-row__body{display:block}
.figure__cap-row,
.gallery-card__body,
.gallery-row__body{display:flex}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:980px){
  .oeuvre__grid,.artiste-body,.contact,.teaser__inner,.event-detail{grid-template-columns:1fr;gap:36px}
  .artiste-portrait{position:static}
  .entry-canvas .sa-artiste .wp-block-column:first-child{position:static}
  .gallery-cards,.work-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-row,.event-card{grid-template-columns:1fr}
  .gallery-row__cover,.event-card__cover{min-height:220px;}
}
@media (max-width:760px){
  :root{--gutter:22px}
  .nav-toggle{display:block;z-index:90}
  .main-nav{
    position:fixed;inset:78px 0 auto 0;background:var(--paper);
    border-bottom:1px solid var(--line);
    transform:translateY(-130%);transition:transform .4s ease;padding:14px 0 22px;
  }
  body.nav-open .main-nav{transform:translateY(0)}
  .main-nav ul{flex-direction:column;align-items:flex-start;gap:0;padding:0 22px}
  .main-nav li{width:100%;border-bottom:1px solid var(--line)}
  .main-nav a{display:block;padding:16px 0;font-size:13px}
  /* Hide underline animation on mobile */
  .main-nav a::after{display:none}
  
  /* Mobile submenu styles */
  .main-nav .sub-menu{
    position:static;opacity:1;visibility:visible;transform:none;
    background:transparent;box-shadow:none;padding:0;max-height:0;overflow:hidden;
    transition:max-height .3s ease;
  }
  
  .main-nav .sub-menu.is-open{
    max-height:500px;
  }
  
  .main-nav .sub-menu a{
    padding:12px 0 12px 22px;font-size:12px;background:transparent;
  }
  
  .main-nav li.menu-item-has-children > a{
    display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px 0;
  }
  
  /* Mobile: show custom right arrow for submenu toggle */
  .main-nav li.menu-item-has-children > a::after{
    content:"";display:inline-block !important;width:6px;height:6px;
    border:solid var(--ink);border-width:0 1.5px 1.5px 0;
    padding:2px;transform:rotate(45deg);transition:transform .3s ease;
    margin-left:auto;margin-bottom:0;
  }
  
  .main-nav li.menu-item-has-children > a.is-open::after{
    transform:rotate(-45deg);
  }
  .gallery-cards,.work-grid,.gallery-grid,.event-thumbs__grid,.teaser__art{grid-template-columns:1fr 1fr}
  .hero{padding-top:64px}
  .hero__logo{height:110px}
  .site-footer__top{grid-template-columns:1fr;gap:30px}
  .site-footer a{font-size:1.2rem;}
  .work-grid,.gallery-cards{grid-template-columns:1fr}
}
@media (max-width:460px){
  .gallery-cards,.work-grid,.gallery-grid,.event-thumbs__grid,.teaser__art{grid-template-columns:1fr}
}

@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  *{scroll-behavior:auto !important}
  .figure__frame img,.gallery-card__cover img,.gallery-row__cover img{transition:none}
}

/* ============================================================
   GLIGHTBOX CUSTOMIZATION
   ============================================================ */
/* Trigger styling for archive gallery */
.glightbox-trigger{cursor:zoom-in}
.glightbox-trigger .figure__frame img{cursor:zoom-in}

/* Single oeuvre image link */
.oeuvre__image-link{display:inline-block;position:relative;cursor:zoom-in}
.oeuvre__image-link::after{
  content:"🔍 Agrandir";
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  opacity:0;background:rgba(38,36,32,.8);color:var(--paper);
  padding:12px 18px;border-radius:3px;font-size:12px;letter-spacing:0.1em;
  transition:opacity .35s ease;pointer-events:none;white-space:nowrap;
}
.oeuvre__image-link:hover::after{opacity:1}

/* GLightbox modal styling */
.glightbox-container{background:rgba(0,0,0,.9)}
.glightbox-wrapper{padding:20px}
.gslide-image img{max-height:90vh;object-fit:contain}
.gslide-title{font-family:var(--font-display);font-style:italic;color:var(--paper);font-size:16px;margin-top:12px}
.gslide-description{color:#cfcabb;font-size:13px}

/* Navigation buttons */
.glightbox .gclose,.glightbox .gprev,.glightbox .gnext{
  background:rgba(255,255,255,.1);color:var(--paper);
  border:none;border-radius:3px;
  transition:background .3s ease;
}
.glightbox .gclose:hover,.glightbox .gprev:hover,.glightbox .gnext:hover{
  background:rgba(255,255,255,.2)
}

/* Custom modal content styling */
.glightbox-modal-content{
  display:flex;gap:2rem;padding:2rem;align-items:flex-start;
  font-family:var(--font-base);
}
.glightbox-modal-content > div:first-child{
  flex:0 0 55%;min-width:0;
}
.glightbox-modal-content > div:first-child img{
  width:100%;height:auto;display:block;margin-bottom:0.5rem;
}
.glightbox-modal-image-desc{
  margin:0;font-size:0.85rem;line-height:1.6;color:#a8a8a8;padding:0.5rem 0;
}
.glightbox-modal-content > div:last-child{
  flex:1;display:flex;flex-direction:column;gap:0;
}
.glightbox-modal-cat{
  font-size:11.5px;letter-spacing:0.24em;text-transform:uppercase;color:#8fa57c;margin-bottom:6px;
}
.glightbox-modal-title{
  font-weight:500;font-size:clamp(24px,3.5vw,32px);margin:8px 0 6px;font-family:var(--font-display);
}
.glightbox-modal-title a:hover {
  color:var(--accent);
}
.glightbox-modal-title a svg{
  transition:margin .35s ease;margin-left:0;margin-bottom:0px;
}
.glightbox-modal-title a:hover svg{
  margin-left: 5px;margin-bottom: -5px;
}

.glightbox-modal-sub{
  font-family:var(--font-display);font-style:italic;font-size:16px;color:#888;margin-bottom:20px;
}
.glightbox-modal-specs-list{
  display:grid;grid-template-columns:auto 1fr;column-gap:20px;row-gap:9px;font-size:13px;
  border-top:1px solid rgba(255,255,255,0.1);padding-top:18px;margin:0 0 20px;
}
.glightbox-modal-specs-list dt{
  color:#888;letter-spacing:.04em;font-weight:400;
}
.glightbox-modal-specs-list dd{
  margin:0;font-weight:400;
}
.glightbox-modal-notes{
  margin:20px 0;border-top:1px solid rgba(255,255,255,0.1);padding-top:18px;
  display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:#9a9a9a;
}
.glightbox-modal-notes .star{
  color:#8fa57c;margin-right:8px;
}
.glightbox-modal-footer{
  margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,0.1);
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
}
.dispo{
  display:inline-flex;align-items:center;gap:8px;font-size:13px;
}
.dispo .dot{
  width:6px;height:6px;background:#8fa57c;border-radius:50%;display:inline-block;
}
.dispo--vendu{
  color:#666;
}
.dispo--vendu .dot{
  background:#666;
}
.price{
  font-size:20px;font-weight:bold;
}

@media (max-width:768px){
  .glightbox-modal-content{
    flex-direction:column;gap:1.5rem;padding:1.5rem;
  }
  .glightbox-modal-content > div:first-child{flex:1;width:100%}
  .glightbox-modal-title{font-size:clamp(20px,3vw,28px)}
  .glightbox-modal-sub{font-size:14px}
}

.nf-form-fields-required {
  display: none;
}