@font-face { font-family: 'Averia Serif Libre'; font-style: italic; font-weight: 700; font-display: swap; src: url('/assets/averia-serif-libre-700-italic.woff2') format('woff2'); }
@font-face { font-family: 'Bitter'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/bitter-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Bitter'; font-style: italic; font-weight: 700; font-display: swap; src: url('/assets/bitter-700-italic.woff2') format('woff2'); }
@font-face { font-family: 'Averia Serif Libre'; font-style: italic; font-weight: 400; font-display: swap; src: url('/assets/averia-serif-libre-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Averia Serif Libre'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/averia-serif-libre-700-normal.woff2') format('woff2'); }
@font-face { font-family: 'Bitter'; font-style: normal; font-weight: 400; font-display: swap; src: url('/assets/bitter-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Bitter'; font-style: italic; font-weight: 400; font-display: swap; src: url('/assets/bitter-400-italic.woff2') format('woff2'); }

/* LÉLA SCHOOL — common layout. Page compositions are in layouts.css. */
:root {
  --copper: #f38617;
  --cream: #ecebc4;
  --wine: #2e0d13;
  --paper: #fff;
  --gutter: 4vw;
  --content-width: min(1500px, 92vw);
  --fluid-unit: min(1.2vw, 18px);
}
* { box-sizing: border-box; }
html { background: var(--wine); scroll-behavior: smooth; }
body { margin: 0; color: var(--paper); background: var(--wine); font: 16px/1.5 Bitter, Georgia, serif; }
button, input { font: inherit; }
button { cursor: pointer; }
a { color: var(--copper); text-underline-offset: .22em; }
a:hover { color: #ffc27a; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 2px solid var(--cream); outline-offset: 5px; }
h1,h2,h3,h4 { font-family: 'Averia Serif Libre', Georgia, serif; font-style: italic; font-weight: 400; letter-spacing: -.02em; color: var(--copper); margin: 0 0 2rem; overflow-wrap: break-word; }
h1 { font-size: calc(1rem + 3 * var(--fluid-unit)); line-height: 1.056; }
h2 { font-size: calc(1rem + 1.8 * var(--fluid-unit)); line-height: 1.114; }
h3 { font-size: calc(1rem + 1.2 * var(--fluid-unit)); line-height: 1.1424; }
h4 { font-size: calc(1rem + .6 * var(--fluid-unit)); line-height: 1.18; }
p { margin: 1rem 0; }
.large { font-size: calc(1rem + .4 * var(--fluid-unit)); }
.small { font-size: .9rem; }
.text-block > :first-child { margin-top: 0; }
.text-block > :last-child { margin-bottom: 0; }
.color-accent { color: var(--copper); }
.color-white { color: white; }
.color-lightAccent { color: var(--cream); }
.color-darkAccent { color: #0f3b42; }
.skip-link { position: fixed; top: 8px; left: 8px; padding: 10px 16px; background: #000; z-index: 100; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.site-header { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: .9vw 4vw; background: linear-gradient(180deg,#502514,#301017); box-shadow: inset 0 0 0 4px #875222; color: var(--copper); }
.brand { flex-shrink: 0; font: italic calc(1rem + .6vw)/1.2 'Averia Serif Libre', Georgia, serif; text-decoration: none; letter-spacing: -.02em; }
.navigation { display: flex; align-items: center; gap: 2.2vw; }
.navigation > a, .course-toggle, .course-links a { text-decoration: none; white-space: nowrap; }
.navigation a[aria-current="page"] { text-decoration: underline; }
.course-toggle,.course-back { background: none; border: 0; padding: 0; color: var(--copper); }
.course-menu { position: relative; }
.course-links { display: none; position: absolute; right: -16px; top: 100%; min-width: 230px; padding: 12px 16px; background: #784414; text-align: right; }
.course-links a { display: block; }
.course-menu.open .course-links { display: block; }
.menu-toggle,.course-back,.mobile-chevron { display: none; }
.page-section { position: relative; padding: var(--section-padding,0) 0; }
.page-section.divided:after { content: ''; display: block; position: absolute; bottom: -1px; left: 0; width: 100%; height: 8vw; background: #26050c; clip-path: polygon(0 0,100% 100%,100% 0); pointer-events: none; }
.composition { display: grid; position: relative; grid-template-columns: minmax(calc(var(--gutter) - var(--column-gap)),1fr) repeat(24,minmax(0,calc((1500px - var(--column-gap)*23)/24))) minmax(calc(var(--gutter) - var(--column-gap)),1fr); grid-template-rows: repeat(var(--rows), minmax(calc(var(--content-width)*.0215),auto)); gap: var(--row-gap) var(--column-gap); }
.block { min-width: 0; grid-area: var(--area); display: flex; flex-direction: column; justify-content: var(--align,flex-start); }
.image-block { position: relative; margin: 0; align-items: center; justify-content: center; min-height: 0; }
.image-block img { display: block; width: 100%; height: 100%; max-width: 100%; position: absolute; object-fit: var(--fit,contain); object-position: var(--focal,50% 50%); }
.site-footer { color: var(--copper); display: flex; justify-content: space-between; gap: 24px; padding: 0 4vw 6.6vmax 15vw; }
.site-footer p { font-size: 16px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
/* The source's manually composed home page. */
.home-title { z-index: 3; }
.home-title h1 { margin: 0; font-size: clamp(1rem,6.7734vw,101px); line-height: 1; white-space: nowrap; letter-spacing: -.02em; }
.home-art { z-index: 0; }
.home-tagline { z-index: 2; mix-blend-mode: screen; }
.home-introduction { z-index: 4; background: rgba(78,42,4,.54); padding: 2% 1%; }
.home-introduction h2 { font-weight: 700; }
.home-introduction h3 { font-weight: 700; }
.contact-art { border-radius: 50%; overflow: hidden; aspect-ratio: 1; align-self: center; }
.page-contact .phone { justify-content: center; }
.page-contact .email { justify-content: center; }
.contact-details { grid-area: 12/16/23/25; justify-content: flex-start; gap: 20px; text-align: center; }
.contact-details > .block { display: block; width: 100%; }
.contact-details .contact-heading { order: 1; }
.contact-details .email { order: 2; }
.contact-details .phone { order: 3; }
.page-contact .composition { padding-right: 4vw; }
.page-vanille .composition { padding-right: 1vw; }
.page-nouvelle-page-2 .page-section { margin: 4vw; }
.page-nouvelle-page-2 .composition { --content-width: min(1500px,84vw); }
.page-nouvelle-page-2 .image-block img { object-fit: contain; }
@media (max-width: 900px) and (min-width: 768px) {
  .navigation { gap: 1.4vw; }
  .site-header { padding-inline: 3vw; gap: 12px; }
  .navigation > a,.course-toggle { font-size: 14px; }
}
@media (max-width: 799px), (pointer: coarse) and (max-width: 1024px) {
  .site-header { height: calc(12vw + 37px); padding: 0 6vw; justify-content: center; }
  .brand { font-size: 16px; }
  .menu-toggle { position: absolute; right: 7.7vw; top: calc(6vw + 2px); display: flex; flex-direction: column; justify-content: center; gap: 10px; width: 36px; height: 34px; padding: 0; border: 0; background: transparent; color: var(--copper); }
  .menu-toggle span { display: block; width: 36px; height: 1px; background: currentColor; transition: transform .2s; }
  .navigation { display: none; position: fixed; inset: calc(12vw + 37px) 0 0; background: #000; flex-direction: column; justify-content: center; gap: 8px; padding: 24px; overflow-y: auto; }
  .navigation > a,.course-toggle,.course-links a,.course-back { font-size: clamp(24px,8.2vw,34px); line-height: 1.5; white-space: normal; text-align: center; }
  .menu-open { overflow: hidden; }
  .menu-open .site-header { background: #000; box-shadow: none; }
  .menu-open .navigation { display: flex; }
  .menu-open .menu-toggle span:first-child { transform: translateY(5.5px) rotate(45deg); }
  .menu-open .menu-toggle span:last-child { transform: translateY(-5.5px) rotate(-45deg); }
  .mobile-chevron { display: inline; }
  .course-links { position: static; padding: 0; background: transparent; text-align: center; }
  .navigation.courses-open > a,.courses-open .course-toggle { display: none; }
  .course-back { display: block; margin: 0 auto 20px; }
  .course-links a { margin: 12px 0; }
}
@media (max-width: 767px) {
  :root { --gutter: 6vw; --content-width: 88vw; --fluid-unit: calc(.012 * min(100vh,900px)); }
  .composition { grid-template-columns: minmax(calc(6vw - var(--column-gap)),1fr) repeat(8,minmax(0,calc((1500px - var(--column-gap)*7)/8))) minmax(calc(6vw - var(--column-gap)),1fr); grid-template-rows: repeat(var(--mobile-rows),minmax(24px,auto)); }
  .block { grid-area: var(--mobile-area); }
  .home-title h1 { font-size: 13.15vw; }
  .page-home .composition { padding-top: 0; }
  .home-tagline { justify-content: flex-start; }
  .site-footer { flex-direction: column; align-items: center; gap: 0; padding: 24px 6vw 50px; text-align: center; }
  .site-footer p { margin: .5rem 0; }
  /* Natural flow on content pages keeps every paragraph legible at small sizes and at 200% zoom. */
  body:not(.page-home) .composition { display: flex; flex-direction: column; gap: 30px; padding: 32px 6vw; }
  body:not(.page-home) .block { width: 100%; }
  body:not(.page-home) .text-block { height: auto; }
  body:not(.page-home) .image-block { position: relative; height: auto; min-height: 0; }
  body:not(.page-home) .image-block img { position: static; width: 100%; height: auto; max-height: 520px; object-fit: contain; }
  .page-section { padding: 0; }
  .page-section.divided { padding-bottom: 40px; }
  .page-section.divided:after { height: 30px; }
  .page-vanille .portrait img { max-height: 600px !important; object-fit: cover !important; }
  .page-vanille .vanille-logo img { max-height: 220px !important; }
  .page-contact .contact-art { width: min(100%,400px); align-self: center; }
  .page-contact .contact-art img { height: 100% !important; position: absolute !important; object-fit: cover !important; }
  .page-contact [style*="margin-left"] { margin-left: 0 !important; }
  .page-contact .contact-details { display: contents; }
  .page-contact .contact-details > .block { order: 0; }
  .page-nouvelle-page-2 .page-section { margin: 0; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *,*:before,*:after { transition: none !important; animation: none !important; } }

/* Per-page compositions, measured from the original site. */
.home-1 { --section-padding: 0; }
.home-1 .composition { --rows: 19; --mobile-rows: 23; --column-gap: 19.0px; --row-gap: 11.0px; }
.home-1 .home-title { --area: 2/11/5/23; --mobile-area: 3/2/5/10; --align: flex-start; }
.home-1 .home-art { --area: 1/3/20/26; --mobile-area: 7/2/22/10; --align: center; }
.home-1 .home-art { --fit: cover; --focal: 13.0638% 67.2042%; }
.home-1 .home-tagline { --area: 5/10/7/24; --mobile-area: 5/2/15/10; --align: center; }
.home-1 .home-introduction { --area: 7/9/20/25; --mobile-area: 22/2/24/10; --align: flex-start; }
.nouvelle-page-1 { --section-padding: 6.6vmax; }
.nouvelle-page-1 .composition { --rows: 31; --mobile-rows: 52; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-1 .block-1 { --area: 3/2/7/7; --mobile-area: 1/2/5/10; --align: flex-start; }
.nouvelle-page-1 .block-2 { --area: 9/3/19/9; --mobile-area: 5/2/11/10; --align: center; }
.nouvelle-page-1 .block-2 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1 .block-3 { --area: 3/10/24/25; --mobile-area: 11/2/48/10; --align: flex-start; }
.nouvelle-page-1 .block-4 { --area: 24/15/32/21; --mobile-area: 47/4/53/8; --align: center; }
.nouvelle-page-1 .block-4 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-2 { --section-padding: 6.6vmax; }
.nouvelle-page-2 .composition { --rows: 27; --mobile-rows: 37; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-2 .block-1 { --area: 2/2/7/9; --mobile-area: 1/2/3/10; --align: flex-start; }
.nouvelle-page-2 .block-2 { --area: 9/3/18/9; --mobile-area: 3/2/9/10; --align: center; }
.nouvelle-page-2 .block-2 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-2 .block-3 { --area: 4/11/19/24; --mobile-area: 9/2/32/10; --align: flex-start; }
.nouvelle-page-2 .block-4 { --area: 20/14/28/22; --mobile-area: 32/2/38/10; --align: center; }
.nouvelle-page-2 .block-4 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-3 { --section-padding: 6.6vmax; }
.nouvelle-page-3 .composition { --rows: 31; --mobile-rows: 48; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-3 .block-1 { --area: 3/2/7/7; --mobile-area: 1/2/5/10; --align: flex-start; }
.nouvelle-page-3 .block-2 { --area: 2/3/22/9; --mobile-area: 5/2/11/10; --align: center; }
.nouvelle-page-3 .block-2 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-3 .block-3 { --area: 4/11/23/26; --mobile-area: 11/2/49/10; --align: flex-start; }
.nouvelle-page-3 .block-4 { --area: 23/16/32/22; --mobile-area: 43/2/49/10; --align: center; }
.nouvelle-page-3 .block-4 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-1 { --section-padding: 6.6vmax; }
.nouvelle-page-1-1 .composition { --rows: 35; --mobile-rows: 79; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-1-1 .block-1 { --area: 1/2/3/10; --mobile-area: 1/3/3/9; --align: center; }
.nouvelle-page-1-1 .block-2 { --area: 3/2/5/10; --mobile-area: 3/2/5/10; --align: flex-start; }
.nouvelle-page-1-1 .block-4 { --area: 8/2/32/9; --mobile-area: 11/2/17/10; --align: center; }
.nouvelle-page-1-1 .block-4 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-1 .block-5 { --area: 2/11/9/21; --mobile-area: 17/2/23/10; --align: center; }
.nouvelle-page-1-1 .block-5 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-1 .block-6 { --area: 9/9/36/24; --mobile-area: 23/2/74/10; --align: flex-start; }
.nouvelle-page-1-2 { --section-padding: 6.6vmax; }
.nouvelle-page-1-2 .composition { --rows: 33; --mobile-rows: 43; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-1-2 .block-1 { --area: 1/2/5/7; --mobile-area: 1/2/3/10; --align: flex-start; }
.nouvelle-page-1-2 .block-2 { --area: 8/2/16/8; --mobile-area: 3/2/9/10; --align: center; }
.nouvelle-page-1-2 .block-2 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-2 .block-3 { --area: 17/2/26/8; --mobile-area: 9/2/15/10; --align: center; }
.nouvelle-page-1-2 .block-3 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-2 .block-4 { --area: 1/9/29/24; --mobile-area: 15/2/38/10; --align: flex-start; }
.nouvelle-page-1-2 .block-5 { --area: 28/12/34/21; --mobile-area: 38/2/44/10; --align: center; }
.nouvelle-page-1-2 .block-5 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-3 { --section-padding: 6.6vmax; }
.nouvelle-page-1-3 .composition { --rows: 24; --mobile-rows: 37; --column-gap: 11.0px; --row-gap: 11.0px; }
.nouvelle-page-1-3 .block-1 { --area: 2/2/6/7; --mobile-area: 1/2/3/10; --align: flex-start; }
.nouvelle-page-1-3 .block-2 { --area: 7/2/16/8; --mobile-area: 3/2/9/10; --align: center; }
.nouvelle-page-1-3 .block-2 { --fit: contain; --focal: 50.0000% 50.0000%; }
.nouvelle-page-1-3 .block-3 { --area: 3/9/19/24; --mobile-area: 9/2/32/10; --align: flex-start; }
.nouvelle-page-1-3 .block-4 { --area: 19/9/25/24; --mobile-area: 32/2/38/10; --align: center; }
.nouvelle-page-1-3 .block-4 { --fit: contain; --focal: 50.0000% 50.0000%; }
.vanille-1 { --section-padding: 0; }
.vanille-1 .composition { --rows: 24; --mobile-rows: 40; --column-gap: 11.0px; --row-gap: 11.0px; }
.vanille-1 .portrait { --area: 3/5/23/12; --mobile-area: 1/2/16/10; --align: center; }
.vanille-1 .portrait { --fit: cover; --focal: 47.0656% 0.8001%; }
.vanille-1 .vanille-logo { --area: 8/12/17/16; --mobile-area: 13/2/19/10; --align: center; }
.vanille-1 .vanille-logo { --fit: contain; --focal: 50.0000% 50.0000%; }
.vanille-1 .vanille-heading { --area: 2/17/4/26; --mobile-area: 19/2/21/10; --align: flex-start; }
.vanille-1 .vanille-biography { --area: 5/16/22/27; --mobile-area: 21/2/41/10; --align: flex-start; }
.nouvelle-page-2-1 { --section-padding: 0; }
.nouvelle-page-2-1 .composition { --rows: 25; --mobile-rows: 28; --column-gap: 0.0px; --row-gap: 0.0px; }
.nouvelle-page-2-1 .block-1 { --area: 1/2/26/26; --mobile-area: 1/2/17/10; --align: center; }
.nouvelle-page-2-1 .block-1 { --fit: contain; --focal: 50.0000% 50.0000%; }
.actualite-1 { --section-padding: 6.6vmax; }
.actualite-1 .composition { --rows: 24; --mobile-rows: 15; --column-gap: 11.0px; --row-gap: 11.0px; }
.actualite-1 .block-1 { --area: 1/3/22/25; --mobile-area: 1/2/16/10; --align: center; }
.actualite-1 .block-1 { --fit: contain; --focal: 50.0000% 50.0000%; }
.contact-1 { --section-padding: 0; }
.contact-1 .composition { --rows: 28; --mobile-rows: 51; --column-gap: 0.0px; --row-gap: 4.0px; }
.contact-1 .address { --area: 2/2/16/14; --mobile-area: 1/2/31/10; --align: flex-start; }
.contact-1 .saturday { --area: 17/2/22/14; --mobile-area: 31/2/33/10; --align: flex-start; }
.contact-1 .contact-heading { --area: 12/16/15/24; --mobile-area: 33/2/37/10; --align: center; }
.contact-1 .phone { --area: 18/16/21/24; --mobile-area: 36/2/38/10; --align: center; }
.contact-1 .email { --area: 16/16/18/24; --mobile-area: 37/2/39/10; --align: center; }
.contact-1 .contact-art { --area: 2/16/12/27; --mobile-area: 39/2/52/10; --align: center; }
.contact-1 .contact-art { --fit: cover; --focal: 41.3056% 42.4027%; }
