/* Pages intérieures : classes de la référence statique, compatibles avec les blocs natifs. */
.ashbay-page {
 --paper:var(--wp--preset--color--paper); --text:var(--wp--preset--color--foreground);
 --navy:var(--wp--preset--color--navy); --pearl:var(--wp--preset--color--pearl);
 --muted:var(--wp--preset--color--muted); --ink:var(--wp--preset--color--ink);
 --font-body:var(--wp--preset--font-family--body); --font-display:var(--wp--preset--font-family--display);
}
.ashbay-page, .ashbay-page * { box-sizing:border-box; }
.ashbay-page-main, .ashbay-page-main > .wp-block-post-content, .ashbay-page-main + footer { margin-block:0; }
.ashbay-page :is(h1,h2,h3,p,figure,blockquote) { margin-block:0; }
.ashbay-page :is(h1,h2,h3) { overflow-wrap:anywhere; }
.ashbay-page img { display:block; max-width:100%; height:auto; }
.ashbay-page .wp-block-image { margin:0; }
.ashbay-page :is(a,button,input,textarea):focus-visible { outline:2px solid currentColor; outline-offset:5px; }
.ashbay-page :is(a,button) { transition:opacity .2s; }
.ashbay-page a:hover { opacity:.75; }
.ashbay-page .container { width:100%; max-width:1024px; margin-inline:auto; }
.ashbay-page .container--reading { max-width:768px; }
.ashbay-page .centered { display:flex; flex-direction:column; align-items:center; text-align:center; }
.ashbay-page .stack { display:flex; flex-direction:column; gap:32px; }
.ashbay-page .section { padding:96px 24px; }
.ashbay-page .surface-dark { background:var(--ink); color:var(--paper); }
.ashbay-page .eyebrow { font:400 12px/1.8 var(--font-body); text-transform:uppercase; letter-spacing:.3em; }
.ashbay-page .display-title { font:300 clamp(44px,7vw,96px)/.95 var(--font-display); text-transform:uppercase; text-wrap:balance; }
.ashbay-page .display-title em { text-transform:none; font-weight:300; }
.ashbay-page .section-title { font:300 clamp(36px,5vw,60px)/1 var(--font-display); text-wrap:balance; }
.ashbay-page .signature { font:italic 300 clamp(32px,4vw,60px)/1.2 var(--font-display); }
.ashbay-page .prose { max-width:70ch; font-weight:300; line-height:1.625; }
.ashbay-page .prose p + p { margin-top:24px; }
.ashbay-page .split { display:grid; align-items:center; gap:48px; }
.ashbay-page .split > *, .ashbay-page .about-intro-grid > *, .ashbay-page .contact-layout > *, .ashbay-page .film-gallery > * { min-width:0; }
.ashbay-page .brand-monogram img { width:48px; height:auto; object-fit:contain; }
.ashbay-page .brand-monogram--light { filter:brightness(0) invert(1); }
.ashbay-page .wp-block-button__link { display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:0; border-radius:0; padding:12px 32px; background:var(--navy); color:var(--paper); font:400 14px/1.625 var(--font-body); text-align:center; text-transform:uppercase; letter-spacing:.3em; text-decoration:none; }
.ashbay-page .button--secondary .wp-block-button__link { background:var(--pearl); color:var(--text); border-radius:2px; padding-inline:16px; letter-spacing:.25em; }
.ashbay-page .text-link .wp-block-button__link { background:transparent; color:inherit; padding:0 0 8px; border-bottom:1px solid currentColor; }
.ashbay-page .text-link { max-width:100%; }
.ashbay-page .text-link .wp-block-button { max-width:100%; }
.ashbay-page .text-link .wp-block-button__link { overflow-wrap:anywhere; }
.ashbay-page .centered > .wp-block-buttons { justify-content:center; }
/* À propos. */
.ashbay-page .about-intro { padding:clamp(64px,7vw,104px) 24px 80px; }
.ashbay-page .about-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(48px,6vw,88px); align-items:center; }
.ashbay-page .about-heading > .eyebrow { color:var(--muted); margin-bottom:24px; }
.ashbay-page .about-heading .display-title { font-size:clamp(64px,7.2vw,104px); }
.ashbay-page .about-lead { margin-top:28px; font-size:18px; line-height:1.6; font-weight:300; }
.ashbay-page .about-bio { margin-top:28px; color:var(--muted); }
.ashbay-page .about-heading > .text-link { margin-top:32px; }
.ashbay-page .about-heading > .text-link .wp-block-button__link { letter-spacing:.2em; }
.ashbay-page .about-portrait img { width:100%; aspect-ratio:828/1024; object-fit:cover; }
.ashbay-page .about-portrait figcaption { margin-top:16px; font:400 11px/1.625 var(--font-body); text-transform:uppercase; letter-spacing:.2em; color:var(--muted); }
.ashbay-page .about-journey { padding:0 24px 88px; }
.ashbay-page .about-journey-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding-top:40px; border-top:1px solid var(--pearl); }
.ashbay-page .about-journey-heading .signature { font-size:32px; }
.ashbay-page .about-places { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; list-style:none; margin:36px 0 0; padding:0; }
.ashbay-page .about-places .eyebrow { font-size:10px; color:var(--muted); }
.ashbay-page .about-places h3 { margin:12px 0; font:400 36px/1.1 var(--font-display); }
.ashbay-page .about-places .prose { color:var(--muted); font-size:14px; }
.ashbay-page .about-approach-heading .brand-monogram { margin-bottom:32px; }
.ashbay-page .about-approach-heading .eyebrow { margin-bottom:24px; }
.ashbay-page .about-approach-heading .section-title { line-height:1.12; }
.ashbay-page .about-approach .prose { line-height:1.85; }
.ashbay-page .about-approach .text-link { align-self:start; }
.ashbay-page .about-approach .text-link .wp-block-button__link { letter-spacing:.2em; }
.ashbay-page .about-invitation { min-height:0; padding:clamp(80px,10vw,144px) 24px; color:var(--text); }
.ashbay-page .about-invitation .section-title { font-size:clamp(44px,5vw,64px); line-height:1.08; }
/* Galerie de films. Aucun lecteur tiers chargé avant le clic vers YouTube. */
.ashbay-page .page-masthead { padding:96px 24px 64px; }
.ashbay-page .page-masthead .prose { color:var(--muted); }
.ashbay-page .film-collection { padding:0 24px 104px; }
.ashbay-page .film-collection-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-block:24px; border-top:1px solid var(--pearl); }
.ashbay-page .film-collection-heading > p { font-size:13px; color:var(--muted); }
.ashbay-page .film-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px 32px; }
.ashbay-page .film-entry-image a { display:block; position:relative; overflow:hidden; }
.ashbay-page .film-entry-image img { width:100%; aspect-ratio:16/9; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.ashbay-page .film-entry-image a:is(:hover,:focus-visible) img { transform:scale(1.035); }
.ashbay-page .film-entry-image a:hover { opacity:1; }
.ashbay-page .film-entry-image a::before { content:''; position:absolute; z-index:1; left:50%; top:50%; transform:translate(-50%,-50%); width:48px; height:48px; border:1px solid var(--paper); border-radius:50%; background:rgba(20,26,31,.65); }
.ashbay-page .film-entry-image a::after { content:''; position:absolute; z-index:1; left:calc(50% + 2px); top:50%; transform:translate(-50%,-50%); border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:11px solid var(--paper); }
.ashbay-page .film-caption { background:var(--ink); color:var(--paper); font:400 12px/1.6 var(--font-body); text-transform:uppercase; letter-spacing:.15em; }
.ashbay-page .film-caption a { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 20px; min-height:48px; color:inherit; text-decoration:none; }
.ashbay-page .film-caption span[aria-hidden] { font-size:20px; flex-shrink:0; }
.ashbay-page .film-entry-description { padding-top:16px; color:var(--muted); font-size:14px; }
.ashbay-page-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Contact, mise en page éditoriale. */
.ashbay-page .contact-intro { padding:clamp(64px,7vw,104px) 24px 64px; text-align:center; }
.ashbay-page .contact-intro .eyebrow { color:var(--muted); margin-bottom:24px; }
.ashbay-page .contact-intro .display-title { font-size:clamp(56px,7vw,96px); line-height:1; }
.ashbay-page .contact-intro .prose { margin:28px auto 0; color:var(--muted); }
.ashbay-page .contact-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); gap:clamp(48px,6vw,88px); padding:0 24px 104px; max-width:1152px; align-items:start; }
.ashbay-page .contact-portrait img { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:52% center; }
.ashbay-page .contact-portrait figcaption { margin:16px 0 0; font:italic 300 20px/1.625 var(--font-display); color:var(--muted); text-align:center; }
.ashbay-page .contact-note { margin-top:40px; }
.ashbay-page .contact-note .prose { color:var(--muted); }
.ashbay-page .contact-brand-monogram { margin-bottom:20px; }
.ashbay-page .contact-signature { margin-top:20px; font-size:14px; }
.ashbay-page .contact-signature em { margin-left:8px; font:italic 300 30px/1.2 var(--font-display); }
.ashbay-page .contact-direct { margin-top:40px; padding-top:28px; border-top:1px solid var(--pearl); }
.ashbay-page .contact-direct .text-link { margin-top:12px; }
.ashbay-page .contact-direct .text-link .wp-block-button__link { text-transform:none; letter-spacing:.03em; }
.ashbay-page .contact-direct .prose { margin-top:16px; font-size:14px; color:var(--muted); }
.ashbay-page .contact-form-column { padding-top:8px; }
.ashbay-page .contact-form-intro .section-title { margin:16px 0 20px; font-size:clamp(40px,4vw,51px); }
.ashbay-page .contact-form-intro .prose { font-size:14px; color:var(--muted); }
.ashbay-page .contact-closing { gap:24px; padding:64px 24px; }
.ashbay-page .contact-closing .signature { font-size:clamp(32px,5vw,56px); }
.ashbay-page .contact-closing .text-link { margin-top:8px; }
/* CF7 conserve sa validation serveur, son statut d’envoi et ses annonces accessibles. */
.ashbay-page .ashbay-inquiry { margin-top:36px; }
.ashbay-page .ashbay-form-fields { display:flex; flex-direction:column; gap:28px; }
.ashbay-page .ashbay-form-row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; }
.ashbay-page .ashbay-form-field { min-width:0; }
.ashbay-page .ashbay-form-field label { display:block; font-size:13px; letter-spacing:.09em; }
.ashbay-page .ashbay-form-field .wpcf7-form-control-wrap { display:block; margin-top:10px; }
.ashbay-page .ashbay-form-field :is(input,textarea) { display:block; width:100%; min-width:0; min-height:48px; border:0; border-bottom:1px solid var(--pearl); border-radius:0; padding:12px 0; background:transparent; font:300 16px/1.6 var(--font-body); color:var(--text); transition:border-color .2s; }
.ashbay-page .ashbay-form-field textarea { resize:vertical; min-height:150px; }
.ashbay-page .ashbay-form-field :is(input,textarea)::placeholder { color:var(--muted); opacity:1; }
.ashbay-page .ashbay-form-field :is(input,textarea):focus { border-color:var(--navy); }
.ashbay-page .ashbay-form-field :is(input,textarea):focus-visible { outline-color:var(--navy); outline-offset:4px; }
.ashbay-page .ashbay-form-field .wpcf7-not-valid { border-color:#9d3030; }
.ashbay-page .ashbay-form-help { display:block; margin-top:10px; color:var(--muted); font-size:12px; line-height:1.5; letter-spacing:normal; }
.ashbay-page .ashbay-form-note { color:var(--muted); font-size:13px; line-height:1.7; font-weight:300; }
.ashbay-page .ashbay-form-submit { position:relative; }
.ashbay-page .ashbay-form-submit input { width:100%; min-height:56px; padding:18px 28px; border:0; border-radius:0; background:var(--navy); color:var(--paper); font:400 14px/1.6 var(--font-body); text-transform:uppercase; letter-spacing:.2em; cursor:pointer; white-space:normal; }
.ashbay-page .ashbay-form-submit input:disabled { opacity:.5; cursor:wait; }
.ashbay-page .ashbay-form-submit .wpcf7-spinner { position:absolute; right:0; top:calc(100% + 8px); margin:0; }
.ashbay-page .wpcf7-not-valid-tip { display:block; padding-top:8px; color:#9d3030; font:400 13px/1.5 var(--font-body); letter-spacing:normal; }
.ashbay-page .wpcf7 form .wpcf7-response-output { margin:32px 0 0; padding:20px; border:1px solid var(--pearl); font-size:14px; line-height:1.7; }
.ashbay-page .wpcf7 form.sent .wpcf7-response-output { border-color:var(--navy); }
.ashbay-page .wpcf7 form:is(.failed,.invalid,.spam) .wpcf7-response-output { border-color:#9d3030; }
@media(min-width:768px) {
 .ashbay-page .section { padding-block:128px; }
 .ashbay-page .split { grid-template-columns:1fr 1fr; gap:64px; }
}
@media(max-width:767px) {
 .ashbay-page .about-intro-grid, .ashbay-page .contact-layout { grid-template-columns:1fr; gap:40px; }
 .ashbay-page .about-intro { padding-bottom:48px; }
 .ashbay-page .about-portrait { max-width:480px; }
 .ashbay-page .about-places { grid-template-columns:1fr; gap:28px; }
 .ashbay-page .about-places li + li { padding-top:24px; border-top:1px solid var(--pearl); }
 .ashbay-page .about-journey { padding-bottom:64px; }
 .ashbay-page .about-journey-heading { align-items:start; flex-direction:column; }
 .ashbay-page .film-gallery { grid-template-columns:1fr; row-gap:36px; }
 .ashbay-page .film-collection { padding-bottom:64px; }
 .ashbay-page .contact-layout { padding-bottom:64px; }
 .ashbay-page .contact-portrait img { aspect-ratio:5/4; }
 .ashbay-page .contact-note { margin-top:28px; }
 .ashbay-page .contact-intro { padding-bottom:40px; }
 .ashbay-page .desktop-break { display:none; }
}
@media(max-width:479px) {
 .ashbay-page .ashbay-form-row { grid-template-columns:1fr; gap:28px; }
 .ashbay-page .contact-intro .eyebrow { font-size:10px; letter-spacing:.2em; }
 .ashbay-page .ashbay-form-submit input { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) {
 .ashbay-page :is(a,button,img,input,textarea) { transition:none; }
 .ashbay-page .film-entry-image a:is(:hover,:focus-visible) img { transform:none; }
}
