/* riversunnyside.com — written by the generator (studio build) */
@import url("https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;600&family=Instrument+Serif:ital@0;1&display=swap");

:root{
  --stone:#DCE2D3;--water:#1C2A29;--sun:#E8722A;--sun-ink:#B8511A;--shallows:#C9D1BE;--paper:#F6F3EA;--silt:#5E6B66;--silt-lt:#A3AEA7;
  --rule:rgba(28,42,41,.2);
  --serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --m:64px;--g:32px;
  --W:min(1320px, 100vw - 2 * var(--m));
  --bleed:calc((100vw - var(--W)) / 2);
  --s1:8px;--s2:16px;--s3:24px;--s4:40px;--s5:64px;--s6:104px;--s7:168px;
  --hz:62vh;--sun-d:220px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--stone);color:var(--water);font:400 18px/1.6 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
p{margin:0 0 var(--s2)}
h1,h2,h3{margin:0;font-weight:400}
ul,ol{margin:0;padding:0;list-style:none}
a{color:inherit}
address{font-style:normal}
:focus-visible{outline:2px solid var(--sun);outline-offset:3px}
body.menu-open{overflow:hidden}

/* layout */
.wrap{width:var(--W);margin-inline:auto}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--g)}
.section{position:relative;padding-block:var(--s6)}
.band{background:var(--shallows)}
main,.site-footer{position:relative;z-index:1}

/* type */
.display{font-family:var(--serif);font-size:clamp(64px, min(11vw, 21vh), 160px);line-height:.9;letter-spacing:-.02em}
.display span{display:block}
.h2{font-family:var(--serif);font-size:clamp(44px,6vw,72px);line-height:1;letter-spacing:-.015em}
.h3{font-family:var(--serif);font-size:clamp(28px,3vw,36px);line-height:1.1}
.display em,.h2 em,.h3 em{font-style:italic;color:var(--sun-ink)}
.lede{font-size:22px;line-height:1.5;max-width:640px}
.small{font-size:15px;line-height:1.5;color:var(--silt)}
.label{font:600 12px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;margin:0}
.js-fade{opacity:0;transition:opacity .6s var(--ease)}
.js-fade.in{opacity:1}

/* links & buttons */
.link{color:var(--water);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;transition:text-decoration-color .2s,text-decoration-thickness .2s}
.link:hover{text-decoration-color:var(--sun);text-decoration-thickness:2px}
.link--paper{color:var(--paper)}
.arr{display:inline-block;transition:transform .2s var(--ease)}
a:hover .arr,button:hover .arr{transform:translateX(4px)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:18px 32px;font:600 15px/1 var(--sans);text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border:1px solid var(--water);border-radius:0;background:transparent;color:var(--water);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.btn--primary{background:var(--sun);border-color:var(--sun)}
.btn:hover{background:var(--water);border-color:var(--water);color:var(--paper)}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);margin-top:var(--s4)}
.actions--center{justify-content:center;gap:var(--s3) var(--s4)}

/* sun & horizon */
.sky{position:fixed;top:0;left:0;right:0;height:var(--hz);overflow:hidden;pointer-events:none;z-index:0}
.sun{position:absolute;top:0;left:calc(var(--bleed) + var(--W) * .713);width:var(--sun-d);height:var(--sun-d);border-radius:50%;background:var(--sun);transform:translate3d(-50%, calc(var(--hz) - var(--sun-d) / 2), 0);will-change:transform}
.horizon{position:fixed;left:0;right:0;top:var(--hz);height:1px;background:var(--water);pointer-events:none;z-index:0}

/* header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:88px;border-bottom:1px solid transparent;transition:height .25s var(--ease),background-color .25s,border-color .25s}
.site-header.is-condensed{height:64px;background:var(--stone);border-bottom-color:var(--water)}
.header__inner{height:100%;display:flex;align-items:center;gap:var(--s4)}
.wordmark{font:600 16px/1 var(--sans);text-transform:lowercase;text-decoration:none;color:var(--water);padding-block:14px}
.wordmark--paper{color:var(--paper)}
.nav{margin-left:auto}
.nav ul{display:flex;gap:var(--s4)}
.nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;font-size:15px;text-decoration:none;text-underline-offset:6px}
.nav a:hover{text-decoration:underline;text-decoration-color:var(--sun);text-decoration-thickness:2px}
.nav a[aria-current="page"]::before{content:"";position:absolute;left:-16px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:var(--sun)}
.header__cta{padding:14px 24px}
.is-condensed .header__cta{padding-block:10px}
.menu-toggle{display:none;margin-left:auto;min-height:44px;min-width:44px;padding:0 4px;background:none;border:0;font:600 12px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--water);cursor:pointer}

/* mobile menu */
.menu{position:fixed;inset:0;z-index:100;display:none;flex-direction:column;gap:var(--s5);padding:20px 24px 40px;background:var(--water);color:var(--paper);overflow-y:auto}
.menu.is-open{display:flex}
.menu__top{display:flex;align-items:center;justify-content:space-between}
.menu__close{min-height:44px;background:none;border:0;color:var(--paper);font:600 12px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;cursor:pointer}
.menu__nav{display:flex;flex-direction:column;gap:var(--s1)}
.menu__nav a{font-family:var(--serif);font-size:56px;line-height:1.1;color:var(--paper);text-decoration:none}
.menu__nav a:hover,.menu__nav a[aria-current="page"]{font-style:italic;color:var(--sun)}
.menu .btn{align-self:flex-start}
.menu .btn:hover{background:var(--paper);color:var(--water);border-color:var(--paper)}

/* photos */
.photo{width:100%;object-fit:cover;background:var(--shallows)}
.photo--wide{aspect-ratio:21/9}
.photo--tall{aspect-ratio:3/4}
.photo--169{aspect-ratio:16/9}
.bleed-r{width:calc(100% + var(--bleed));max-width:none;margin-right:calc(-1 * var(--bleed))}
.bleed-l{width:calc(100% + var(--bleed));max-width:none;margin-left:calc(-1 * var(--bleed))}

/* hero */
.hero{position:relative;min-height:100vh}
.hero__top{height:var(--hz);display:flex;align-items:flex-end;padding-bottom:var(--s3)}
.hero__bottom{padding-block:var(--s4) var(--s5)}
.hero__label{grid-column:1/6;padding-top:8px}
.hero__lede{grid-column:7/12}

/* opening photo */
.bleed-photo{margin:0;position:relative}
.bleed-photo__cap{padding-top:var(--s2)}

/* practice */
.practice__title{grid-column:1/7;align-self:start;position:sticky;top:120px}
.practice__body{grid-column:7/13}
.pillar{max-width:560px;margin-bottom:var(--s4)}
.pillar .label{margin-bottom:var(--s2)}
.practice__body .photo{margin-top:var(--s5)}

/* classes */
.classes{padding-block:var(--s7) var(--s6)}
.classes__head{align-items:end;margin-bottom:var(--s5)}
.classes__head .h2{grid-column:1/8}
.classes__aside{grid-column:9/13;margin:0;color:var(--water)}
.class-list-wrap{position:relative}
.class-list{border-bottom:1px solid var(--water)}
.class-list li{border-top:1px solid var(--water)}
.class-list a{display:grid;grid-template-columns:96px minmax(0,3fr) minmax(0,5fr) 140px;align-items:baseline;gap:var(--g);padding:var(--s3) 0;text-decoration:none}
.num{font-family:var(--serif);font-style:italic;font-size:48px;line-height:1;transition:color .2s}
.class-list a:hover .num,.class-list a:focus-visible .num{color:var(--sun-ink)}
.class-list a:hover .cname{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:8px;text-decoration-color:var(--sun-ink)}
.cdesc{font-size:18px}
.clevel{justify-self:end;text-align:right}
.classes__more{margin:var(--s4) 0 0}
.thumb{position:absolute;top:0;left:0;width:180px;height:240px;transform:translate3d(calc(100vw - 2 * var(--m) - 180px),0,0);pointer-events:none;opacity:0;z-index:2;transition:opacity .2s;display:none}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.thumb img.on{opacity:1}
@media (hover:hover) and (pointer:fine){.thumb{display:block}.class-list-wrap.has-thumb .thumb{opacity:1}}

/* room */
.room{padding-bottom:calc(var(--s6) + var(--s5))}
.room .grid{align-items:end}
.room__main{grid-column:1/7}
.room .bleed-l{width:calc(100% + var(--bleed))}
.room__side{grid-column:8/13;margin-bottom:calc(-1 * var(--s5))}
.room__side .h2{margin-bottom:var(--s3)}
.room__second{margin-top:var(--s4)}

/* accordion */
.faq__title{grid-column:1/6}
.acc{grid-column:7/13;border-bottom:1px solid var(--water)}
.acc__item{border-top:1px solid var(--water)}
.acc__h{font:inherit}
.acc__btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:var(--s3);min-height:44px;padding:var(--s3) 0;background:none;border:0;color:var(--water);font-family:var(--serif);font-size:28px;line-height:1.2;text-align:left;cursor:pointer}
.acc__btn:hover{color:var(--sun-ink)}
.acc__icon{position:relative;flex:0 0 16px;height:16px}
.acc__icon::before,.acc__icon::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform .2s var(--ease)}
.acc__icon::after{transform:rotate(90deg)}
.acc__btn[aria-expanded="true"] .acc__icon::after{transform:rotate(0)}
.acc__panel{padding:0 0 var(--s3);max-width:560px}
.acc__panel[hidden]{display:none}

/* sunnyside */
.sunnyside{position:relative;color:var(--paper)}
.sunnyside__img{aspect-ratio:21/9}
.sunnyside::after{content:"";position:absolute;inset:0;background:linear-gradient(to top, rgba(28,42,41,.88) 0%, rgba(28,42,41,0) 40%);pointer-events:none}
.sunnyside__text{position:absolute;left:0;right:0;bottom:var(--s5);z-index:1}
.sunnyside__text .h2{color:var(--paper);margin-bottom:var(--s2)}
.sunnyside__text .h2 em{color:var(--sun)}
.sunnyside__text p{max-width:560px;margin:0}

/* closing */
.closing{padding-block:var(--s7);text-align:center}
.closing__title{font-size:clamp(56px,8vw,104px)}

/* footer */
.site-footer{background:var(--water);color:var(--paper);border-top:1px solid var(--sun);padding-top:var(--s5)}
.footer__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--g);padding-bottom:var(--s5);font-size:15px}
.footer__label{margin-bottom:var(--s2);color:var(--silt-lt)}
.footer__nav{display:flex;flex-direction:column;gap:var(--s1)}
.site-footer .link{display:inline-block;padding-block:6px}
.footer__base{margin:0 auto;padding-block:var(--s3);border-top:1px solid rgba(246,243,234,.15);color:var(--silt-lt)}

/* forms (shared) */
.form-card{background:var(--paper);border:1px solid var(--water);padding:var(--s4)}
.field{margin-bottom:var(--s3)}
.field label{display:block;margin-bottom:var(--s1)}
.field input,.field select,.field textarea{width:100%;min-height:56px;padding:0 16px;background:var(--paper);border:1px solid var(--water);border-radius:0;color:var(--water);font:400 18px/1.4 var(--sans);appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--water) 50%),linear-gradient(-45deg,transparent 50%,var(--water) 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:44px}
.field textarea{min-height:160px;padding:16px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--sun);outline-offset:0}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:#8F2D12}
.field__err{display:block;margin-top:6px;font-size:15px;color:#8F2D12}

/* toast */
.toast{position:fixed;left:50%;bottom:24px;z-index:120;padding:14px 22px;background:var(--water);color:var(--paper);font:600 12px/1 var(--sans);text-transform:uppercase;letter-spacing:.14em;opacity:0;transform:translate(-50%,8px);transition:opacity .2s,transform .2s;pointer-events:none}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* responsive */
@media (max-width:1100px){
  .class-list a{grid-template-columns:72px minmax(0,1fr) 120px;row-gap:var(--s1)}
  .cdesc{grid-column:2/3;grid-row:2}
  .clevel{grid-row:1/3;align-self:center}
}
@media (max-width:900px){
  :root{--m:24px;--g:20px;--sun-d:120px}
  .nav,.header__cta{display:none}
  .menu-toggle{display:inline-flex;align-items:center}
  .site-header{height:72px}
  .site-header.is-condensed{height:60px}
  .section{padding-block:var(--s5)}
  .hero__label,.hero__lede,.practice__title,.practice__body,.classes__head .h2,.classes__aside,.room__main,.room__side,.faq__title,.acc{grid-column:1/-1}
  .hero__label{margin-bottom:var(--s3)}
  .practice__title,.faq__title{margin-bottom:var(--s4)}
  .classes{padding-block:var(--s6) var(--s5)}
  .classes__aside{margin-top:var(--s2)}
  .room{padding-bottom:var(--s5)}
  .room__side{margin:var(--s5) 0 0}
  .room__main{width:calc(100% + var(--bleed))}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .lede{font-size:20px}
  .actions .btn{flex:1 1 auto}
  .class-list a{grid-template-columns:48px minmax(0,1fr);column-gap:var(--s2)}
  .num{font-size:36px}
  .clevel{grid-column:2;grid-row:3;justify-self:start;text-align:left;margin-top:var(--s1)}
  .sunnyside__img{aspect-ratio:3/4}
  .sunnyside::after{background:linear-gradient(to top, rgba(28,42,41,.9) 0%, rgba(28,42,41,0) 58%)}
  .sunnyside__text{bottom:var(--s4)}
  .acc__btn{font-size:24px}
  .footer__grid{grid-template-columns:1fr}
  .form-card{padding:var(--s3)}
  .menu__nav a{font-size:48px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
  .sky,.horizon{position:absolute}
  .js-fade{opacity:1}
}
/* revision */
.room .grid{align-items:stretch}
.room__side{display:flex;flex-direction:column;padding-top:var(--s5)}
.room__kicker{padding-top:var(--s2);border-top:1px solid var(--water);color:var(--water)}
.room__spacer{flex:1 1 auto;min-height:var(--s5)}
@media (max-width:900px){
  .practice__title{position:static}
  .room__side{padding-top:0}
  .room__spacer{min-height:var(--s4);flex:0 0 auto}
}
/* revision (/visit) */
.v-getting__addr{margin-top:var(--s5);padding-top:var(--s3);border-top:1px solid var(--water)}
.v-getting__addr .label{margin-bottom:var(--s2)}
.v-getting__addr .h3{margin-bottom:var(--s3)}
.v-getting__addr .h3 em{font-style:italic;color:var(--sun-ink)}
.v-closing .bleed-photo__cap{padding-block:var(--s2) var(--s3)}

/* review fix */
@media (min-width:900px){.practice .practice__title{position:sticky;top:120px;align-self:start}.practice .photo--tall.bleed-r{max-height:640px;object-fit:cover}}
/* review fix */
.room .room__spacer{display:none}.room .room__side{display:flex;flex-direction:column;justify-content:center;gap:28px}
/* review fix */
.site-header .wordmark{font-family:var(--font-display,serif);font-size:1.35rem;letter-spacing:-0.01em;font-weight:500}
/* review fix */
.hero h1.display{position:relative;z-index:2}
/* review fix */
.classes .h2 + p,.classes .wrap > div:first-child p{font-size:1.05rem;max-width:32ch}
/* review fix */
@media (max-width:700px){.chead [class*="sun"],.chead [class*="orb"],.chead [class*="disc"]{display:none!important}.chead [class*="filter"]{position:relative;z-index:2;background:inherit;-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);mask-image:linear-gradient(90deg,#000 85%,transparent)}}
/* review fix */
@media (min-width:900px){.chead article,.chead [class*="class-row"],.chead [class*="crow"]{margin-block:0!important;padding-block:clamp(32px,4vw,56px)!important;align-items:center}.chead article+article,.chead [class*="crow"]+[class*="crow"]{border-top:1px solid rgba(30,40,38,.15)}}