:root{
  --spruce:#0A4C3F;
  --ivory:#FCFBF8;
  --ink:#041D1F;
  --teal:#166A7B;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}
a{color:inherit}
.header{background:var(--spruce);color:var(--ivory);display:grid;grid-template-columns:minmax(250px,1fr) minmax(180px,.7fr) minmax(300px,1fr);align-items:center;gap:24px;padding:12px clamp(20px,4vw,64px);min-height:68px}
.brand{display:flex;align-items:center;gap:10px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(.92rem,1.35vw,1.18rem);font-weight:700;text-decoration:none;line-height:1.15}
.brand-symbol{width:1.2em;height:1.2em;object-fit:contain;flex:0 0 auto}
.header-hamsters{display:block;width:min(100%,250px);height:46px;object-fit:contain;justify-self:center}
.header nav{display:flex;gap:clamp(12px,2vw,28px);flex-wrap:wrap;justify-content:flex-end}
.header nav a{color:var(--ivory);text-decoration:none;font-size:.95rem}
.home-intro{background:var(--teal);color:var(--ivory);display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);align-items:center;gap:48px;padding:clamp(44px,7vw,96px) clamp(24px,8vw,120px)}
.home-intro h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.4rem,5vw,5rem);line-height:1.02;margin:0 0 16px;font-weight:700;max-width:800px}
.home-intro p{margin:0;font-size:clamp(1.1rem,2vw,1.55rem)}
.home-logo{display:block;width:min(100%,390px);justify-self:end;height:auto}
.jake-intro{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,88px);align-items:start;padding:clamp(48px,7vw,96px) clamp(24px,8vw,120px);background:var(--ivory)}
.jake-photo-wrap{align-self:start;overflow:hidden}
.jake-photo{display:block;width:100%;aspect-ratio:1/1.04;object-fit:cover;object-position:top center}
.jake-copy{max-width:760px}
.jake-copy h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,3.5vw,3.5rem);line-height:1.08;margin:0 0 26px}
.jake-copy p{font-size:1.06rem;margin:0 0 18px}
.more-toggle{appearance:none;border:0;background:none;color:var(--teal);font:inherit;font-weight:700;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.less-toggle{display:inline-block;margin-top:2px}
.october-promo,.classes,.lineage-preview,.membership,.section,.split{padding:clamp(44px,6vw,82px) clamp(24px,8vw,120px)}
.october-promo{background:var(--ivory)}
.october-promo-image{display:block;width:100%;height:auto}
.october-promo p{font-size:1.08rem;max-width:920px;margin:22px 0 0}
.classes h2,.lineage-preview h2,.membership h2,.section h1,.section h2,.split h2{font-family:Georgia,'Times New Roman',serif;margin:.1em 0 .5em;line-height:1.12}
.classes h2,.lineage-preview h2,.membership h2,.section h1{font-size:clamp(2rem,4vw,3.8rem)}
.kicker{text-transform:uppercase;letter-spacing:.12em;font-weight:700;font-size:.78rem}
.class-list{border-top:2px solid var(--ink)}
.class-row{display:grid;grid-template-columns:1fr auto;gap:30px;padding:28px 0;border-bottom:1px solid var(--ink)}
.class-row h3{margin:0 0 6px;font-family:Georgia,'Times New Roman',serif;font-size:1.5rem}
.class-row p{margin:0}.meta{display:flex;flex-direction:column;gap:4px;text-align:right}
.text-link{font-weight:700;display:inline-block;margin-top:24px;color:var(--teal)}
.lineage-preview{background:var(--ivory);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr);gap:clamp(36px,6vw,88px);align-items:center}
.lineage-copy{max-width:760px}
.lineage-preview-image{display:block;width:min(100%,520px);height:auto;justify-self:end}
.membership{background:var(--ink);color:var(--ivory)}
.price{font-family:Georgia,'Times New Roman',serif;font-size:3rem;font-weight:700;margin:14px 0}.price span{font-family:Arial,Helvetica,sans-serif;font-size:1rem;font-weight:400}
.join{display:inline-block;background:var(--ivory);color:var(--ink);padding:12px 20px;text-decoration:none;font-weight:700;margin-top:12px}
.site-footer{background:var(--spruce);color:var(--ivory);display:grid;grid-template-columns:minmax(220px,.9fr) minmax(480px,1.8fr) auto;align-items:center;gap:26px;padding:24px clamp(24px,5vw,80px);min-height:108px}
.footer-brand{font-family:Georgia,'Times New Roman',serif;font-weight:700;font-size:1rem;line-height:1.2}
.footer-center{display:grid;grid-template-columns:minmax(110px,1fr) auto minmax(110px,1fr);align-items:center;gap:18px}
.footer-hamsters{display:block;width:100%;max-width:230px;height:70px;object-fit:contain}
.footer-center .footer-hamsters:first-child{justify-self:end}
.footer-email{color:var(--ivory);font-weight:700;text-decoration:none;white-space:nowrap}
.footer-symbol{display:block;width:58px;height:58px;object-fit:contain}
.section.alt{background:var(--teal);color:var(--ivory)}
.facts{display:flex;gap:18px;flex-wrap:wrap;font-weight:700;margin:18px 0}.facts span{border:1px solid currentColor;padding:8px 12px}.facts.stacked{flex-direction:column;align-items:flex-start}
.two,.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,70px)}
.split{background:var(--ivory)}
.note,.notes{max-width:760px}
@media(max-width:1000px){
  .header{grid-template-columns:1fr auto}.header-hamsters{display:none}
  .site-footer{grid-template-columns:1fr auto}.footer-center{grid-column:1/-1;grid-row:2}.footer-symbol{grid-column:2;grid-row:1}
}
@media(max-width:780px){
  .header{display:flex;align-items:flex-start;flex-direction:column;gap:10px}.header nav{justify-content:flex-start;gap:14px 20px}.brand{font-size:1rem}
  .home-intro{grid-template-columns:1fr;gap:30px;text-align:left}.home-logo{justify-self:start;width:min(72vw,320px)}
  .jake-intro{grid-template-columns:1fr}
  .class-row{grid-template-columns:1fr}.meta{text-align:left}
  .lineage-preview{grid-template-columns:1fr}.lineage-preview-image{justify-self:start;width:min(100%,480px)}
  .two,.split{grid-template-columns:1fr}
  .site-footer{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.footer-center{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px}.footer-hamsters{width:min(42vw,180px);height:58px}.footer-symbol{width:52px;height:52px}
}

/* Final homepage refinements */
.brand-symbol{width:1.42em;height:1.42em}
.header-hamsters{width:min(100%,285px);height:54px}
.october-promo{background:var(--spruce);color:var(--ivory)}
.classes{background:var(--teal);color:var(--ivory)}
.classes .class-list{border-color:var(--ivory)}
.classes .class-row{border-color:var(--ivory)}
.classes .text-link{color:var(--ivory)}
.membership{position:relative}
.membership-image{display:block;width:min(100%,520px);height:auto;margin-top:28px}
@media(min-width:900px){
  #membership.membership{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);column-gap:clamp(36px,6vw,88px);align-items:center}
  #membership.membership h2,#membership.membership .price,#membership.membership .membership-note,#membership.membership .join{grid-column:1}
  #membership.membership .membership-image{grid-column:2;grid-row:1 / span 4;margin:0;justify-self:end}
}

/* Classes page */
.classes-page-title{background:var(--ivory);padding-bottom:clamp(28px,4vw,48px)}
.opening-note{background:var(--spruce);color:var(--ivory);padding:18px clamp(24px,8vw,120px)}
.opening-note p{margin:0;font-weight:700;max-width:900px}
.weekly-class .lead{max-width:920px}
.class-more-toggle{appearance:none;border:0;background:none;color:var(--teal);font:inherit;font-weight:700;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.class-less-toggle{margin-top:4px}
.park-practice .facts{flex-direction:row;align-items:stretch}
.workshops{background:var(--ivory)}

/* Membership page */
.membership h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2rem,4vw,3.8rem);margin:.1em 0 .5em;line-height:1.12}
.membership-prices{display:flex;align-items:baseline;gap:clamp(28px,5vw,70px);flex-wrap:wrap}
.membership-prices .price{margin:14px 0}
.membership-prices .dropin span{font-size:1rem}

/* Classes page image layouts */
.class-detail{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:clamp(32px,5vw,72px);align-items:start}
.class-detail-copy{min-width:0}
.class-detail-image{display:block;width:100%;max-height:560px;object-fit:cover;align-self:start}
.park-practice .class-detail-image{max-height:480px}

/* Lineage page */
.lineage-opening{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);gap:clamp(36px,6vw,88px);align-items:start;background:var(--ivory)}
.lineage-opening-image{display:block;width:100%;max-width:520px;height:auto;justify-self:end}
.lineage-experience{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);gap:clamp(36px,6vw,88px);align-items:center}
.lineage-experience-image{display:block;width:100%;max-width:560px;height:auto}
.lineage-more-toggle{appearance:none;border:0;background:none;color:inherit;font:inherit;font-weight:700;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.lineage-less-toggle{margin-top:4px}
.lineage-generations{background:var(--spruce);color:var(--ivory);padding:clamp(48px,7vw,96px) clamp(24px,8vw,120px)}
.lineage-generations-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.7fr);gap:clamp(36px,6vw,88px);align-items:center;margin-bottom:clamp(42px,6vw,76px)}
.lineage-generations h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.1rem,4.3vw,4rem);line-height:1.08;margin:0;font-weight:700}
.lineage-tree-image{display:block;width:min(100%,430px);height:auto;justify-self:end}
.generation-list{display:grid;gap:34px}
.generation-entry{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;align-items:center;padding-top:30px;border-top:1px solid var(--ivory)}
.generation-entry img{display:block;width:150px;height:190px;object-fit:cover;object-position:center top}
.generation-entry h3{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.15;margin:0 0 12px}
.generation-entry p{max-width:850px;margin:0 0 10px}
@media(max-width:780px){
  .class-detail,.lineage-opening,.lineage-experience,.lineage-generations-intro{grid-template-columns:1fr}
  .class-detail-image,.lineage-opening-image,.lineage-tree-image{justify-self:start;max-width:100%}
  .generation-entry{grid-template-columns:100px minmax(0,1fr);gap:18px}
  .generation-entry img{width:100px;height:132px}
}
