@font-face{font-family:Montserrat;src:url('assets/montserrat.woff') format('woff');font-weight:100 900;font-style:normal;font-display:swap}
:root{--red:#a90721;--red-dark:#81071a;--ink:#1e1e20;--muted:#626268;--line:#dcdcdf;--gray:#f3f3f4;--white:#fff;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);background:var(--white);font-family:Montserrat,Arial,sans-serif;font-size:1rem;line-height:1.7}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--red);outline-offset:5px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.1;letter-spacing:-.035em}h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:700}h3{font-size:1.375rem;font-weight:650}section[id]{scroll-margin-top:100px}.skip-link{position:fixed;z-index:100;left:16px;top:-80px;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:15px}
.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);z-index:20}.header-inner{max-width:var(--max);margin:auto;min-height:94px;display:flex;align-items:center;justify-content:space-between;gap:30px;padding:12px 0}.wordmark{text-decoration:none;display:flex;flex-direction:column;gap:4px}.wordmark>span,.footer-brand{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:2.35rem;line-height:1;font-weight:bold;color:var(--red);letter-spacing:-.08em}.wordmark small{font-size:.75rem;letter-spacing:.025em;font-weight:500;color:var(--muted)}nav{display:flex;align-items:center;gap:32px}nav>a{text-decoration:none;font-size:.875rem;font-weight:600}nav>a:not(.button):hover{color:var(--red)}.button{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:13px 23px;border:1px solid var(--red);background:var(--red);color:#fff;text-decoration:none;font-weight:600;font-size:.875rem;line-height:1.45;transition:background .15s,color .15s,transform .15s;border-radius:3px}.button:hover{background:var(--red-dark);border-color:var(--red-dark);transform:translateY(-2px)}.button-small{min-height:45px;padding:11px 19px}.button-outline{color:var(--red);background:transparent}.button-outline:hover{color:#fff;background:var(--red)}.text-link{font-size:.875rem;font-weight:650;text-decoration-thickness:1px;text-underline-offset:7px;line-height:1.6}.text-link:hover{color:var(--red)}.menu-toggle{display:none}.eyebrow{color:var(--red);font-size:.8125rem;font-weight:650;text-transform:uppercase;letter-spacing:.12em;line-height:1.5}
.hero{display:grid;grid-template-columns:1fr 1fr;max-width:var(--max);margin:0 auto;min-height:635px;align-items:center;gap:28px;padding:65px 0}.hero-copy{padding-right:0}.hero .eyebrow{display:flex;align-items:center;gap:9px;margin-bottom:24px}.hero .eyebrow span{height:1px;width:26px;background:var(--red)}h1{font-size:clamp(2.6rem,4.35vw,4.05rem);font-weight:720;line-height:1.12}h1 em{font-style:normal;color:var(--red);display:inline-block}.hero-description{max-width:440px;color:var(--muted);margin-top:26px;font-size:1rem;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}.hero-note{color:var(--muted);font-size:.8125rem;margin-top:22px}.hero-art{height:505px;background:var(--gray);position:relative;overflow:hidden}.hero-art>img{width:100%;height:100%;object-fit:cover;object-position:38% center}.hero-art-caption{position:absolute;bottom:0;right:0;display:flex;align-items:center;gap:20px;padding:24px 31px;background:var(--red);color:#fff;min-width:235px;font-size:1.05rem;line-height:1.6}.caption-rule{height:48px;width:1px;background:#fff8}.hero-art-caption strong{font-weight:650}.brand-strip{background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;gap:40px;padding:22px;font-size:.875rem;font-weight:500;letter-spacing:.03em}.brand-strip span[aria-hidden]{color:#888}
.section{max-width:var(--max);margin:0 auto;padding:100px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:42px}.section-heading .eyebrow{margin-bottom:17px}.section-heading>p{max-width:405px;color:var(--muted);font-size:1rem;line-height:1.85;padding-bottom:3px}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.service-card{min-width:0}.service-image{position:relative;aspect-ratio:1.12;overflow:hidden;background:var(--gray)}.service-image img{width:100%;height:100%;object-fit:cover}.service-image .image-label{position:absolute;left:0;bottom:0;background:#fff;padding:9px 18px;font-size:.75rem;font-weight:650;color:var(--red);letter-spacing:.05em}.service-copy{padding:25px 0 0}.service-copy h3{margin-bottom:15px}.service-copy>p{font-size:.9375rem;color:var(--muted);line-height:1.8;min-height:85px}.service-meta{display:flex;gap:10px;flex-wrap:wrap;margin:21px 0;font-size:.75rem;font-weight:550}.service-meta>span{background:var(--gray);padding:5px 10px;border-radius:2px}.service-copy>.text-link{display:inline-block}
.about-section{background:var(--gray);border-top:1px solid #ededee;border-bottom:1px solid #ededee}.about-inner{max-width:var(--max);margin:auto;padding:75px 0;display:grid;grid-template-columns:.88fr 1fr;gap:105px;align-items:center}.about-brand{min-height:480px;display:flex;align-items:center;position:relative;background:#fff;overflow:hidden}.about-brand .brand-logo{width:65%;height:365px;object-fit:contain;object-position:center;align-self:center}.about-brand>p{position:absolute;right:28px;bottom:24px;font-size:1.7rem;line-height:1.25;font-weight:650;letter-spacing:-.04em}.about-brand>p span{color:var(--red)}.about-copy .eyebrow{margin-bottom:20px}.about-copy h2{font-size:clamp(2rem,3.3vw,3rem);margin-bottom:25px}.about-copy>p:not(.eyebrow){margin:0 0 19px;color:var(--muted);font-size:.9375rem;line-height:1.85}.about-copy>.text-link{display:inline-block;margin-top:7px}
.events-section{padding-bottom:90px}.events-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:25px;border-bottom:1px solid var(--line)}.filters{display:flex;gap:9px;flex-wrap:wrap}.filter{padding:9px 17px;min-height:44px;background:#fff;color:var(--muted);border:1px solid var(--line);font-size:.8125rem;font-weight:600;border-radius:50px}.filter.active{background:var(--ink);border-color:var(--ink);color:#fff}.filter:hover:not(.active){border-color:var(--red);color:var(--red)}.results-count{font-size:.8125rem;color:var(--muted);white-space:nowrap}.offering{display:grid;grid-template-columns:155px minmax(0,1fr) 195px;gap:30px;align-items:start;padding:30px 0;border-bottom:1px solid var(--line)}.offering>img{width:155px;height:155px;object-fit:cover;background:var(--gray)}.offering-kicker{color:var(--red);font-weight:650;font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;line-height:1.6;margin-bottom:10px}.offering-kicker>span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--muted);margin-left:13px;display:inline-block}.offering h3{margin-bottom:11px;font-size:1.45rem}.offering-body>p:not(.offering-kicker){font-size:.9375rem;color:var(--muted);line-height:1.75}.offering-action{display:flex;flex-direction:column;align-items:flex-end;gap:15px;padding-top:15px}.offering-action .button{padding:11px 15px;min-height:47px;font-size:.8125rem;width:100%}.price{font-size:1.5rem;font-weight:650;line-height:1.35}.price small{display:block;font-size:.75rem;font-weight:500;color:var(--muted)}.booking-note{font-size:.8125rem;color:var(--muted);font-weight:500}details{margin-top:15px;font-size:.8125rem}summary{list-style:none;display:inline-flex;gap:12px;align-items:center;color:var(--ink);font-weight:600;cursor:pointer;min-height:40px;line-height:1.5;text-decoration:underline;text-underline-offset:5px}summary::-webkit-details-marker{display:none}summary::before{content:'+';border:1px solid #ccc;display:inline-flex;justify-content:center;align-items:center;height:22px;width:22px;flex-shrink:0;color:var(--red);font-size:1.1rem;text-decoration:none}details[open] summary::before{content:'−'}.details-content{padding:15px 18px;border-left:2px solid var(--red);background:var(--gray);margin-top:9px;color:var(--muted);font-size:.875rem;line-height:1.8}.details-content p+p{margin-top:12px}
.closing-section{background:#252527;position:relative;overflow:hidden;color:white}.closing-section::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#202022 0%,#202022f0 44%,#2020229c 75%,#20202270),url('assets/yarn-stack.webp') right 50% / 440px auto no-repeat;opacity:.95}.closing-inner{position:relative;z-index:1;max-width:var(--max);margin:auto;padding:75px 0}.closing-inner .eyebrow{color:#fff9;margin-bottom:20px}.closing-inner h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:650}.closing-copy>p:not(.eyebrow){max-width:485px;margin-top:23px;color:#d1d1d4;font-size:.9375rem}.closing-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.button-white{background:white;color:var(--red);border-color:white}.button-white:hover{background:#f0f0f2;color:var(--red-dark);border-color:#f0f0f2}.button-light-outline{border-color:#ffffff70;color:white;background:transparent}.button-light-outline:hover{background:white;color:var(--ink);border-color:white}.closing-copy>.external-note{font-size:.75rem!important;margin-top:16px!important;color:#c0c0c3!important}.closing-section a:focus-visible{outline-color:white}footer{max-width:var(--max);margin:auto;display:grid;grid-template-columns:160px 1fr auto;gap:30px;align-items:center;padding:43px 0 25px}.footer-brand{text-decoration:none;font-size:2rem}footer>p{font-size:.8125rem;line-height:1.7;font-weight:550}footer>p>span{color:var(--muted);font-size:.75rem;font-weight:400}footer small{grid-column:1/-1;padding-top:20px;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}
@media(min-width:1600px){.hero{min-height:690px;gap:55px}.hero-art{height:550px}}
@media(max-width:1260px){.header-inner,.hero,.section,.about-inner,.closing-inner,footer{margin-left:40px;margin-right:40px}.hero{grid-template-columns:1.1fr 1fr}.hero-art{height:470px}.hero-actions{gap:17px}.about-inner{gap:55px}.service-grid{gap:22px}}
@media(max-width:960px){h1{font-size:3.05rem}.hero{gap:25px;padding:50px 0;min-height:unset}.hero-art{height:440px}.hero-art-caption{padding:20px;min-width:195px}.header-inner{min-height:82px}nav{gap:22px}.section{padding:70px 0}.section-heading{gap:35px}.section-heading>p{max-width:360px}.service-grid{gap:20px}.service-copy h3{font-size:1.2rem}.service-copy>p{min-height:140px}.about-inner{gap:35px;padding:55px 0}.about-brand{min-height:440px}.about-brand .brand-logo{width:80%}.about-brand>p{right:16px;bottom:18px;font-size:1.5rem}.offering{grid-template-columns:120px minmax(0,1fr);gap:23px}.offering>img{width:120px;height:135px}.offering-action{grid-column:2;flex-direction:row;align-items:center;justify-content:flex-start;padding-top:0}.offering-action .button{width:auto}.price{font-size:1.2rem}.price small{display:inline;margin-left:7px}.brand-strip{gap:23px}.closing-section::before{background-size:auto,350px auto}}
@media(max-width:720px){html{scroll-padding-top:92px}.header-inner,.hero,.section,.about-inner,.closing-inner,footer{margin-left:23px;margin-right:23px}.header-inner{min-height:80px;gap:15px}.wordmark>span{font-size:2.05rem}.wordmark small{font-size:.7rem}.menu-toggle{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;font-size:.875rem;font-weight:550;border-radius:3px;padding:8px 12px;min-height:44px}.menu-icon{font-size:1rem}nav{position:absolute;top:100%;left:0;right:0;display:none;flex-direction:column;align-items:stretch;background:white;border-bottom:1px solid var(--line);padding:15px 23px 24px;gap:0}nav.open{display:flex}nav>a:not(.button){padding:13px 0}nav .button{margin-top:10px}.hero{grid-template-columns:1fr;gap:35px;padding:40px 0}.hero .eyebrow{margin-bottom:19px;font-size:.75rem}h1{font-size:clamp(2.5rem,8.2vw,3.65rem)}.hero-description{max-width:540px;margin-top:22px}.hero-actions{margin-top:24px;gap:20px}.hero-note{font-size:.75rem}.hero-art{height:340px}.hero-art>img{object-position:center 57%}.hero-art-caption{font-size:.9rem;min-width:185px;padding:18px 23px}.brand-strip{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 20px;padding:22px 23px;text-align:center;font-size:.8125rem}.brand-strip span[aria-hidden]{display:none}.section{padding:58px 0}.section-heading{display:block;margin-bottom:30px}.section-heading .eyebrow{margin-bottom:13px}.section-heading h2{font-size:2.65rem}.section-heading>p{margin-top:22px;max-width:100%;font-size:.9375rem}.service-grid{grid-template-columns:1fr;gap:37px}.service-image{aspect-ratio:1.45}.service-image img{object-position:center 43%}.service-copy{padding-top:20px}.service-copy h3{font-size:1.5rem}.service-copy>p{min-height:unset;font-size:.9375rem}.service-meta{margin:17px 0}.about-inner{grid-template-columns:1fr;padding:42px 0;gap:33px}.about-brand{min-height:290px;max-height:330px}.about-brand .brand-logo{height:290px;width:58%;margin-left:15px}.about-brand>p{font-size:1.8rem;right:25px;bottom:30px}.about-copy h2{font-size:2.55rem}.events-toolbar{align-items:flex-start;flex-direction:column;gap:14px;padding-bottom:20px}.filters{gap:8px}.filter{padding:9px 13px;font-size:.75rem}.offering{grid-template-columns:85px minmax(0,1fr);gap:14px 18px;padding:25px 0}.offering>img{width:85px;height:100px}.offering-kicker{font-size:.7rem;margin-bottom:8px}.offering-kicker>span{display:block;margin-left:0;margin-top:3px;font-size:.75rem}.offering h3{font-size:1.3rem}.offering-body>p:not(.offering-kicker){font-size:.875rem}.offering-action{grid-column:1/-1;flex-wrap:wrap;justify-content:flex-end;gap:14px}.offering-action .button{min-height:44px;font-size:.75rem}.offering details{font-size:.75rem}.details-content{font-size:.875rem;padding:13px 12px}.booking-note{font-size:.75rem}.closing-inner{padding:55px 0}.closing-inner h2{font-size:2.65rem}.closing-copy>p:not(.eyebrow){max-width:330px}.closing-section::before{background:linear-gradient(90deg,#202022f7,#202022dd 57%,#202022ac),url('assets/yarn-stack.webp') right center / 275px auto no-repeat}.closing-inner .eyebrow{font-size:.7rem}.closing-actions .button{font-size:.8125rem}footer{grid-template-columns:1fr auto;gap:22px;padding-top:32px}.footer-brand{grid-column:1}footer>p{grid-column:1}footer>.text-link{grid-column:2;grid-row:1/3;font-size:.8125rem}footer small{padding-top:18px}}
@media(max-width:380px){.header-inner,.hero,.section,.about-inner,.closing-inner,footer{margin-left:18px;margin-right:18px}.hero-art{height:270px}h1{font-size:2.45rem}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.section-heading h2,.closing-inner h2{font-size:2.3rem}.about-copy h2{font-size:2.15rem}.about-brand>p{font-size:1.4rem;right:15px}.offering{grid-template-columns:70px minmax(0,1fr);gap:12px}.offering>img{width:70px;height:90px}.offering h3{font-size:1.15rem}.filters{gap:6px}.filter{padding:8px 11px}.offering-action{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}

/* Keep visitor copy and frequently used controls comfortably readable. */
.service-copy>p,.about-copy>p:not(.eyebrow),.offering-body>p:not(.offering-kicker),.details-content,.closing-copy>p:not(.eyebrow){font-size:1rem}
.filter,.offering-action .button,.offering details,.hero-note{font-size:.875rem}
@media(max-width:720px){.filter,.offering-action .button,.closing-actions .button,footer>.text-link,.offering details{font-size:.875rem}.section-heading>p,.service-copy>p,.about-copy>p:not(.eyebrow),.offering-body>p:not(.offering-kicker),.details-content,.closing-copy>p:not(.eyebrow){font-size:1rem}}

/* Full-image class thumbnails keep the needles and crochet project visible. */
.class-media{display:grid;gap:12px;justify-items:center;width:155px}
.class-media figure{margin:0;width:128px;max-width:100%}
.class-media img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;background:#fff;border:1px solid var(--line)}
@media(max-width:960px){.class-media{width:120px}.class-media figure{width:105px}}
@media(max-width:720px){.wordmark>span{font-size:1.8rem}.class-media{width:85px;gap:10px}.class-media figure{width:85px}}
@media(max-width:380px){.wordmark>span{font-size:1.65rem}.class-media{width:70px}.class-media figure{width:70px}}

/* Keep the complete closing copy over solid black; clip the yarn to the right. */
.closing-section{background:#202022}
.closing-copy{max-width:min(720px,calc(100% - 300px))}
.closing-copy>p:not(.eyebrow){max-width:640px}
.closing-section::before{inset:0 0 0 auto;width:300px;background:linear-gradient(#20202266,#20202266),url('assets/yarn-stack.webp') left center / auto 120% no-repeat;opacity:1}
@media(max-width:720px){.closing-copy{max-width:none}.closing-inner{padding-bottom:220px}.closing-section::before{inset:auto 0 0 auto;width:240px;height:180px;background-size:auto,auto 125%}.closing-copy>p:not(.eyebrow){max-width:none}}

/* Give the complete Knit Doctor drawing the landing-page focus. */
.hero-art.hero-art--drawing{background:#fff;border:1px solid var(--line)}
.hero-art.hero-art--drawing>img{object-fit:contain;object-position:center;padding:14px}
.about-brand.about-brand--hands{background:#fff}
.about-brand.about-brand--hands .brand-logo{width:100%;height:480px;margin-left:0;object-fit:contain;object-position:center}
.about-brand.about-brand--hands>p{right:0;bottom:0;background:#fffffff2;padding:14px 20px}
@media(max-width:960px){.about-brand.about-brand--hands .brand-logo{height:440px}}
@media(max-width:720px){.hero-art.hero-art--drawing{height:430px}.about-brand.about-brand--hands .brand-logo{height:300px}.about-brand.about-brand--hands>p{font-size:1.4rem;padding:12px 16px}}
@media(max-width:380px){.hero-art.hero-art--drawing{height:380px}}

/* Crop the lettering below the portrait and give the drawing more room. */
.hero-art.hero-art--drawing{height:auto;display:grid;grid-template-rows:auto auto}
.hero-drawing-window{position:relative;overflow:hidden;width:min(100%,430px);aspect-ratio:750/770;margin:0 auto}
.hero-drawing-window>img{position:absolute;left:0;top:-6.4935065%;width:100%;max-width:none;height:auto;object-fit:fill;padding:0}
.hero-values{padding:12px 20px;text-align:center;font-size:clamp(1.3rem,2vw,1.6rem);font-weight:650;line-height:1.12;letter-spacing:-.035em;border-top:1px solid var(--line)}
.hero-values span{color:var(--red)}
@media(max-width:720px){.hero-drawing-window{width:min(100%,360px)}.hero-values{font-size:1.4rem}}
.lesson-booking-options{display:flex;flex-wrap:wrap;gap:10px;width:100%}.lesson-booking-options .button{flex:1 1 145px;min-width:0;width:auto;min-height:47px;padding:11px 14px;font-size:.875rem;line-height:1.4}@media(max-width:960px){.offering-action--lessons{flex-wrap:wrap}}

/* Keep section invitations useful with larger text and sticky navigation. */
#lesson-booking{scroll-margin-top:110px}.header-inner{flex-wrap:wrap}.hero-copy,.about-copy,.closing-copy{min-width:0}.hero-copy h1,.about-copy h2,.closing-copy h2{overflow-wrap:break-word}
@media(min-width:721px){#main-nav{flex-wrap:wrap}}

.gathering-booking-options{display:flex;flex-wrap:wrap;gap:10px;width:100%}.gathering-booking-options .button{flex:1 1 160px;min-width:0;width:auto}

/* Preserve the complete class illustrations at every screen size. */
.offering>img.class-graphic{object-fit:contain;background:#fff;height:auto;aspect-ratio:3/4;}
