/* Untitled: component rules consume the supplied named tokens. */
* { box-sizing:border-box; margin:var(--space-zero); padding:var(--space-zero); }
html { color-scheme:light; }
body { background:var(--cte-canvas); color:var(--cte-text); font-family:var(--font-ui); font-size:var(--size-m); line-height:var(--line-m); letter-spacing:var(--letter-spacing-m); font-weight:var(--weight-ui-regular); -webkit-font-smoothing:antialiased; text-wrap:pretty; }
a { color:inherit; text-decoration:none; }
button { font:inherit; cursor:pointer; }
svg { display:block; }
.sheet { width:100%; max-width:1120px; margin-inline:auto; }
h1,h2,h3 { font-family:var(--font-brand); font-weight:var(--weight-brand-regular); }
h1 { font-size:var(--size-xxl); line-height:var(--line-xxl); letter-spacing:var(--letter-spacing-xxl); }
h1 em { font-style:normal; }
h2,h3 { font-size:var(--size-l); line-height:var(--line-l); letter-spacing:var(--letter-spacing-l); }
.hero-copy { padding:var(--space-xxl) var(--space-xxl) var(--space-l); }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:var(--space-m); margin-bottom:var(--space-xxl); }
.brand-mark { width:80px; height:auto; color:var(--neutral-10); }
.button { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-xs); padding:var(--space-xs) var(--space-m); min-height:calc(var(--space-xl) + var(--space-s)); border:var(--border-none); border-radius:var(--radius-s); font-family:var(--font-ui); font-weight:var(--weight-ui-medium); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--tracking-l); white-space:nowrap; transition:box-shadow var(--motion-duration) var(--motion-easing),background-color var(--motion-duration) var(--motion-easing); }
.button-primary { color:var(--neutral-1); background:var(--color-1); box-shadow:var(--shadow-none); }
.button-primary:hover { box-shadow:var(--shadow-s); }
.button-primary:active { transform:translateY(var(--motion-press-distance)); }
.web-cta svg,.icon,.expect-icon { width:var(--line-s); height:var(--line-s); flex:0 0 var(--line-s); stroke-width:var(--icon-stroke-width); }
.button:focus-visible { outline:var(--border-l) solid var(--cte-focus); outline-offset:var(--space-xxs); box-shadow:0 0 0 var(--border-l) color-mix(in srgb,var(--color-1-transparent) 24%,transparent); }
a:focus-visible,.reviews-grid:focus-visible,.review-dot:focus-visible { outline:var(--border-l) solid var(--cte-focus); outline-offset:var(--space-xxs); }
.intro { padding:var(--space-zero) var(--space-xxl) var(--space-xxl); }
.intro p { max-width:750px; color:var(--neutral-8); }
.yoga-options { padding:var(--space-zero) var(--space-xxl) var(--space-xxl); }
.products { max-width:680px; margin-inline:auto; }
.products[data-loop]::after { content:""; flex:0 0 var(--space-l); }
.product { position:relative; display:flex; align-items:flex-end; aspect-ratio:3/4; min-height:calc(var(--line-m) * 20); max-height:600px; padding:var(--space-zero); overflow:hidden; color:var(--neutral-1); background:var(--neutral-10); border:var(--border-none); border-radius:var(--radius-m); box-shadow:var(--border-shadow-s),var(--shadow-s); }
.product .media-well { position:absolute; inset:0; aspect-ratio:auto; }
.product::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,var(--color-none) 0%,color-mix(in srgb,var(--neutral-10) 30%,transparent) 35%,color-mix(in srgb,var(--neutral-10) 94%,transparent) 100%); pointer-events:none; }
.product-copy { position:relative; z-index:1; width:100%; padding:var(--space-l); }
.product p { max-width:280px; margin-top:var(--space-s); color:var(--neutral-1); }
.media-track { display:flex; position:relative; gap:var(--space-xs); width:100%; padding:var(--space-xxs); overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--space-xxs); scrollbar-width:none; overscroll-behavior-x:contain; }
.media-track::-webkit-scrollbar { display:none; }
.media-track,.reviews-grid { overflow-anchor:none; }
.media-track:focus-visible { outline:var(--border-l) solid var(--cte-focus); outline-offset:var(--space-xxs); }
.media-slide { flex:0 0 calc(100% - var(--space-l)); min-width:0; scroll-snap-align:start; }
.media-slide:only-child { flex-basis:100%; }
.media-well { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--neutral-3); }
.media-well img,.media-well video { display:block; width:100%; height:100%; object-fit:cover; }
.media-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--neutral-7); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); }
.teacher-gallery,.expect-gallery { margin-top:var(--space-l); }
.gallery-media { overflow:hidden; border-radius:var(--radius-m); }
.teacher-gallery .media-well { aspect-ratio:3/4; }
.expect-gallery { max-width:360px; }
.expect-gallery .media-well { aspect-ratio:9/16; }
.video-play { position:absolute; inset:50% auto auto 50%; transform:translate(-50%,-50%); width:calc(var(--space-l) * 3); height:calc(var(--space-l) * 3); padding:var(--space-zero); border-radius:var(--radius-full); background:color-mix(in srgb,var(--neutral-10) 72%,transparent); color:var(--neutral-1); box-shadow:0 0 0 var(--border-s) var(--neutral-1-transparent),var(--shadow-m); }
.video-play svg { width:var(--line-l); height:var(--line-l); }
.video-play:hover { background:var(--neutral-10); }
.video-play[hidden] { display:none; }
.session-details { padding:var(--space-xxl); display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-xxl); box-shadow:inset 0 var(--border-s) 0 var(--neutral-4),inset 0 calc(-1 * var(--border-s)) 0 var(--neutral-4); }
.session-details h2 { margin-bottom:var(--space-l); }
.expect ul { list-style:none; }
.expect li { display:flex; align-items:center; gap:var(--space-s); color:var(--neutral-8); }
.expect li+li { margin-top:var(--space-m); }
.expect-icon { color:var(--neutral-7); }
.bio p { color:var(--neutral-8); }
strong { font-weight:var(--weight-ui-heavy); }
.credentials { display:flex; align-items:center; justify-content:space-between; gap:var(--space-s); max-width:340px; min-height:56px; margin-top:var(--space-l); color:var(--neutral-8); }
.credential-logo { display:block; min-width:0; height:auto; flex-shrink:1; }
.credential-yoga-alliance { width:124px; }
.credential-yacep { width:52px; flex:0 0 52px; }
.credential-iphm { width:92px; }
.reviews { padding:var(--space-xxl); }
.reviews-grid { position:relative; display:flex; gap:var(--space-xs); width:100%; max-width:680px; margin-inline:auto; padding:var(--space-xxs); overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding-inline:var(--space-xxs); scrollbar-width:none; overscroll-behavior-x:contain; }
.reviews-grid::after { content:""; flex:0 0 var(--space-l); }
.reviews-grid::-webkit-scrollbar { display:none; }
.review { flex:0 0 calc(100% - var(--space-l)); min-width:0; min-height:calc(var(--line-l) * 10); display:flex; flex-direction:column; justify-content:center; padding:var(--space-l); scroll-snap-align:start; background:var(--neutral-2); border-radius:var(--radius-m); box-shadow:var(--border-shadow-s),var(--shadow-s); }
.review blockquote { font-family:var(--font-editorial); font-weight:var(--weight-editorial-regular); font-size:var(--size-l); line-height:var(--line-l); letter-spacing:var(--letter-spacing-l); text-align:center; color:var(--neutral-9); }
.review figcaption { display:flex; align-items:center; justify-content:center; gap:var(--space-s); margin-top:var(--space-l); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); color:var(--neutral-7); }
.review-photo { position:relative; overflow:hidden; width:40px; height:40px; flex:0 0 40px; border-radius:var(--radius-full); background:var(--neutral-3); }
.review-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.review-navigation { display:flex; align-items:center; justify-content:center; gap:var(--space-xs); margin-top:var(--space-m); }
.review-dots { display:flex; }
.review-dot { display:flex; align-items:center; justify-content:center; width:var(--space-l); height:calc(var(--space-xl) + var(--space-s)); border:var(--border-none); background:var(--color-none); }
.review-dot::after { content:""; width:var(--space-xs); height:var(--space-xs); border-radius:var(--radius-full); background:var(--neutral-5); }
.review-dot[aria-pressed="true"]::after { background:var(--neutral-10); }
.review-dot[data-timer] { transition:width var(--motion-duration) var(--motion-easing); }
.review-dot[data-timer]::after { display:none; }
.review-dot[data-timer][aria-pressed="true"] { width:calc(var(--space-xl) + var(--space-m)); }
.carousel-indicator { position:relative; display:block; overflow:hidden; width:var(--space-xs); height:var(--space-xs); border-radius:var(--radius-full); background:var(--neutral-5); transition:width var(--motion-duration) var(--motion-easing); }
.review-dot[aria-pressed="true"] .carousel-indicator { width:var(--space-xl); }
.carousel-indicator-fill { position:absolute; inset:0; border-radius:inherit; background:var(--neutral-10); transform:scaleX(0); transform-origin:left center; }
footer { padding:var(--space-xxl); background:var(--color-1); color:var(--neutral-1); display:grid; grid-template-columns:minmax(0,1fr) 112px; gap:var(--space-xxl); border-radius:var(--radius-m) var(--radius-m) var(--radius-zero) var(--radius-zero); }
footer .offer-summary { margin-top:var(--space-m); max-width:700px; color:var(--neutral-1); }
.contacts { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-xs) var(--space-l); margin-top:var(--space-l); }
.contacts a { display:flex; align-items:center; gap:var(--space-xs); min-height:calc(var(--space-xl) + var(--space-s)); font-size:var(--size-s); line-height:var(--line-s); letter-spacing:var(--letter-spacing-s); }
.contacts svg { stroke-width:var(--icon-stroke-width); width:var(--line-s); height:var(--line-s); flex:0 0 var(--line-s); }
.contacts a:hover span { text-decoration:underline; text-underline-offset:var(--space-xxs); }
.whatsapp-qr { color:var(--neutral-1); }
.qr-art { width:112px; height:112px; }
.whatsapp-qr figcaption { margin-top:var(--space-xs); text-align:center; font-size:var(--size-xs); line-height:var(--line-xs); letter-spacing:var(--letter-spacing-xs); color:var(--neutral-1); }
footer a:focus-visible { outline-color:var(--neutral-1); }
@media (min-width:761px) {
 .products { max-width:none; }
 .products .product { flex-basis:min(420px,calc(100% - var(--space-l))); min-height:0; max-height:none; }
 .session-details > section { min-width:0; }
 .teacher-gallery { max-width:360px; }
}
@media (max-width:760px) {
 .hero-copy { padding:var(--space-l) var(--space-l) var(--space-m); }
 h1 { font-size:var(--size-xl); line-height:var(--line-xl); letter-spacing:var(--letter-spacing-xl); }
 .site-header { margin-bottom:var(--space-xl); }
 .intro { padding:var(--space-zero) var(--space-l) var(--space-xl); }
 .yoga-options { padding:var(--space-zero) var(--space-zero) var(--space-xxl); }
 .products { max-width:none; gap:var(--space-xs); padding-inline:var(--space-l); scroll-padding-inline:var(--space-l); }
 .products .product { flex-basis:calc(100% - var(--space-m)); }
 .product { padding:var(--space-zero); }
 .session-details { grid-template-columns:minmax(0,1fr); padding:var(--space-xl) var(--space-l); gap:var(--space-xl); }
 .reviews { padding:var(--space-xl) var(--space-zero); }
 .reviews-grid { padding-inline:var(--space-l); scroll-padding-inline:var(--space-l); }
 .review { flex-basis:calc(100% - var(--space-m)); }
 footer { padding:var(--space-xl) var(--space-l); gap:var(--space-l); }
 .contacts { flex-direction:column; align-items:flex-start; gap:var(--space-xxs); }
}
@media (max-width:600px) { footer { grid-template-columns:minmax(0,1fr); } .whatsapp-qr { display:none; } }
@media (prefers-reduced-motion:reduce) { .button,.review-dot[data-timer],.carousel-indicator { transition:none; } }
@media print { .mode-toggle,.review-navigation { display:flex; justify-content:center; margin-top:var(--space-m); }
.review-dots { display:flex; }
.review-dot { display:flex; align-items:center; justify-content:center; width:var(--space-l); height:calc(var(--space-xl) + var(--space-s)); border:var(--border-none); background:var(--color-none); }
.review-dot::after { content:""; width:var(--space-xs); height:var(--space-xs); border-radius:var(--radius-full); background:var(--neutral-5); }
.review-dot[aria-pressed="true"]::after { background:var(--neutral-10); } .sheet { max-width:none; } .reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:none; overflow:visible; } .review { break-inside:avoid; } }
