@charset "UTF-8";

:root{
--cream:#fff9f3;
--paper:#fffdf9;
--blush:#f5d3df;
--pink:#e77ac3;
--brick:#7c302c;
--ink:#442c30;
--muted:#70585e;
--line:#e3cdd0;
--radius:24px;
--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
--serif:Georgia,"Times New Roman",serif}

*{
box-sizing:border-box}
html{
scroll-behavior:smooth;
scroll-padding-top:110px}
body{
margin:0;
background:var(--cream);
color:var(--ink);
font:16px/1.65 var(--sans);
-webkit-font-smoothing:antialiased}
button,input,textarea,select{
font:inherit}
a{
color:inherit;
text-decoration:none}
button,a,input,textarea,select{
touch-action:manipulation}
button{
cursor:pointer}
img{
max-width:100%;
display:block}
button:disabled{
cursor:not-allowed;
opacity:.55}
svg{
display:block}
h1,h2,h3,p{
margin-top:0}
h1,h2,h3{
font-weight:400}
h1,h2{
font-family:var(--serif);
letter-spacing:-.045em;
line-height:1.08}
h1{
font-size:clamp(46px,6vw,84px)}
h2{
font-size:clamp(35px,4vw,54px)}
h3{
font-size:24px;
line-height:1.25;
letter-spacing:-.02em}
p{
margin-bottom:1.2em}
em{
font-weight:400}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{
outline:3px solid var(--brick);
outline-offset:5px}
::selection{
background:var(--pink);
color:var(--brick)}
[hidden]{
display:none!important}
.skip{
position:fixed;
z-index:100;
top:-80px;
left:20px;
background:var(--brick);
color:white;
padding:12px}
.skip:focus{
top:10px}
.preview-bar{
background:var(--brick);
color:var(--cream);
font-size:10px;
letter-spacing:.1em;
text-transform:uppercase;
text-align:center;
padding:5px 16px}
.site-header{
display:flex;
align-items:center;
gap:40px;
justify-content:space-between;
max-width:1600px;
margin:auto;
padding:23px 5%;
border-bottom:1px solid var(--line);
background:var(--cream)}
.wordmark{
color:var(--brick);
display:inline-flex;
flex-direction:column;
line-height:.8;
flex-shrink:0}
.wordmark>span{
font-size:12px;
letter-spacing:.08em;
padding-left:3px;
margin-bottom:3px}
.wordmark strong{
font-family:var(--serif);
font-size:52px;
font-style:italic;
letter-spacing:-.09em;
font-weight:700}
.logo-dot{
color:var(--pink)}
#navigation{
display:flex;
flex:1;
align-items:center;
justify-content:flex-end;
gap:38px}
.nav-links,.nav-actions{
display:flex;
align-items:center;
gap:27px}
.nav-links a{
font-size:13px;
color:var(--brick);
padding:8px 0;
position:relative}
.nav-links a:after{
content:"";
position:absolute;
bottom:2px;
left:0;
width:0;
height:1px;
background:var(--brick);
transition:width .2s}
.nav-links a:hover:after,.nav-links a[aria-current]:after{
width:100%}
.nav-actions{
gap:24px}
.languages{
display:flex;
gap:10px;
font-size:10px;
font-weight:650}
.languages a{
opacity:.6;
padding:5px 0}
.languages a[aria-current]{
opacity:1;
border-bottom:1px solid}
.button{
display:inline-flex;
gap:20px;
align-items:center;
justify-content:center;
padding:15px 23px;
background:var(--brick);
border:1px solid var(--brick);
color:var(--cream);
border-radius:100px;
font-size:13px;
font-weight:550;
line-height:1.4;
min-height:49px;
transition:background .2s,transform .2s,color .2s;
max-width:100%;
text-align:center}
.button svg{
width:21px;
min-width:21px;
height:21px}
.button:hover{
background:#58201f;
color:white;
transform:translateY(-2px)}
.button.small{
font-size:12px;
padding:12px 18px;
min-height:44px;
gap:14px}
.button.outline{
background:transparent;
color:var(--brick)}
.button.outline:hover{
background:var(--brick);
color:var(--cream)}
.button.cream{
background:var(--cream);
border-color:var(--cream);
color:var(--brick)}
.button.cream:hover{
background:var(--blush);
border-color:var(--blush)}
.button.text-button{
background:transparent;
color:var(--brick);
border:0;
border-bottom:1px solid var(--brick);
border-radius:0;
padding:8px 0;
min-height:0}
.quiet-link{
font-size:13px;
font-weight:550;
color:var(--brick);
text-decoration:underline;
text-decoration-thickness:1px;
text-underline-offset:5px}
.menu-toggle{
display:none}
.eyebrow{
font-size:10px;
letter-spacing:.16em;
font-weight:650;
color:var(--brick);
text-transform:uppercase;
margin-bottom:25px}
.hero{
position:relative;
min-height:650px;
max-width:1600px;
margin:auto;
overflow:hidden;
background:#f6dfd7;
isolation:isolate}
.hero-studio{
position:absolute;
inset:0;
width:100%;
height:100%;
object-fit:cover;
object-position:center}
.hero:after{
content:"";
position:absolute;
inset:0;
z-index:0;
background:linear-gradient(90deg,rgba(255,249,243,.95) 0%,rgba(255,249,243,.84) 25%,rgba(255,249,243,.25) 49%,transparent 62%)}
.hero-copy{
position:relative;
z-index:1;
width:56%;
padding:70px 0 62px 5%;
max-width:850px}
.hero h1{
font-size:clamp(49px,5.3vw,82px);
color:var(--brick);
margin-bottom:25px}
.hero h1 em{
font-style:italic}
.hero-copy>p:not(.eyebrow){
max-width:360px;
font-size:15px;
line-height:1.8}
.hero-actions{
display:flex;
align-items:center;
gap:23px;
flex-wrap:wrap;
margin-top:29px}
.hero-meta{
display:block;
font-size:10px;
letter-spacing:.03em;
color:var(--muted);
margin-top:22px}
.section{
padding:92px 6%;
max-width:1440px;
margin:auto}
.section-heading{
display:flex;
justify-content:space-between;
gap:50px;
align-items:end;
margin-bottom:44px}
.section-heading h2{
margin-bottom:0;
max-width:600px}
.section-heading>p{
max-width:320px;
font-size:14px;
margin-bottom:3px;
color:var(--muted)}
.section-heading .eyebrow{
margin-bottom:17px}
.offer-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:25px}
.offer{
border:1px solid var(--line);
padding:35px 38px 38px;
border-radius:var(--radius)}
.private-offer{
background:#f8e5ec}
.group-offer{
background:#eee9d9}
.offer-top{
display:flex;
justify-content:space-between;
align-items:center;
height:68px;
margin-bottom:26px}
.pill{
display:inline-flex;
font-size:10px;
font-weight:600;
letter-spacing:.04em;
border:1px solid currentColor;
border-radius:30px;
padding:6px 11px;
line-height:1.4;
color:var(--brick)}
.offer h3{
font-family:var(--serif);
font-size:35px;
max-width:350px;
margin-bottom:14px;
color:var(--brick)}
.offer>p{
font-size:14px;
max-width:360px;
line-height:1.8;
min-height:76px}
.price{
font-family:var(--serif);
font-size:56px;
color:var(--brick);
letter-spacing:-.04em;
margin:26px 0}
.price>span{
font:12px var(--sans);
letter-spacing:0;
color:var(--muted);
display:inline-block;
margin-left:8px}
.small-note{
font-size:12px;
line-height:1.7;
color:var(--muted)}
.centered{
text-align:center;
margin:21px 0 0}
.method{
background:#f3eee5}
.method-steps{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:50px;
margin-top:42px}
.step-number{
font:italic 46px var(--serif);
color:var(--brick);
display:block;
margin-bottom:20px}
.method-steps h3{
font-size:19px;
color:var(--brick);
font-weight:550}
.method-steps p{
font-size:14px;
color:var(--muted);
max-width:280px}
.about-preview{
display:grid;
grid-template-columns:.8fr 1.2fr;
align-items:center;
gap:12%;
padding-top:110px;
padding-bottom:110px}
.portrait-composition{
position:relative;
max-width:330px;
margin:auto;
width:100%;
padding:25px;
background:var(--blush);
border-radius:170px 170px 24px 24px;
transform:rotate(-3deg)}
.portrait{
width:100%;
border-radius:140px 140px 12px 12px;
aspect-ratio:1/1;
object-fit:cover}
.about-preview h2{
max-width:570px}
.about-preview p:not(.eyebrow){
font-size:14px;
max-width:480px}
.qualification{
border-left:2px solid var(--pink);
padding-left:14px;
font-size:12px;
color:var(--brick);
margin:25px 0}
.theme-preview{
background:var(--blush);
display:grid;
grid-template-columns:1fr 1fr;
gap:60px;
align-items:center;
overflow:hidden}
.theme-preview p{
max-width:410px;
font-size:14px}
.theme-preview h2{
max-width:480px;
color:var(--brick)}
.faq{
display:grid;
grid-template-columns:.85fr 1.15fr;
gap:10%}
.faq h2{
max-width:370px}
.faq details{
border-bottom:1px solid var(--line);
padding:20px 0}
.faq details:first-child{
border-top:1px solid var(--line)}
.faq summary{
cursor:pointer;
display:flex;
justify-content:space-between;
gap:15px;
font-size:14px;
list-style:none}
.faq summary::-webkit-details-marker{
display:none}
.faq details p{
font-size:13px;
color:var(--muted);
margin:14px 30px 0 0}
.closing{
background:var(--brick);
color:var(--cream);
text-align:center;
position:relative;
overflow:hidden;
padding-top:72px;
padding-bottom:72px}
.closing h2{
max-width:680px;
margin:0 auto 20px;
font-size:clamp(38px,4.7vw,66px)}
.closing p{
font-size:14px;
opacity:.85;
max-width:420px;
margin:0 auto 27px}
.site-footer{
padding:65px 6% 22px;
max-width:1440px;
margin:auto;
display:grid;
grid-template-columns:1fr 1fr;
gap:35px}
.site-footer .wordmark strong{
font-size:62px}
.site-footer p{
font-size:12px;
max-width:250px;
margin-top:20px}
.footer-links{
display:flex;
gap:15px 40px;
flex-wrap:wrap;
align-content:start;
justify-content:end;
font-size:12px;
max-width:460px;
margin-left:auto}
.footer-links a{
padding:4px}
.footer-links a:hover{
text-decoration:underline}
.footer-bottom{
border-top:1px solid var(--line);
padding-top:20px;
grid-column:1/-1;
display:flex;
justify-content:space-between;
gap:20px;
font-size:10px;
color:var(--muted)}

/* Interior pages and reservation flow */
.page-heading{
padding:76px 6% 65px;
max-width:1440px;
margin:auto;
border-bottom:1px solid var(--line)}
.page-heading h1{
max-width:900px;
color:var(--brick);
margin-bottom:22px;
font-size:clamp(44px,5.5vw,76px)}
.page-heading>p:not(.eyebrow){
max-width:580px;
font-size:16px;
color:var(--muted);
margin-bottom:0}
.pink-heading{
background:var(--blush)}
.private-detail{
display:grid;
grid-template-columns:1fr 1fr;
gap:10%;
align-items:center}
.lead{
font-size:18px;
line-height:1.8}
.private-detail .small-note{
margin-top:20px;
max-width:400px}
.private-process{
border:1px solid var(--line);
border-radius:var(--radius);
padding:15px 32px;
background:var(--paper)}
.private-process>div{
display:flex;
align-items:center;
gap:22px;
padding:23px 0;
border-bottom:1px solid var(--line)}
.private-process>div:last-child{
border:0}
.private-process span{
font:italic 34px var(--serif);
color:var(--brick)}
.private-process p{
margin:0;
font-size:14px}
.group-intro{
padding-top:50px;
padding-bottom:0;
display:flex;
gap:70px;
justify-content:space-between}
.group-intro>p{
max-width:620px;
font-size:17px}
.group-facts{
display:flex;
flex-direction:column;
gap:10px;
white-space:nowrap;
font-size:12px;
color:var(--brick);
padding-left:25px;
border-left:2px solid var(--pink)}
.sessions{
padding-top:65px}
.sessions .section-heading{
margin-bottom:25px}
.level-filters{
display:flex;
gap:10px;
flex-wrap:wrap;
margin-bottom:20px}
.filter{
background:transparent;
color:var(--brick);
border:1px solid var(--line);
border-radius:50px;
padding:9px 20px;
font-size:12px;
min-height:42px}
.filter:hover{
background:var(--blush)}
.filter.active{
background:var(--brick);
color:var(--cream);
border-color:var(--brick)}
.example-note{
font-size:11px;
color:var(--muted);
margin:20px 0 25px;
padding-left:12px;
border-left:2px solid var(--pink)}
.session-card{
display:flex;
gap:28px;
align-items:center;
border-top:1px solid var(--line);
padding:27px 0}
.session-card:last-child{
border-bottom:1px solid var(--line)}
.session-date{
width:82px;
height:94px;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
border-radius:45px 45px 12px 12px;
background:var(--blush);
color:var(--brick);
flex-shrink:0}
.session-date span{
text-transform:uppercase;
font-size:11px;
letter-spacing:.08em}
.session-date strong{
font:42px/.95 var(--serif);
margin-top:7px}
.session-tags{
display:flex;
gap:10px;
align-items:center;
margin-bottom:11px}
.example-label{
font-size:10px;
color:var(--muted)}
.session-body{
flex:1}
.session-body h3{
font-family:var(--serif);
font-size:27px;
color:var(--brick);
margin-bottom:10px}
.session-body p{
font-size:12px;
margin-bottom:4px}
.session-body .pill{
padding:3px 9px}
.session-action{
text-align:right;
display:flex;
flex-direction:column;
align-items:end;
gap:12px}
.session-action strong{
font:30px var(--serif);
color:var(--brick)}
.session-action .button{
font-size:12px;
padding:11px 16px}
.empty-state{
padding:40px;
border:1px dashed var(--line);
border-radius:16px;
text-align:center}
.booking-choice{
display:grid;
grid-template-columns:1fr 1fr;
gap:20px;
padding-bottom:0;
padding-top:40px}
.booking-choice>a{
background:var(--paper);
border:1px solid var(--line);
border-radius:18px;
padding:25px;
display:grid;
grid-template-columns:1fr auto;
gap:10px}
.booking-choice strong{
font:26px var(--serif);
color:var(--brick)}
.booking-choice span{
font-size:12px;
grid-column:1}
.booking-choice svg{
width:26px;
grid-column:2;
grid-row:1/3;
align-self:center}
.booking-choice>a:hover{
background:var(--blush)}
.contact-layout{
display:grid;
grid-template-columns:.8fr 1.2fr;
gap:9%;
align-items:start;
padding-top:60px}
.contact-person{
display:flex;
align-items:center;
gap:20px;
margin-bottom:30px}
.small-portrait{
width:85px;
height:85px;
border-radius:50%;
object-fit:cover;
flex-shrink:0}
.contact-person h2{
font:italic 36px var(--serif);
color:var(--brick);
margin-bottom:9px}
.contact-person p{
font-size:11px;
margin:0}
.contact-layout aside>p{
font-size:14px}
.contact-note{
padding-top:25px;
border-top:1px solid var(--line);
margin-top:30px;
display:flex;
gap:20px;
color:var(--muted)}
.contact-note>span{
font:42px var(--serif);
color:var(--brick)}
.contact-note p{
font-size:13px}
.form-card{
background:var(--paper);
padding:35px;
border:1px solid var(--line);
border-radius:var(--radius)}
form label{
display:flex;
flex-direction:column;
font-size:12px;
font-weight:550;
gap:8px;
margin-bottom:21px}
input,select,textarea{
background:var(--cream);
color:var(--ink);
border:1px solid #cbb3ba;
border-radius:9px;
padding:12px;
width:100%;
font-size:14px;
min-width:0}
textarea{
resize:vertical}
input[type=checkbox],input[type=radio]{
width:17px;
height:17px;
accent-color:var(--brick);
flex-shrink:0;
margin:3px 0 0;
padding:0}
input:focus,select:focus,textarea:focus{
border-color:var(--brick)}
.form-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:0 20px}
.check-label{
flex-direction:row;
gap:11px;
font-weight:400;
font-size:11px;
line-height:1.65}
.check-label span{
padding-top:1px}
.form-result{
font-size:13px;
margin-top:15px;
white-space:pre-line}
.error-message{
color:#9b2721;
background:#fff0ed;
padding:15px;
border:1px solid #d8aaa0;
border-radius:9px}
.success-message{
color:#336143;
background:#edf6ee;
padding:15px;
border-radius:9px;
font-size:13px}
.form-success>span{
display:grid;
place-items:center;
background:var(--blush);
color:var(--brick);
width:55px;
height:55px;
border-radius:50%;
font-size:24px;
margin-bottom:25px}
.form-success h2{
font-size:32px}
.form-success p{
font-size:13px;
color:var(--muted)}
.community-layout{
display:grid;
grid-template-columns:1fr 1fr;
align-items:center;
gap:12%}
.interest-section{
padding-top:60px;
max-width:750px}
.interest-form h2{
font-size:36px}
.interest-form>p{
font-size:14px}
.resources-list{
padding-top:20px}
.resource-item{
display:grid;
grid-template-columns:80px 1fr 80px;
gap:30px;
border-bottom:1px solid var(--line);
padding:45px 0;
align-items:start}
.resource-number{
font:italic 40px var(--serif);
color:var(--brick)}
.resource-item h2{
font-size:34px;
max-width:650px}
.resource-item p{
font-size:15px;
max-width:730px;
color:var(--muted);
margin-bottom:0}
.about-full{
display:grid;
grid-template-columns:.8fr 1.2fr;
gap:12%;
align-items:center}
.about-full .portrait-composition{
max-width:350px}
.about-full p{
font-size:15px}
.bookings-layout{
max-width:950px;
padding-top:40px}
.compact-form{
max-width:500px;
margin:auto}
.booking-card{
padding:35px;
background:var(--paper);
border:1px solid var(--line);
border-radius:20px;
margin-bottom:25px}
.booking-card>.pill{
margin-bottom:24px;
font-size:12px}
.booking-card h2{
font-size:35px}
.booking-card>p{
font-size:14px}
.booking-card dl{
display:grid;
grid-template-columns:1fr 1fr;
gap:22px;
margin:25px 0;
padding:25px 0;
border-top:1px solid var(--line);
border-bottom:1px solid var(--line)}
dt{
font-size:10px;
color:var(--muted);
margin-bottom:5px}
dd{
font-size:12px;
margin:0;
overflow-wrap:anywhere}
.payment-instructions{
padding:20px;
background:#f8edf1;
border-radius:12px;
margin:25px 0}
.payment-instructions h3{
font-size:16px}
.payment-instructions p{
font-size:13px;
margin:0}
.preserve-lines{
white-space:pre-line}
.declare-form{
max-width:420px}
.status-confirmed{
color:#326548}
.status-expired{
color:#78524d}
.legal-copy{
max-width:850px;
padding-top:40px}
.legal-copy h2{
font-size:30px;
margin-top:30px}
.legal-copy p{
font-size:15px}
.dialog-close{
border:0;
background:var(--cream);
color:var(--brick);
width:42px;
height:42px;
border-radius:50%;
font-size:30px;
position:absolute;
right:18px;
top:18px;
line-height:1}
.dialog-close:hover{
background:var(--blush)}
dialog{
background:var(--paper);
color:var(--ink);
border:1px solid var(--line);
border-radius:24px;
padding:40px;
width:min(620px,calc(100% - 30px));
max-height:calc(100dvh - 40px);
overflow:auto}
dialog::backdrop{
background:#442c3070;
backdrop-filter:blur(3px)}
body:has(dialog[open]){
overflow:hidden}
.modal-head{
padding-top:20px;
margin-bottom:25px}
.modal-head .pill{
margin-bottom:18px}
.modal-head h2{
font-size:37px;
margin-bottom:16px}
.modal-head>p{
font-size:13px}
.payment-options{
display:flex;
gap:15px;
flex-wrap:wrap;
margin-top:12px}
.payment-options label{
flex-direction:row;
border:1px solid var(--line);
border-radius:10px;
padding:12px 15px;
margin:0;
font-size:12px;
align-items:start;
gap:10px}
.payment-options label:has(input:checked){
border-color:var(--brick);
background:#f8e9ee}
fieldset{
border:0;
padding:0;
margin:5px 0 18px;
min-width:0}
legend{
font-size:12px;
font-weight:550}

/* Local back-office */
.admin-body{
background:#f7f3ef}
.admin-shell{
display:grid;
grid-template-columns:235px 1fr;
min-height:100dvh}
.admin-sidebar{
padding:35px 22px;
background:var(--brick);
color:var(--cream);
position:sticky;
top:0;
height:100dvh;
display:flex;
flex-direction:column}
.admin-sidebar .wordmark{
color:var(--cream);
margin:0 13px 40px}
.admin-sidebar .wordmark strong{
font-size:52px}
.admin-nav{
display:flex;
flex-direction:column;
gap:5px}
.admin-nav button{
color:#f9e9ec;
background:transparent;
border:0;
border-radius:10px;
padding:12px 15px;
text-align:left;
font-size:13px;
display:flex;
align-items:center;
gap:13px}
.admin-nav button span{
font-size:17px;
min-width:21px}
.admin-nav button.active,.admin-nav button:hover{
background:#ffffff1c;
color:white}
.admin-sidebar-bottom{
margin-top:auto;
padding:30px 12px 0;
font-size:11px;
display:flex;
flex-direction:column;
gap:12px}
.admin-content{
padding:35px 40px;
min-width:0;
max-width:1500px;
width:100%;
margin:auto auto auto 0}
.admin-topbar{
display:flex;
justify-content:space-between;
gap:20px;
align-items:center;
margin-bottom:35px}
.admin-topbar h1{
font:42px var(--serif);
color:var(--brick);
margin:4px 0}
.admin-topbar p{
font-size:12px;
color:var(--muted);
margin:0}
.local-pill{
font-size:10px;
border:1px solid var(--line);
padding:5px 10px;
border-radius:30px;
white-space:nowrap}
.admin-actions{
display:flex;
align-items:center;
gap:10px;
flex-wrap:wrap}
.admin-panel{
background:var(--paper);
border:1px solid var(--line);
border-radius:16px;
padding:25px;
margin-bottom:25px;
min-width:0}
.admin-panel h2{
font:28px var(--serif);
margin-bottom:20px;
color:var(--brick)}
.admin-panel h3{
font-size:16px;
font-weight:600}
.admin-panel>p{
font-size:13px}
.metrics{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:15px;
margin-bottom:25px}
.metric{
border:1px solid var(--line);
border-radius:16px;
background:var(--paper);
padding:23px}
.metric span{
font-size:11px;
color:var(--muted)}
.metric strong{
display:block;
font:39px var(--serif);
margin-top:12px;
color:var(--brick)}
.metric small{
font-size:10px;
color:var(--muted)}
.admin-split{
display:grid;
grid-template-columns:1.2fr 1fr;
gap:23px}
.admin-list{
list-style:none;
margin:0;
padding:0}
.admin-list li{
padding:17px 0;
border-bottom:1px solid var(--line);
display:flex;
gap:20px;
justify-content:space-between;
align-items:center}
.admin-list li:last-child{
border:0}
.admin-list strong{
font-size:13px;
font-weight:600}
.admin-list small{
display:block;
font-size:11px;
color:var(--muted)}
.admin-list .pill{
font-size:9px;
flex-shrink:0}
.admin-table-wrap{
overflow:auto}
.admin-table{
border-collapse:collapse;
width:100%;
text-align:left;
font-size:12px}
.admin-table th{
font-weight:550;
font-size:10px;
color:var(--muted);
padding:12px 14px;
border-bottom:1px solid var(--line);
white-space:nowrap}
.admin-table td{
padding:17px 14px;
border-bottom:1px solid var(--line);
vertical-align:top;
min-width:100px}
.admin-table td:first-child{
padding-left:0}
.admin-table th:first-child{
padding-left:0}
.admin-table td small{
font-size:10px;
display:block;
color:var(--muted);
margin-top:4px}
.admin-table tr:last-child td{
border:0}
.admin-table .button{
padding:8px 13px;
min-height:35px;
font-size:10px;
white-space:nowrap;
gap:6px}
.badge{
display:inline-block;
font-size:10px;
padding:4px 9px;
border-radius:30px;
background:#f2e2d8;
color:#704c39;
white-space:nowrap}
.badge.confirmed,.badge.paid{
background:#e0eddf;
color:#386344}
.badge.expired{
background:#eee7e3;
color:#76625e}
.badge.declared{
background:#f4dfe9;
color:#813c69}
.admin-toolbar{
display:flex;
justify-content:space-between;
gap:20px;
align-items:center;
margin-bottom:22px;
flex-wrap:wrap}
.admin-toolbar h2{
margin:0}
.admin-search{
max-width:290px;
background:var(--paper);
padding:10px 14px;
font-size:12px}
.admin-tabs{
display:flex;
gap:8px;
margin-bottom:25px;
flex-wrap:wrap}
.admin-tabs button{
padding:9px 14px;
background:var(--paper);
color:var(--ink);
border:1px solid var(--line);
border-radius:9px;
font-size:11px}
.admin-tabs button.active{
background:var(--brick);
color:white;
border-color:var(--brick)}
.admin-empty{
padding:35px 20px;
text-align:center;
color:var(--muted);
font-size:13px}
.admin-empty strong{
font:26px var(--serif);
display:block;
color:var(--brick);
margin-bottom:12px}
.admin-info{
padding:17px 20px;
border:1px solid var(--line);
background:#f8e9ef;
border-radius:12px;
font-size:12px;
margin-bottom:25px}
.login-layout{
max-width:600px;
margin:12vh auto;
padding:30px}
.login-layout .wordmark{
margin-bottom:35px}
.login-layout h1{
font-size:43px;
color:var(--brick)}
.login-layout p{
font-size:14px}
.login-layout .small-note{
font-size:12px}
.admin-form{
max-width:750px}
.admin-form .button{
margin-top:10px}
.outbox-item{
border:1px solid var(--line);
border-radius:12px;
margin-bottom:12px;
padding:18px;
background:var(--paper)}
.outbox-item summary{
font-size:13px;
cursor:pointer;
font-weight:550}
.outbox-item summary small{
font-size:10px;
color:var(--muted);
display:block;
margin-top:5px}
.mail-body{
white-space:pre-wrap;
overflow-wrap:anywhere;
font:12px/1.8 var(--sans);
padding:20px 0 0;
margin:0}
.outbox-item a{
color:var(--brick);
text-decoration:underline}
.toast{
position:fixed;
right:25px;
bottom:25px;
background:var(--brick);
color:white;
border-radius:12px;
padding:15px 23px;
font-size:12px;
z-index:200;
box-shadow:0 10px 30px #442c3022;
max-width:calc(100% - 40px)}
.admin-dialog h2{
font-size:32px}
.admin-dialog{
width:min(680px,calc(100% - 25px))}
.settings-note{
font-size:11px;
color:var(--muted);
margin-top:-10px;
margin-bottom:25px}
.admin-mobile-title{
display:none}

@media(min-width:1600px){
.hero-copy{
padding-left:80px}
.site-header{
padding-inline:80px}
}

@media(max-width:1150px){
#navigation{
gap:24px}
.nav-links{
gap:19px}
.nav-links a{
font-size:11px}
.nav-actions{
gap:17px}
.nav-actions .button{
font-size:10px;
padding:11px 14px}
.site-header{
gap:30px}
.hero{
min-height:610px}
.hero-copy{
width:60%;
padding-top:65px}
.hero h1{
font-size:64px}
.hero-copy>p:not(.eyebrow){
font-size:14px;
max-width:310px}
.section{
padding:75px 5%}
.offer{
padding:28px}
.admin-content{
padding:30px 25px}
.admin-shell{
grid-template-columns:205px 1fr}
.admin-split{
grid-template-columns:1fr}
.metrics{
grid-template-columns:1fr 1fr}
.admin-sidebar{
padding:30px 15px}
.hero-actions{
gap:17px}
.hero-actions .quiet-link{
font-size:11px}
}

@media(max-width:900px){
.site-header{
padding:19px 5%;
flex-wrap:wrap}
.wordmark strong{
font-size:47px}
.menu-toggle{
display:flex;
align-items:center;
gap:12px;
background:transparent;
color:var(--brick);
border:1px solid var(--line);
border-radius:50px;
padding:9px 15px;
font-size:12px;
min-height:42px}
#navigation{
display:none;
width:100%;
flex:none;
padding:20px 0 5px;
align-items:start}
#navigation.is-open{
display:flex}
.nav-links{
align-items:start;
flex-direction:column;
gap:8px;
flex:1}
.nav-links a{
font-size:14px}
.nav-actions{
flex-direction:column;
align-items:end;
gap:20px}
.nav-actions .button{
font-size:12px}
.languages{
font-size:12px;
gap:20px}
.hero{
min-height:565px}
.hero-copy{
width:62%;
padding-top:50px;
padding-bottom:45px}
.hero h1{
font-size:54px}
.hero .eyebrow{
font-size:8px}
.hero-actions{
flex-direction:column;
align-items:start;
gap:19px}
.hero-copy>p:not(.eyebrow){
max-width:280px}
.hero-studio{
object-position:55% center}
.section-heading{
gap:30px}
.section-heading>p{
max-width:250px;
font-size:12px}
.offer h3{
font-size:30px}
.offer>p{
font-size:13px;
min-height:95px}
.offer-top{
margin-bottom:25px}
.offer{
padding:25px}
.offer .pill{
font-size:9px}
.price{
font-size:48px}
.method-steps{
gap:30px}
.about-preview{
gap:8%;
grid-template-columns:.8fr 1.2fr}
.portrait-composition{
padding:20px}
.theme-preview{
gap:35px}
.faq{
gap:7%;
grid-template-columns:.8fr 1.2fr}
.session-card{
gap:22px}
.session-action .button{
max-width:175px;
font-size:10px}
.session-action .button svg{
width:17px;
min-width:17px}
.session-date{
width:65px;
height:82px}
.session-date strong{
font-size:35px}
.session-body h3{
font-size:24px}
.contact-layout{
gap:6%;
grid-template-columns:.8fr 1.2fr}
.form-card{
padding:25px}
.private-detail{
gap:7%}
.private-process{
padding:10px 22px}
.community-layout{
gap:7%}
.about-full{
gap:8%}
}

@media(max-width:650px){
html{
scroll-padding-top:20px}
.preview-bar{
font-size:8px;
padding:5px 12px}
.site-header{
padding:19px 6%}
.wordmark>span{
font-size:10px}
.wordmark strong{
font-size:43px}
#navigation.is-open{
flex-direction:column;
gap:25px}
.nav-links{
width:100%}
.nav-links a{
width:100%;
padding:8px 0}
.nav-actions{
flex-direction:row;
justify-content:space-between;
align-items:center;
width:100%;
gap:20px}
.hero{
display:flex;
flex-direction:column;
min-height:0;
overflow:hidden}
.hero-copy{
width:100%;
padding:42px 6% 32px;
max-width:none;
order:0}
.hero h1{
font-size:clamp(44px,10.3vw,67px);
margin-bottom:24px}
.hero .eyebrow{
font-size:8px;
margin-bottom:22px}
.hero-copy>p:not(.eyebrow){
font-size:14px;
max-width:350px}
.hero-actions{
flex-direction:row;
gap:18px;
margin-top:24px}
.hero-actions .button{
font-size:12px;
padding:14px 18px;
gap:13px}
.hero-actions .quiet-link{
font-size:11px}
.hero-meta{
font-size:9px;
margin-top:22px}
.hero-studio{
position:relative;
order:1;
height:260px;
width:100%;
object-fit:cover;
object-position:80% 60%;
max-width:none;
transform:scale(1.03)}
.hero:after{
display:none}
.section{
padding:57px 6%}
h2{
font-size:37px}
.section-heading{
display:block;
margin-bottom:30px}
.section-heading>p{
max-width:100%;
font-size:13px;
margin:18px 0 0}
.eyebrow{
font-size:9px;
margin-bottom:19px}
.offer-grid{
grid-template-columns:1fr;
gap:18px}
.offer{
padding:24px 26px 30px;
border-radius:20px}
.offer h3{
font-size:35px;
max-width:290px}
.offer>p{
font-size:13px;
min-height:0;
max-width:100%}
.offer-top{
height:55px;
margin-bottom:20px}
.offer .pill{
font-size:9px}
.price{
font-size:51px;
margin:22px 0}
.price>span{
font-size:10px}
.offer .button{
font-size:12px;
padding:12px 18px;
min-height:45px}
.centered{
font-size:10px}
.method-steps{
grid-template-columns:1fr;
gap:25px;
margin-top:30px}
.method-steps article{
display:grid;
grid-template-columns:54px 1fr;
gap:0 16px;
border-top:1px solid var(--line);
padding-top:22px}
.method-steps .step-number{
grid-row:1/3;
font-size:36px;
margin:0}
.method-steps h3{
font-size:18px;
margin:0 0 10px}
.method-steps p{
font-size:13px;
max-width:100%;
margin:0}
.about-preview,.about-full{
grid-template-columns:1fr;
gap:44px}
.portrait-composition{
max-width:260px}
.about-preview h2,.about-full h2{
font-size:37px}
.about-preview p:not(.eyebrow),.about-full p{
font-size:14px}
.about-preview .qualification{
font-size:11px!important}
.theme-preview{
grid-template-columns:1fr;
gap:30px}
.theme-preview h2{
font-size:38px}
.theme-preview p{
font-size:13px}
.faq{
grid-template-columns:1fr;
gap:15px}
.faq h2{
max-width:350px}
.faq summary{
font-size:13px}
.faq details{
padding:20px 0}
.faq details p{
font-size:12px}
.closing{
padding:52px 6%}
.closing h2{
font-size:41px}
.closing p{
font-size:13px}
.site-footer{
padding:47px 6% 20px;
grid-template-columns:1fr;
gap:30px}
.site-footer .wordmark strong{
font-size:52px}
.site-footer p{
max-width:300px;
font-size:11px}
.footer-links{
margin:0;
justify-content:start;
font-size:11px;
gap:12px 20px}
.footer-links a{
padding:0}
.footer-bottom{
flex-direction:column;
gap:7px;
font-size:9px}
.page-heading{
padding:43px 6% 40px}
.page-heading h1{
font-size:48px}
.page-heading>p:not(.eyebrow){
font-size:14px}
.private-detail{
grid-template-columns:1fr;
gap:40px}
.private-detail .lead{
font-size:16px}
.private-process{
padding:10px 22px}
.private-process>div{
padding:20px 0}
.private-process p{
font-size:13px}
.group-intro{
display:block;
padding-bottom:0}
.group-intro>p{
font-size:15px}
.group-facts{
margin-top:25px;
font-size:11px}
.sessions .section-heading{
display:flex;
align-items:center;
gap:20px}
.sessions .section-heading h2{
font-size:33px}
.sessions .section-heading>p{
font-size:9px;
margin:0;
max-width:110px;
overflow-wrap:anywhere}
.level-filters{
gap:7px}
.filter{
padding:8px 13px;
font-size:10px;
min-height:39px}
.example-note{
font-size:10px}
.session-card{
display:grid;
grid-template-columns:58px 1fr;
gap:15px;
padding:24px 0;
align-items:start}
.session-date{
width:58px;
height:75px}
.session-date strong{
font-size:31px}
.session-date span{
font-size:9px}
.session-body h3{
font-size:26px;
margin-bottom:11px}
.session-body>p{
font-size:11px}
.session-tags{
gap:8px;
margin-bottom:9px}
.example-label{
font-size:8px}
.session-action{
grid-column:2;
flex-direction:row;
align-items:center;
justify-content:space-between;
gap:12px;
margin-top:3px}
.session-action strong{
font-size:29px}
.session-action .button{
font-size:10px;
padding:10px 14px;
min-height:41px;
gap:10px;
max-width:none}
.booking-choice{
grid-template-columns:1fr;
gap:14px;
padding-bottom:0;
padding-top:25px}
.booking-choice>a{
padding:22px}
.booking-choice strong{
font-size:26px}
.contact-layout{
grid-template-columns:1fr;
gap:25px;
padding-top:35px}
.contact-note{
display:none}
.contact-person{
margin-bottom:20px}
.contact-person h2{
font-size:30px}
.contact-layout aside>p{
font-size:13px;
margin:0}
.form-card{
padding:24px 20px;
border-radius:18px}
.form-grid{
grid-template-columns:1fr;
gap:0}
.form-card label{
font-size:11px}
.form-card .check-label{
font-size:10px}
.community-layout{
grid-template-columns:1fr;
gap:45px}
.interest-form h2{
font-size:32px}
.resource-item{
grid-template-columns:37px 1fr;
gap:17px;
padding:30px 0}
.resource-item h2{
font-size:29px}
.resource-item p{
font-size:13px}
.resource-number{
font-size:30px}
.bookings-layout{
padding-top:28px}
.booking-card{
padding:23px 20px}
.booking-card h2{
font-size:32px}
.booking-card dl{
grid-template-columns:1fr;
gap:15px}
.booking-card>p{
font-size:12px}
.booking-card>.pill{
font-size:10px}
.legal-copy{
padding-top:15px}
.legal-copy p{
font-size:14px}
dialog{
padding:25px 22px;
border-radius:20px;
max-height:calc(100dvh - 25px)}
.modal-head h2{
font-size:31px}
.modal-head>p{
font-size:12px}
.modal-head .pill{
font-size:9px;
margin-top:15px}
.payment-options{
gap:9px}
.payment-options label{
padding:10px 12px;
font-size:11px}
.dialog-close{
right:12px;
top:12px;
width:35px;
height:35px;
font-size:26px}
.admin-shell{
display:block}
.admin-sidebar{
position:relative;
height:auto;
padding:20px;
gap:20px;
display:block}
.admin-sidebar .wordmark{
margin:0 0 23px}
.admin-sidebar .wordmark strong{
font-size:40px}
.admin-nav{
flex-direction:row;
overflow:auto;
gap:5px;
padding-bottom:6px}
.admin-nav button{
white-space:nowrap;
font-size:11px;
padding:10px 12px}
.admin-nav button span{
font-size:14px;
min-width:0}
.admin-sidebar-bottom{
display:none}
.admin-content{
padding:25px 18px}
.admin-topbar{
margin-bottom:25px;
align-items:start;
gap:12px}
.admin-topbar h1{
font-size:34px}
.admin-topbar p{
font-size:11px}
.admin-actions{
justify-content:end;
gap:8px}
.admin-actions .button{
font-size:10px;
padding:9px 12px;
min-height:36px}
.local-pill{
font-size:8px}
.metrics{
gap:10px;
margin-bottom:20px}
.metric{
padding:17px;
border-radius:13px}
.metric span{
font-size:10px}
.metric strong{
font-size:32px;
margin-top:8px}
.metric small{
font-size:9px}
.admin-panel{
padding:20px 17px;
border-radius:13px}
.admin-panel h2{
font-size:25px}
.admin-split{
gap:0}
.admin-list li{
gap:15px}
.admin-toolbar{
gap:15px}
.admin-search{
max-width:100%}
.admin-table th,.admin-table td{
padding:12px 10px}
.admin-table td{
font-size:11px}
.admin-info{
padding:15px;
font-size:11px}
.login-layout{
margin:6vh auto;
padding:20px}
.login-layout h1{
font-size:36px}
.toast{
right:18px;
bottom:18px;
font-size:11px}
.outbox-item{
padding:15px}
.outbox-item summary{
font-size:12px}
.admin-dialog h2{
font-size:28px}
.admin-dialog .form-grid{
grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
html{
scroll-behavior:auto}
*,*:before,*:after{
transition:none!important;
animation:none!important}
}


/* Version 2: concise pages, upcoming classes and photographed culture section. */
.icon{
display:inline-block;
vertical-align:middle;
flex-shrink:0;
width:20px;
height:20px}

.quiet-link{
display:inline-flex;
align-items:center;
gap:8px}

.quiet-link .icon{
width:17px;
height:17px}

.menu-toggle .icon{
width:20px;
height:20px}

.hero{
min-height:565px}

.hero-copy{
padding-top:68px;
padding-bottom:60px;
width:58%}

.hero h1{
font-size:clamp(48px,5.1vw,76px);
max-width:680px}

.hero-copy>p:not(.eyebrow){
font-size:16px;
max-width:370px}

.hero-meta{
font-size:12px;
letter-spacing:0;
max-width:420px;
line-height:1.7;
margin-top:24px}

.home-upcoming{
padding-top:60px;
padding-bottom:62px;
border-bottom:1px solid var(--line)}

.home-upcoming .section-heading{
align-items:center;
margin-bottom:30px;
gap:25px}

.home-upcoming .section-heading h2{
font-size:clamp(32px,3.4vw,46px);
max-width:680px}

.home-upcoming .timezone{
font-size:11px;
margin:12px 0 0;
color:var(--muted)}

.home-upcoming .text-button{
flex-shrink:0;
font-size:12px;
gap:12px}

.upcoming-grid{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:18px}

.upcoming-card{
min-width:0;
background:var(--paper);
border:1px solid var(--line);
border-radius:16px;
padding:23px;
display:flex;
flex-direction:column}

.upcoming-card-top{
display:flex;
align-items:center;
justify-content:space-between;
gap:12px;
margin-bottom:23px}

.upcoming-card-top .pill{
font-size:11px;
padding:5px 11px}

.availability{
font-size:11px;
line-height:1.4;
color:var(--muted);
text-align:right}

.upcoming-card h3{
font-family:var(--serif);
font-size:28px;
line-height:1.2;
color:var(--brick);
margin-bottom:18px;
overflow-wrap:anywhere}

.upcoming-date{
display:flex;
align-items:start;
gap:9px;
font-size:12px;
line-height:1.7;
margin-bottom:7px}

.upcoming-date .icon{
width:16px;
height:16px;
margin-top:3px}

.upcoming-card>.small-note{
margin-bottom:0;
font-size:11px}

.upcoming-card .example-label{
margin:9px 0 0;
font-size:10px}

.upcoming-card-bottom{
border-top:1px solid var(--line);
margin-top:auto;
padding-top:20px;
display:flex;
align-items:center;
justify-content:space-between;
gap:12px}

.upcoming-card-bottom>strong{
font:32px var(--serif);
color:var(--brick);
white-space:nowrap}

.upcoming-card .small-note+.upcoming-card-bottom,.upcoming-card .example-label+.upcoming-card-bottom{
margin-top:23px}

.upcoming-card-bottom .button{
font-size:11px;
gap:10px;
padding:10px 13px;
min-height:43px}

.upcoming-card-bottom .button .icon{
width:17px;
height:17px;
min-width:17px}

.home-upcoming .example-note{
margin-bottom:0;
margin-top:20px;
font-size:11px}

.offers{
padding-top:62px;
padding-bottom:62px}

.offer-top{
height:auto;
min-height:28px;
margin-bottom:24px}

.offer h3{
font-size:35px;
max-width:none}

.offer>p{
min-height:0;
font-size:15px;
max-width:440px}

.offer .price{
margin:24px 0}

.offer .price>span{
font-size:12px}

.about-preview,.about-full{
padding-top:72px;
padding-bottom:72px}

.portrait-composition{
transform:none;
border-radius:20px;
background:var(--blush);
padding:18px;
max-width:306px}

.portrait{
border-radius:10px;
aspect-ratio:1/1;
object-fit:cover}

.small-portrait{
width:85px;
height:85px;
border-radius:50%}

.about-preview h2{
font-size:clamp(34px,3.7vw,49px)}

.about-preview p:not(.eyebrow){
font-size:15px;
max-width:510px}

.theme-preview{
background:#f7e7eb;
grid-template-columns:1fr 1fr;
padding-top:62px;
padding-bottom:62px;
gap:7%}

.theme-preview h2{
font-size:clamp(34px,3.5vw,48px);
max-width:510px}

.theme-preview p{
font-size:15px;
max-width:440px}

.theme-photo{
margin:0;
min-width:0;
overflow:hidden;
border-radius:16px;
line-height:0}

.theme-photo img{
width:100%;
height:auto;
aspect-ratio:4/3;
object-fit:cover;
object-position:center}

.theme-preview .eyebrow{
margin-bottom:20px}

.themes-detail{
display:grid;
grid-template-columns:1fr 1fr;
gap:7%;
align-items:center;
padding-top:56px}

.community-detail{
min-width:0}

.community-study{
width:100%;
aspect-ratio:4/3;
object-fit:cover;
object-position:85% center;
border-radius:16px}

.community-detail ul{
padding:24px 0 0 20px;
margin:0;
font-size:14px;
color:var(--muted);
line-height:2}

.resource-item{
grid-template-columns:70px minmax(0,1fr);
max-width:960px}

.faq summary>.icon{
width:18px;
height:18px;
min-width:18px;
margin-top:3px;
transition:transform .2s;
color:var(--brick)}

.faq details[open] summary>.icon{
transform:rotate(45deg)}

.faq summary{
font-size:15px}

.faq details p{
font-size:14px}

.closing{
display:flex;
align-items:center;
justify-content:space-between;
gap:35px;
text-align:left;
padding-top:48px;
padding-bottom:48px}

.closing h2{
font-size:36px;
max-width:650px;
margin:0 0 14px}

.closing p{
margin:0;
max-width:550px;
font-size:14px}

.closing>.button{
flex-shrink:0}

.form-success>span .icon{
width:25px;
height:25px}

.dialog-close{
display:grid;
place-items:center}

.dialog-close .icon{
width:20px;
height:20px}

.contact-note>.icon{
width:26px;
height:26px;
min-width:26px;
color:var(--brick)}

.admin-sidebar-bottom>a,.admin-empty>a{
display:inline-flex;
align-items:center;
gap:8px}

.admin-sidebar-bottom>a>.icon{
width:14px;
height:14px}

.admin-nav .icon{
width:19px;
height:19px}

.admin-table .button .icon{
width:14px;
height:14px;
min-width:14px}

.admin-list .button .icon{
width:16px;
height:16px;
min-width:16px}

@media(min-width:651px) and (max-width:1100px){

 .hero-copy{
width:65%;
padding-top:54px;
padding-bottom:48px}

 .hero h1{
font-size:58px}

 .hero{
min-height:535px}

 .upcoming-grid{
gap:13px}

 .upcoming-card{
padding:18px}

 .upcoming-card h3{
font-size:25px}

 .upcoming-card-top{
align-items:start;
gap:8px}

 .availability{
font-size:10px}

 .upcoming-card-bottom{
align-items:start;
flex-direction:column;
gap:13px}

 .upcoming-card-bottom .button{
width:100%}

 .home-upcoming .section-heading{
align-items:start}

 .theme-preview{
gap:6%}

}

@media(max-width:650px){

 .hero{
min-height:0}

 .hero-copy{
width:100%;
padding:39px 6% 31px}

 .hero h1{
font-size:clamp(44px,10.6vw,64px);
max-width:100%;
line-height:1.05;
margin-bottom:22px}

 .hero-copy>p:not(.eyebrow){
max-width:100%;
font-size:15px;
line-height:1.75}

 .hero .eyebrow{
font-size:10px;
letter-spacing:.09em}

 .hero-meta{
font-size:12px;
max-width:100%;
margin-top:21px}

 .hero-actions{
gap:16px;
align-items:center;
flex-wrap:wrap}

 .hero-actions .button{
font-size:12px;
min-height:47px;
padding:13px 17px}

 .hero-actions .quiet-link{
font-size:12px}

 .hero-studio{
height:230px;
object-position:80% 60%;
transform:none}

 .home-upcoming{
padding-top:39px;
padding-bottom:42px}

 .home-upcoming .section-heading{
display:block;
margin-bottom:24px}

 .home-upcoming .section-heading h2{
font-size:34px;
line-height:1.12}

 .home-upcoming .text-button{
margin-top:16px;
font-size:12px}

 .home-upcoming .timezone{
font-size:11px;
margin-top:10px}

 .upcoming-grid{
grid-template-columns:1fr;
gap:14px}

 .upcoming-card{
padding:22px;
border-radius:14px}

 .upcoming-card-top{
margin-bottom:18px;
gap:12px;
align-items:center}

 .upcoming-card h3{
font-size:28px;
margin-bottom:15px;
max-width:100%}

 .upcoming-card-top .pill{
font-size:12px}

 .availability{
font-size:12px}

 .upcoming-date{
font-size:13px}

 .upcoming-date .icon{
width:17px;
height:17px}

 .upcoming-card>.small-note{
font-size:12px}

 .upcoming-card-bottom{
flex-direction:row;
align-items:center;
margin-top:20px;
gap:15px}

 .upcoming-card-bottom .button{
font-size:12px;
padding:11px 14px;
min-height:45px;
max-width:100%}

 .upcoming-card-bottom>strong{
font-size:33px}

 .home-upcoming .example-note{
font-size:11px;
line-height:1.7}

 .offers{
padding-top:44px;
padding-bottom:44px}

 .offer-top{
height:auto;
min-height:0;
margin-bottom:22px}

 .offer h3{
font-size:33px}

 .offer>p{
font-size:14px}

 .offer .price{
font-size:48px}

 .offer .price>span{
font-size:12px}

 .about-preview,.about-full{
padding-top:49px;
padding-bottom:49px;
gap:30px}

 .portrait-composition{
max-width:255px;
padding:15px;
border-radius:17px}

 .small-portrait{
width:74px;
height:74px}

 .about-preview h2{
font-size:35px}

 .about-preview p:not(.eyebrow){
font-size:14px}

 .theme-preview{
grid-template-columns:1fr;
gap:29px;
padding-top:42px;
padding-bottom:42px}

 .theme-preview h2{
font-size:36px;
max-width:100%}

 .theme-preview p{
font-size:14px;
max-width:100%}

 .theme-photo{
border-radius:12px}

 .theme-photo img{
aspect-ratio:4/3;
object-position:center}

 .theme-preview .eyebrow{
font-size:10px;
margin-bottom:16px}

 .themes-detail{
grid-template-columns:1fr;
gap:28px;
padding-top:30px}

 .community-layout{
gap:30px}

 .community-detail ul{
font-size:13px;
padding-top:19px}

 .resource-item{
grid-template-columns:36px minmax(0,1fr);
gap:16px}

 .faq summary{
font-size:14px}

 .faq details p{
font-size:13px}

 .closing{
display:block;
text-align:left;
padding-top:36px;
padding-bottom:36px}

 .closing h2{
font-size:33px}

 .closing p{
font-size:13px;
margin-bottom:23px}

 .footer-bottom{
padding-top:16px}

 .site-footer p{
font-size:12px}

 .admin-nav .icon{
width:17px;
height:17px}

}


/* V3: wordmark refinement, longer source copy and explicit French time labels. */
.wordmark>span{
 font-family:"Gill Sans","Gill Sans MT","Trebuchet MS",sans-serif;
 font-size:10.5px;
 font-weight:500;
 font-style:normal;
 letter-spacing:.18em;
 text-transform:uppercase;
 line-height:1.2;
 margin-bottom:8px;
 padding-left:5px;
 white-space:nowrap;
}
.wordmark{max-width:100%;}
.site-header{align-items:center;}
.site-header nav,.nav-links,.nav-actions{min-width:0;}
.hero-copy{min-width:0;}
.hero-copy>p:not(.eyebrow){max-width:390px;}
.page-heading h1,.page-heading>p,.offer h3,.booking-card h2,.upcoming-card h3{overflow-wrap:break-word;}
.section-heading>div,.private-detail>div,.group-intro>p,.about-preview>div,.about-full>div,.themes-detail>*,.community-layout>*{min-width:0;}
.session-body,.upcoming-date,.upcoming-date time{min-width:0;}
.upcoming-date time{line-height:1.7;}
.session-body time,.booking-card time,.modal-head time{line-height:1.75;overflow-wrap:break-word;}
.home-upcoming .section-heading{flex-wrap:wrap;}
.home-upcoming .timezone{max-width:none;font-size:12px;line-height:1.7;}
.sessions .section-heading{flex-wrap:wrap;gap:15px;align-items:start;}
.sessions .section-heading>.timezone{flex-basis:100%;max-width:none;font-size:12px;line-height:1.7;margin:0;}
.form-grid>*{min-width:0;}
.qualification{line-height:1.7;}
.offer>p{min-height:0;}
.private-process p{overflow-wrap:break-word;}
.admin-table-wrap{max-width:100%;}
.admin-table time{white-space:normal;}
@media(max-width:900px){
 .nav-links{gap:10px;}
 .page-heading h1{font-size:clamp(40px,6.5vw,64px);}
 .hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.75;}
 .private-process{padding:10px 20px;}
 .private-process>div{gap:15px;}
 .group-facts{white-space:normal;min-width:170px;}
}
@media(max-width:650px){
 .wordmark>span{font-size:9.5px;letter-spacing:.16em;margin-bottom:7px;padding-left:4px;}
 .page-heading{padding-top:35px;padding-bottom:34px;}
 .page-heading h1{font-size:clamp(36px,9.3vw,44px);line-height:1.1;margin-bottom:18px;}
 .page-heading>p:not(.eyebrow){font-size:15px;line-height:1.75;}
 .hero-copy>p:not(.eyebrow){max-width:100%;font-size:15px;}
 .form-grid{grid-template-columns:minmax(0,1fr);}
 input,textarea,select{font-size:16px;}
 .form-card label{font-size:12px;line-height:1.6;}
 .form-card .check-label{font-size:11px;}
 .upcoming-card{padding:20px;}
 .upcoming-date{font-size:13px;align-items:start;}
 .upcoming-date .icon{margin-top:4px;}
 .upcoming-card-bottom{flex-wrap:wrap;row-gap:12px;}
 .upcoming-card-bottom .button{min-height:45px;}
 .home-upcoming .timezone,.sessions .section-heading>.timezone{font-size:12px;line-height:1.7;max-width:100%;}
 .session-card{grid-template-columns:54px minmax(0,1fr);gap:14px;}
 .session-date{width:54px;}
 .session-body h3{font-size:25px;}
 .session-body>p,.session-body .small-note{font-size:12px;line-height:1.75;}
 .session-action{flex-wrap:wrap;row-gap:12px;}
 .session-action .button{font-size:11px;min-height:44px;}
 .modal-head>p,.booking-card>p{font-size:13px;line-height:1.8;}
 .booking-card dl{grid-template-columns:minmax(0,1fr);}
 .booking-card dd{font-size:13px;line-height:1.7;}
 .private-process>div{align-items:start;}
 .private-process>div>span{font-size:29px;}
 .private-process p{font-size:14px;line-height:1.65;}
 .group-facts{min-width:0;gap:9px;font-size:12px;}
 .footer-links{gap:14px 22px;}
 .footer-links a{line-height:1.7;}
 .admin-form .form-grid{grid-template-columns:minmax(0,1fr);}
}
@media(max-width:360px){
 .section,.page-heading{padding-left:5%;padding-right:5%;}
 .hero-actions{align-items:start;flex-direction:column;gap:15px;}
 .hero h1{font-size:40px;}
 .upcoming-card{padding:18px;}
 .upcoming-card-bottom .button{font-size:11px;gap:8px;padding:11px 12px;}
 .offer{padding:24px 21px;}
 .offer .price>span{display:block;margin:5px 0 0;font-size:12px;}
}

/* Course content: short level guide, real reviews and a sample activity. */
.portrait{height:auto;}
.lesson-flow,.level-guide,.student-reviews{border-top:1px solid var(--line);}
.lesson-flow .section-heading,.level-guide .section-heading,.student-reviews .section-heading{margin-bottom:32px;}
.lesson-flow h2,.level-guide h2,.student-reviews h2{font-size:clamp(34px,3.6vw,48px);}
.lesson-flow-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;}
.lesson-flow-grid li{min-width:0;border-top:1px solid var(--line);padding-top:22px;}
.lesson-step{display:block;font:italic 36px/1 var(--serif);color:var(--brick);margin-bottom:20px;}
.lesson-flow-grid h3{font-size:21px;color:var(--brick);margin-bottom:12px;}
.lesson-flow-grid p{font-size:14px;line-height:1.8;margin-bottom:0;color:var(--muted);}
.level-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.level-guide-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:18px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:25px 22px;min-width:0;}
.level-guide-card:first-child{background:#f5e7ec;}
.level-code{font:italic 36px/1.1 var(--serif);color:var(--brick);}
.level-guide-card>div{display:flex;flex-direction:column;min-width:0;}
.level-guide-card h3{font-family:var(--sans);font-size:17px;line-height:1.4;margin-bottom:11px;letter-spacing:0;}
.level-guide-card p{font-size:13px;line-height:1.75;color:var(--muted);margin-bottom:14px;}
.level-guide-card .quiet-link{font-size:12px;min-height:36px;line-height:1.5;gap:8px;align-self:start;margin-top:auto;}
.level-guide-card .quiet-link .icon{width:17px;min-width:17px;}
.level-guide-note{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-top:24px;}
.level-guide-note p{max-width:740px;font-size:11px;color:var(--muted);margin:0;line-height:1.8;}
.level-guide-note p a{text-decoration:underline;text-underline-offset:3px;}
.level-guide-note>.quiet-link{font-size:13px;white-space:nowrap;}
.group-intro>div:first-child{min-width:0;}
.group-intro>div:first-child>.lead{font-size:18px;line-height:1.8;}
.group-intro>div:first-child>.quiet-link{font-size:13px;}
.activity-example{display:grid;grid-template-columns:1fr 1fr;gap:8%;background:#f4e6e4;align-items:center;}
.activity-copy,.activity-sheet{min-width:0;}
.activity-copy h2{font-size:clamp(36px,4vw,52px);margin-bottom:20px;}
.activity-intro{font-size:17px;line-height:1.75;}
.activity-copy h3{font:600 13px/1.6 var(--sans);margin:28px 0 8px;letter-spacing:0;}
.activity-copy>p:not(.eyebrow):not(.activity-intro):not(.small-note){font-size:14px;line-height:1.8;}
.activity-copy ol{padding-left:20px;font-size:13px;line-height:1.8;margin:18px 0 25px;}
.activity-copy li{padding-left:5px;margin-bottom:9px;}
.activity-copy .small-note{font-size:11px;max-width:380px;}
.activity-sheet{padding:30px;background:var(--paper);border:1px solid #dbc6c3;border-radius:18px;box-shadow:0 12px 30px #442c3009;}
.activity-sheet-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:27px;}
.activity-sheet-top>span:first-child{font-size:10px;text-transform:uppercase;letter-spacing:.12em;}
.activity-sheet-top .pill{font-size:10px;white-space:normal;text-align:center;}
.activity-sheet-title{font:38px/1.1 var(--serif);letter-spacing:-.04em;color:var(--brick);margin-bottom:25px;}
.activity-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.activity-facts>div{min-width:0;}
.activity-facts dt{font-size:11px;color:var(--muted);margin-bottom:7px;}
.activity-facts dd{margin:0;font:22px/1.2 var(--serif);color:var(--brick);}
.activity-question{margin:23px 0;padding-left:16px;border-left:2px solid #cb9ca9;}
.activity-question>span,.activity-challenge>span{font-size:11px;color:var(--muted);}
.activity-question p{font:25px/1.3 var(--serif);margin:6px 0 0;color:var(--brick);}
.model-answer{border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.model-answer summary{display:flex;align-items:center;justify-content:space-between;gap:15px;cursor:pointer;font-size:12px;list-style:none;min-height:58px;}
.model-answer summary::-webkit-details-marker{display:none;}
.model-answer summary .icon{width:17px;min-width:17px;}
.model-answer[open] summary .icon{transform:rotate(45deg);}
.model-answer p{font-size:14px;line-height:1.9;padding:0 0 15px;margin:0;}
.activity-challenge{padding-top:19px;}
.activity-challenge p{font-size:12px;line-height:1.8;margin:6px 0 0;}
.student-reviews .section-heading>div{max-width:340px;}
.student-reviews .section-heading>div>p{font-size:14px;color:var(--muted);margin-bottom:7px;}
.student-reviews .section-heading>div>.small-note{font-size:11px;margin:0;}
.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;}
.review-card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:30px;}
.review-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px;font-size:11px;color:var(--muted);}
.review-score{font:500 13px/1 var(--sans);border:1px solid var(--line);border-radius:30px;padding:8px 12px;white-space:nowrap;color:var(--brick);}
.review-card h3{font:500 12px/1.5 var(--sans);letter-spacing:.01em;margin-bottom:13px;color:var(--muted);}
.review-card blockquote{margin:0 0 28px;}
.review-card blockquote p{font:26px/1.45 var(--serif);color:var(--brick);letter-spacing:-.02em;margin:0;}
.review-person{display:grid;grid-template-columns:35px minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:auto;padding-top:22px;border-top:1px solid var(--line);}
.review-initial{display:flex;align-items:center;justify-content:center;width:35px;height:35px;border-radius:50%;background:#f0e5e5;font-size:12px;}
.review-person strong{display:block;font-size:13px;font-weight:500;}
.review-person time{display:block;font-size:11px;color:var(--muted);margin-top:3px;}
.review-person .quiet-link{font-size:11px;gap:8px;min-height:40px;}
.review-person .quiet-link .icon{width:16px;min-width:16px;}
.beginner-languages{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:center;background:#f0ede0;}
.beginner-languages>*{min-width:0;}
.beginner-languages h2{font-size:clamp(34px,3.5vw,46px);}
.beginner-languages>div>p:not(.eyebrow){font-size:15px;line-height:1.85;}
.beginner-languages .button{font-size:13px;margin-top:7px;}
.language-support ul{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0 0 22px;}
.language-support li{padding:9px 16px;border:1px solid #cfccbf;border-radius:30px;background:#fffdf97d;font-size:13px;}
.language-support>.eyebrow{line-height:1.7;margin-bottom:20px;}
.language-support>.small-note{font-size:12px!important;max-width:360px;margin-bottom:0;}
.personal-portrait{margin:0;max-width:306px;}
.personal-portrait figcaption{text-align:center;font-size:11px;color:var(--muted);margin-top:15px;}
.personal-interests{margin:28px 0;}
.personal-interests h2{font-size:25px;margin-bottom:15px;}
.personal-interests ul{display:flex;flex-wrap:wrap;gap:10px 18px;list-style:none;padding:0;margin:0 0 15px;}
.personal-interests li{font-size:13px;color:var(--brick);border-bottom:1px solid #d9babf;padding-bottom:4px;}
.personal-interests .small-note{font-size:12px;}
.theme-announcement{padding-top:28px;}
.coming-course{display:grid;grid-template-columns:1fr 1fr;border:1px dashed #c7c2bb;background:#f0eeea;border-radius:20px;overflow:hidden;color:#5d5854;}
.coming-course>*{min-width:0;}
.coming-course-image{position:relative;}
.coming-course-image .theme-photo{height:100%;border-radius:0;}
.coming-course-image img{height:100%;min-height:330px;filter:grayscale(1);opacity:.72;}
.coming-course-status{position:absolute;top:24px;left:24px;border-radius:30px;background:#f6f4f0;border:1px solid #c6c2bb;color:#504c48;padding:10px 18px;font-size:11px;}
.coming-course-copy{padding:45px;display:flex;flex-direction:column;justify-content:center;}
.coming-course-copy .eyebrow{color:#68625c;}
.coming-course h2{font-size:clamp(32px,3.3vw,45px);color:#5d5854;}
.coming-course-copy>p:not(.eyebrow){font-size:15px;line-height:1.8;}
.coming-course-note{display:flex;align-items:start;gap:12px;border-top:1px solid #d5d0c8;padding-top:20px;margin-top:10px;}
.coming-course-note .icon{min-width:18px;width:18px;margin-top:3px;}
.coming-course-note p{font-size:12px;line-height:1.8;margin:0;}
@media(max-width:1050px){
 .level-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
 .lesson-flow-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 35px;}
 .activity-example{gap:5%;}
 .activity-sheet{padding:24px;}
 .review-person{grid-template-columns:35px minmax(0,1fr);}
 .review-person .quiet-link{grid-column:2;justify-self:start;}
 .beginner-languages{gap:6%;}
}
@media(max-width:750px){
 .activity-example{grid-template-columns:minmax(0,1fr);gap:32px;}
 .activity-copy .small-note{max-width:none;}
 .activity-sheet{padding:27px;}
 .review-grid{grid-template-columns:minmax(0,1fr);gap:16px;}
 .review-person{grid-template-columns:35px minmax(0,1fr) auto;}
 .review-person .quiet-link{grid-column:auto;}
 .beginner-languages{grid-template-columns:minmax(0,1fr);gap:30px;}
 .level-guide-note{flex-direction:column;align-items:start;gap:12px;}
 .coming-course{grid-template-columns:minmax(0,1fr);}
 .coming-course-image img{min-height:0;aspect-ratio:16/9;}
 .coming-course-copy{padding:30px;}
}
@media(max-width:650px){
 .lesson-flow,.level-guide,.student-reviews,.activity-example,.beginner-languages{padding-top:42px;padding-bottom:42px;}
 .level-guide-grid{grid-template-columns:minmax(0,1fr);gap:11px;}
 .level-guide-card{padding:20px;gap:15px;}
 .level-guide-card h3{font-size:17px;margin-bottom:7px;}
 .level-guide-card p{font-size:13px;margin-bottom:8px;}
 .level-guide-card .quiet-link{font-size:12px;min-height:40px;}
 .lesson-flow .section-heading,.level-guide .section-heading,.student-reviews .section-heading{gap:15px;margin-bottom:27px;}
 .lesson-flow .section-heading>p,.level-guide .section-heading>p{font-size:14px;max-width:none;}
 .lesson-flow-grid{gap:27px 22px;}
 .lesson-flow-grid h3{font-size:20px;}
 .lesson-flow-grid p{font-size:13px;line-height:1.8;}
 .lesson-step{font-size:32px;margin-bottom:15px;}
 .group-intro>div:first-child>.lead{font-size:15px;line-height:1.85;}
 .activity-copy h2{font-size:37px;}
 .activity-intro{font-size:15px;}
 .activity-copy .eyebrow{font-size:10px;}
 .activity-sheet{padding:23px;}
 .activity-sheet-title{font-size:33px;}
 .activity-sheet-top{gap:10px;flex-wrap:wrap;}
 .activity-facts dd{font-size:22px;}
 .model-answer summary{font-size:12px;min-height:58px;}
 .review-card{padding:24px;}
 .review-card blockquote p{font-size:25px;}
 .review-person{grid-template-columns:35px minmax(0,1fr);}
 .review-person .quiet-link{grid-column:2;justify-self:start;min-height:40px;font-size:12px;}
 .review-person time{font-size:12px;}
 .student-reviews .section-heading>div{max-width:none;}
 .beginner-languages>div>p:not(.eyebrow){font-size:14px;}
 .personal-portrait{margin:0 auto;}
 .coming-course-copy{padding:26px;}
 .coming-course h2{font-size:34px;}
 .coming-course-copy>p:not(.eyebrow){font-size:14px;}
 .coming-course-status{top:18px;left:18px;font-size:11px;padding:9px 14px;}
 .theme-announcement{padding-top:20px;}
}
@media(max-width:360px){
 .lesson-flow-grid{grid-template-columns:minmax(0,1fr);gap:23px;}
 .lesson-flow-grid li{display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:15px;padding-top:20px;}
 .lesson-flow-grid .lesson-step{grid-row:span 2;font-size:30px;margin:0;}
 .lesson-flow-grid h3{margin-bottom:8px;}
 .activity-sheet{padding:19px;}
 .activity-facts{gap:8px;}
 .activity-facts dd{font-size:20px;}
 .review-card{padding:20px;}
}

/* Shared page edges, footer navigation and sourced review carousel. */
:root{--content-width:1240px;--site-gutter:max(24px,calc((100vw - var(--content-width))/2));}
.site-header,.page-heading,.section,.site-footer{max-width:none;width:100%;padding-left:var(--site-gutter);padding-right:var(--site-gutter);}
.site-header{gap:35px;}
.hero{max-width:none;}
.hero-copy{padding-left:var(--site-gutter);max-width:none;}
.breadcrumbs{padding:18px var(--site-gutter);font-size:11px;line-height:1.7;color:var(--muted);}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;list-style:none;padding:0;margin:0;gap:4px 0;}
.breadcrumbs li{display:flex;align-items:baseline;min-width:0;}
.breadcrumbs li+li:before{content:'/';padding:0 12px;color:#a78d91;}
.breadcrumbs a{padding:5px 0;text-decoration:underline;text-underline-offset:4px;}
.breadcrumbs [aria-current]{overflow-wrap:anywhere;}
.legal-copy>p,.legal-copy>h2{max-width:760px;}
.bookings-layout>#booking-results{max-width:800px;margin-inline:auto;}
.site-footer{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:45px 65px;padding-top:55px;}
.footer-brand{min-width:0;}
.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:none;margin:0;justify-content:stretch;align-content:start;}
.footer-group{min-width:0;}
.footer-group h2{font:600 12px/1.5 var(--sans);letter-spacing:.02em;color:var(--brick);margin:0 0 15px;}
.footer-group ul{list-style:none;margin:0;padding:0;}
.footer-group li{margin:0;}
.footer-group a{font-size:12px;line-height:1.7;display:inline-block;min-height:34px;padding:4px 0;overflow-wrap:break-word;}
.footer-bottom{padding-top:22px;}
.reviews-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:27px;}
.reviews-heading>div:first-child{min-width:0;}
.reviews-heading h2{font-size:clamp(34px,3.5vw,48px);margin-bottom:18px;}
.review-platform{display:inline-flex;align-items:center;gap:10px;font-size:12px;line-height:1.6;border-bottom:1px solid #c6aaa9;padding-bottom:3px;}
.reviews-controls{display:flex;gap:9px;flex-shrink:0;}
.reviews-controls button{display:grid;place-items:center;border:1px solid var(--brick);border-radius:50%;width:43px;height:43px;padding:0;background:transparent;color:var(--brick);}
.reviews-controls button:hover:not(:disabled){background:var(--brick);color:var(--cream);}
.reviews-controls button:disabled{opacity:.35;cursor:default;}
.reviews-controls [data-review-prev] .icon{transform:rotate(180deg);}
.review-rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/3);gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#c8a6aa transparent;margin:0;padding:4px 0 15px;list-style:none;}
.review-rail>.review-card{scroll-snap-align:start;display:flex;flex-direction:column;padding:28px;min-height:245px;border-radius:17px;min-width:0;}
.review-author{display:flex;align-items:center;gap:13px;}
.review-avatar{width:50px;height:50px;object-fit:cover;border-radius:50%;flex-shrink:0;}
.review-avatar-initial{display:grid;place-items:center;font:24px var(--serif);background:#efdddf;color:var(--brick);}
.review-card:nth-child(3n) .review-avatar-initial{background:#e9e7d8;}
.review-author h3{font:23px/1.2 var(--serif);letter-spacing:-.03em;color:var(--brick);margin:0 0 5px;}
.review-author time{font-size:11px;color:var(--muted);display:block;line-height:1.5;}
.review-text{font-size:17px;line-height:1.7;margin:25px 0 26px;color:var(--ink);}
.review-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:17px;border-top:1px solid var(--line);min-height:49px;}
.review-card-bottom>span:first-child{font-size:11px;color:var(--muted);}
.review-card-bottom .review-score{font-size:11px;padding:7px 10px;}
.reviews-source{font-size:12px;margin-top:18px;min-height:40px;}
.level-guide-card p{margin-bottom:0;}
.visio-preview{display:grid;grid-template-columns:1.35fr 1fr;gap:7%;align-items:center;background:#f3e8e6;}
.visio-preview>*{min-width:0;}
.visio-preview figure,.community-visio{margin:0;}
.visio-preview img{width:100%;height:auto;border-radius:18px;}
.visio-preview figcaption,.community-visio figcaption{font-size:10px;line-height:1.7;color:var(--muted);margin-top:12px;}
.visio-preview h2{font-size:clamp(35px,3.7vw,48px);}
.visio-preview p{font-size:15px;line-height:1.85;}
.visio-preview ul{list-style:none;padding:0;margin:25px 0 0;}
.visio-preview li{display:flex;gap:12px;align-items:center;font-size:13px;margin:12px 0;}
.visio-preview li .icon{width:17px;min-width:17px;}
.community-visio .community-study{aspect-ratio:16/9;object-position:center;}
@media(max-width:1050px){
 .site-footer{grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:35px;}
 .footer-links{gap:20px;}
 .review-rail{grid-auto-columns:calc((100% - 20px)/2);}
 .visio-preview{gap:5%;}
}
@media(max-width:900px){
 #navigation{left:var(--site-gutter);right:var(--site-gutter);}
 .site-header{gap:20px;}
 .site-footer{grid-template-columns:minmax(0,1fr);gap:30px;}
 .footer-links{grid-template-columns:repeat(3,minmax(0,1fr));max-width:700px;}
 .visio-preview{grid-template-columns:minmax(0,1fr);gap:30px;}
}
@media(max-width:650px){
 .hero-copy{padding-left:var(--site-gutter);padding-right:var(--site-gutter);}
 .site-header{padding-top:19px;padding-bottom:19px;}
 .breadcrumbs{padding-top:12px;padding-bottom:12px;font-size:11px;}
 .breadcrumbs li+li:before{padding-inline:9px;}
 .site-footer{padding-top:40px;padding-bottom:22px;}
 .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 24px;}
 .footer-group:last-child{grid-column:1/-1;}
 .footer-group:last-child ul{display:flex;flex-wrap:wrap;gap:0 24px;}
 .footer-group h2{font-size:13px;margin-bottom:9px;}
 .footer-group a{font-size:13px;min-height:40px;}
 .reviews-heading{display:block;margin-bottom:20px;}
 .reviews-heading h2{font-size:35px;}
 .reviews-controls{justify-content:flex-end;margin-top:14px;}
 .review-rail{grid-auto-columns:calc(100% - 25px);gap:20px;}
 .review-rail>.review-card{padding:23px;min-height:255px;}
 .review-text{font-size:17px;}
 .review-author time{font-size:12px;}
 .visio-preview{padding-top:42px;padding-bottom:42px;}
 .visio-preview h2{font-size:36px;}
 .visio-preview p{font-size:14px;}
 .visio-preview img{border-radius:13px;}
}
@media(max-width:360px){
 :root{--site-gutter:20px;}
 .review-rail>.review-card{padding:20px;}
}
