/* ══════════════════════════════════════════════════════════════════════
   ToriTrip — jetons de style
   Palette, typographie, échelles. Chargé sur tout le site.
   ══════════════════════════════════════════════════════════════════════ */

@font-face{
  font-family:"Shippori Mincho";
  src:url("../fonts/shippori-mincho-600-latin.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
    U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"Shippori Mincho";
  src:url("../fonts/shippori-mincho-600-latin-ext.woff2") format("woff2");
  font-weight:600;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,
    U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,
    U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* ══════════════════════════════════════════════════════════════════════
   NunitoSans — surcharge du thème parent
   Le thème parent sert NunitoSans-Variable.ttf : 556 Ko, format TTF non
   compressé. La même police en WOFF2 pèse 57 Ko pour les deux sous-ensembles
   latins, soit ~499 Ko d'économie sur chaque première visite.
   Cette déclaration est chargée après celle du parent : c'est la dernière
   déclarée qui l'emporte pour une même famille.
   ══════════════════════════════════════════════════════════════════════ */
@font-face{
  font-family:"NunitoSans";
  src:url("../fonts/nunitosans-var-latin.woff2") format("woff2");
  font-weight:200 1000;font-style:normal;font-display:swap;
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:"NunitoSans";
  src:url("../fonts/nunitosans-var-latin-ext.woff2") format("woff2");
  font-weight:200 1000;font-style:normal;font-display:swap;
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root{
  /* — palette — */
  --tt-paper:#EFF1F2;
  --tt-surface:#FFFFFF;
  --tt-surface-2:#E4E8EA;
  --tt-sumi:#16233A;          /* encre — ai-iro, l'indigo japonais */
  --tt-sumi-2:#46556B;
  --tt-sumi-3:#626F7F;        /* AA : 4,5:1 sur papier ET sur blanc */
  --tt-ai:#03718A;            /* interactif */
  --tt-ai-dark:#025B6E;
  --tt-shu:#A8402E;           /* accent éditorial — shu-iro, vermillon des torii */
  --tt-shu-clair:#D26C5A;     /* le même, éclairci pour rester lisible sur l'encre */
  --tt-shu-soft:#F2E3DF;
  --tt-keisen:#D2D8DC;        /* filets */
  --tt-keisen-2:#B9C2C8;
  --tt-or:#8A7434;

  /* — sur fond encre — */
  --tt-on-sumi:#FFFFFF;
  --tt-on-sumi-2:#C5D0DE;
  --tt-on-sumi-3:#8FA3BC;
  --tt-keisen-sumi:#2E3F58;

  /* — typographie — */
  --tt-display:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho",Georgia,serif;
  --tt-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;

  /* — rythme — */
  --tt-gap:clamp(1rem,2.4vw,1.75rem);
  --tt-section-y:clamp(3.25rem,7vw,5.75rem);
  --tt-max:1280px;
  --tt-radius:2px;
}

/* Nos sections sortent de la contrainte de largeur de WordPress.
   Le thème applique max-width:700px (contentSize) à tout enfant direct d'un
   conteneur .is-layout-constrained ; nos sections doivent être pleine largeur,
   et c'est .tt-inner qui reprend la main sur la mesure. */
.wp-site-blocks .tt-section,
.entry-content > .tt-section{
  max-width:none;width:100%;margin-inline:0;
}
.tt-section > .tt-inner{
  max-width:var(--tt-max);
  margin-inline:auto;
  padding-inline:clamp(1.125rem,4vw,2.5rem);
}

/* Titres en mincho sur l'ensemble du site */
h1,h2,h3,h4,.tt-display{
  font-family:var(--tt-display);
  font-weight:600;
  letter-spacing:-.012em;
  text-wrap:balance;
}

/* ── œil-de-bœuf : le dispositif signature ── */
.tt-eyebrow{
  display:flex;align-items:baseline;gap:.62em;flex-wrap:wrap;
  font-family:var(--tt-mono);font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--tt-shu);font-weight:600;margin:0 0 .75em;
}
.tt-eyebrow .tt-ja{
  font-family:var(--tt-display);font-size:.94rem;letter-spacing:.08em;
  text-transform:none;color:var(--tt-sumi-3);font-weight:600;
}
.tt-eyebrow .tt-fr{color:var(--tt-sumi-2);}
.tt-section--sumi .tt-eyebrow .tt-ja,
.tt-section--sumi .tt-eyebrow .tt-fr{color:var(--tt-on-sumi-3);}
/* Le vermillon plein tombe à 2,6:1 sur l'encre : illisible. On bascule sur
   sa version éclaircie partout où le fond est sombre. */
.tt-section--sumi .tt-eyebrow{color:var(--tt-shu-clair);}

/* ── sections ── */
.tt-section{padding-block:var(--tt-section-y);overflow-x:clip;}  /* garde-fou anti-débordement */
.tt-section + .tt-section{border-top:1px solid var(--tt-keisen);}
.tt-section--sumi{
  background:var(--tt-sumi);color:var(--tt-on-sumi);border-top:none;
}
.tt-section--sumi + .tt-section{border-top:none;}
.tt-section--sumi h2,.tt-section--sumi h3{color:var(--tt-on-sumi);}
.tt-section--sumi p{color:var(--tt-on-sumi-2);}
.tt-section-titre{font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.15;margin:0 0 .5em;}
.tt-section-chapo{font-size:1.02rem;color:var(--tt-sumi-2);max-width:62ch;margin:0;}
.tt-section--sumi .tt-section-chapo{color:var(--tt-on-sumi-2);}

/* ── boutons ── */
.tt-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5em;
  font-size:.9rem;font-weight:650;line-height:1.2;
  min-height:44px;                       /* seuil tactile confortable */
  padding:.78em 1.4em;border:1px solid var(--tt-ai);background:var(--tt-ai);
  color:#fff;border-radius:var(--tt-radius);text-decoration:none;
  transition:background .16s ease,border-color .16s ease,transform .16s ease;
}
.tt-btn:hover,.tt-btn:focus-visible{background:var(--tt-ai-dark);border-color:var(--tt-ai-dark);color:#fff;}
.tt-btn--ghost{background:none;color:var(--tt-sumi);border-color:var(--tt-keisen-2);}
.tt-btn--ghost:hover,.tt-btn--ghost:focus-visible{background:none;color:var(--tt-sumi);border-color:var(--tt-sumi);}
.tt-btn--light{background:#fff;border-color:#fff;color:var(--tt-sumi);}
.tt-btn--light:hover,.tt-btn--light:focus-visible{background:var(--tt-surface-2);border-color:var(--tt-surface-2);color:var(--tt-sumi);}
.tt-btns{display:flex;flex-wrap:wrap;gap:.65rem;}

/* ── focus visible, partout ── */
.tt-section a:focus-visible,.tt-section button:focus-visible,
.tt-section summary:focus-visible,.tt-section [tabindex]:focus-visible{
  outline:2px solid var(--tt-shu);outline-offset:3px;border-radius:var(--tt-radius);
}
.tt-section--sumi a:focus-visible{outline-color:#E8A091;}

/* ── utilitaires ── */
.tt-mono{font-family:var(--tt-mono);}
.tt-num{font-variant-numeric:tabular-nums;}
.tt-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}

@media (prefers-reduced-motion:reduce){
  .tt-section *,.tt-section *::before,.tt-section *::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important;
  }
}

/* ══ pages internes : régions, saisons, plan du site ══ */
.tt-page-regions{max-width:74ch;}
.tt-lede{font-size:1.1rem;color:var(--tt-sumi-2);margin:0 0 2.5rem;}
.tt-reg{padding-block:1.75rem;border-top:1px solid var(--tt-keisen);scroll-margin-top:5rem;}
.tt-reg h2{font-size:clamp(1.35rem,2.6vw,1.75rem);margin:0 0 .3rem;
  display:flex;align-items:baseline;gap:.5em;flex-wrap:wrap;}
.tt-reg h2 i{font-style:normal;font-size:.7em;color:var(--tt-sumi-3);letter-spacing:.06em;}
.tt-reg-meta{font-family:var(--tt-mono);font-size:.7rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--tt-sumi-3);margin:0 0 1rem;}
.tt-reg p{margin:0 0 .85rem;}
.tt-reg ul{margin:0;padding-left:1.15em;}
.tt-reg li{margin:.4em 0;}
.tt-page-note{font-size:.85rem;color:var(--tt-sumi-3);margin-top:2rem;
  padding-top:1rem;border-top:1px solid var(--tt-keisen);}
.tt-plan section{margin-bottom:2.25rem;}
.tt-plan h2{font-size:1.2rem;margin:0 0 .75rem;padding-bottom:.4rem;
  border-bottom:1px solid var(--tt-keisen);}
.tt-plan ul{list-style:none;margin:0;padding:0;}
.tt-plan li{padding:.45rem 0;border-bottom:1px solid var(--tt-keisen);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
.tt-plan li span{font-family:var(--tt-mono);font-size:.72rem;color:var(--tt-sumi-3);}

/* ══════════════════════════════════════════════════════════════════════
   PIED DE PAGE
   Chargé sur tout le site : le pied de page est présent partout.
   ══════════════════════════════════════════════════════════════════════ */
.tt-pied{background:var(--tt-sumi);color:var(--tt-on-sumi);
  padding-block:clamp(2.5rem,5vw,3.75rem) 0;}
.tt-pied-inner{max-width:var(--tt-max);margin-inline:auto;
  padding-inline:clamp(1.125rem,4vw,2.5rem);}
.tt-pied-cols{display:grid;gap:clamp(1.75rem,4vw,2.5rem);
  grid-template-columns:1fr;padding-bottom:2.25rem;}
@media (min-width:600px){ .tt-pied-cols{grid-template-columns:1fr 1fr;} }
@media (min-width:960px){ .tt-pied-cols{grid-template-columns:repeat(4,1fr);} }

.tt-pied-col h2{font-family:var(--tt-display);font-weight:600;font-size:.95rem;
  color:var(--tt-on-sumi);margin:0 0 .9rem;padding-bottom:.6rem;
  border-bottom:1px solid var(--tt-keisen-sumi);
  display:flex;align-items:baseline;gap:.5em;}
.tt-pied-col h2 i{font-style:normal;font-size:.72rem;color:var(--tt-on-sumi-3);letter-spacing:.06em;}
.tt-pied-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem;}
.tt-pied-col a{display:inline-flex;align-items:center;color:var(--tt-on-sumi-2);text-decoration:none;
  font-size:.88rem;padding:.4rem 0;min-height:44px;
  transition:color .15s ease,transform .15s ease;}
.tt-pied-col a:hover,.tt-pied-col a:focus-visible{color:var(--tt-shu-clair);transform:translateX(2px);}
.tt-pied-col p{color:var(--tt-on-sumi-2);font-size:.88rem;margin:0 0 .6rem;}

.tt-pied-social{display:flex;gap:.6rem;margin-top:.35rem;}
.tt-pied-social a{display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border:1px solid var(--tt-keisen-sumi);border-radius:var(--tt-radius);
  color:var(--tt-on-sumi-2);transition:border-color .15s ease,color .15s ease;}
.tt-pied-social a:hover{border-color:var(--tt-shu-clair);color:var(--tt-shu-clair);transform:none;}
.tt-pied-social svg{width:18px;height:18px;fill:currentColor;}

.tt-pied-bas{border-top:1px solid var(--tt-keisen-sumi);
  padding-block:1.15rem 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;
  align-items:baseline;justify-content:space-between;}
.tt-pied-legal{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.15rem;}
.tt-pied-legal a{color:var(--tt-on-sumi-3);font-size:.78rem;text-decoration:none;
  display:inline-flex;align-items:center;min-height:44px;   /* seuil tactile, comme .tt-pied-col a */
  padding:.25rem 0;transition:color .15s ease;}
.tt-pied-legal a:hover,.tt-pied-legal a:focus-visible{color:var(--tt-on-sumi);}
.tt-pied-copy{font-family:var(--tt-mono);font-size:.72rem;letter-spacing:.06em;
  color:var(--tt-on-sumi-3);margin:0;}
.tt-pied a:focus-visible{outline:2px solid var(--tt-shu-clair);outline-offset:3px;}

/* Titre des pages internes (gabarit « no-title ») */
/* Bouton du menu mobile : le thème parent le dimensionne à 24x24, soit le
   minimum WCAG AA strict. On agrandit la zone tactile, l'icône ne bouge pas. */
.wp-block-navigation__responsive-container-open{
  min-width:44px;min-height:44px;
  display:inline-flex;align-items:center;justify-content:center;}

.tt-page-h1{font-size:clamp(1.75rem,4vw,2.6rem);line-height:1.08;
  letter-spacing:-.022em;margin:0 0 1.25rem;}
