/* Focused front-page, mobile navigation, and catalog refinements. */
.hero{grid-template-columns:1fr;padding-block:84px 76px;gap:0}
.hero h1{font-size:clamp(58px,7.2vw,94px);max-width:1000px;line-height:1.04}
.hero .lead{max-width:730px}
.hero .actions{margin-top:30px}
.menu{color:var(--gold);-webkit-appearance:none;appearance:none;background:transparent;border:0;padding:14px 10px;min-width:46px;min-height:46px;-webkit-tap-highlight-color:transparent}
.hamburger{display:flex;flex-direction:column;gap:6px;width:26px}
.hamburger span{display:block;width:26px;height:2px;background:var(--gold);transition:transform .18s ease,opacity .18s ease}
.menu[aria-expanded=true] .hamburger span:first-child{transform:translateY(8px) rotate(45deg)}
.menu[aria-expanded=true] .hamburger span:nth-child(2){opacity:0}
.menu[aria-expanded=true] .hamburger span:last-child{transform:translateY(-8px) rotate(-45deg)}
.catalog-list{display:flex;flex-direction:column;margin-bottom:60px;border-top:1px solid var(--line)}
.catalog-list .course{display:grid;grid-template-columns:170px minmax(0,1fr) 170px;gap:28px;min-height:0;padding:27px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;align-items:start}
.catalog-list .course:hover{background:#fffcf680}
.catalog-list .course-category{padding-top:6px}
.catalog-list .course .eyebrow{margin:0;line-height:1.7;font-size:10px;letter-spacing:.11em}
.catalog-list .course h3{margin:0 0 5px;font-size:21px}
.catalog-list .course .provider{margin:0 0 8px;font-size:12px}
.catalog-list .course p{margin:0;font-size:14px;max-width:690px}
.catalog-list .course .course-actions{margin:3px 0 0;padding:0;border:0;display:flex;flex-direction:column;align-items:flex-start;gap:13px}
.catalog-list .course button{font-weight:bold;font-size:13px;text-decoration:none;border-bottom:1px solid var(--gold);padding:0 0 4px;color:var(--ink);-webkit-appearance:none;appearance:none}
.catalog-list .course-actions a{font-size:12px;color:var(--muted)}
.catalog-list .empty{margin:25px 0}
@media(max-width:1000px){.catalog-list .course{grid-template-columns:130px minmax(0,1fr) 145px;gap:22px}}
@media(max-width:760px){.hero{padding-block:48px 46px}.hero h1{font-size:clamp(49px,10vw,72px)}.hero .lead{max-width:100%}.catalog-list .course{grid-template-columns:1fr;gap:10px;padding:24px 0}.catalog-list .course-category{padding-top:0}.catalog-list .course h3{font-size:20px}.catalog-list .course .course-actions{flex-direction:row;align-items:center;gap:24px;margin-top:7px}.catalog-list .course button{min-height:35px}.catalog-list .course-actions a{padding:8px 0}.catalog-list .course p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.hamburger span{transition:none}}

/* Services read as an unnumbered list; the home-page process uses Roman numerals. */
.service-detail{grid-template-columns:1fr 1fr;gap:60px}
.service-detail>div:last-child{grid-column:auto}
.service-card .number{font-size:10px;letter-spacing:.12em;line-height:1.6}
.step{grid-template-columns:40px 1fr;gap:18px}
.step:before{content:counter(steps,upper-roman);width:32px;height:32px;display:grid;place-items:center;border:1px solid #9b8045;border-radius:50%;font-family:Georgia,'Times New Roman',serif;font-size:13px;line-height:1;color:#d1b77c}
.hero h1{font-size:clamp(51px,6.2vw,82px)}
@media(max-width:760px){.service-detail{grid-template-columns:1fr;gap:18px}.service-detail>div:last-child{grid-column:auto}.hero h1{font-size:clamp(43px,8.8vw,62px)}.step{gap:12px;grid-template-columns:34px 1fr}}

.field-help{font-size:12px;color:var(--muted);line-height:1.5}
.team-section{padding:12px 0 70px;border-top:1px solid var(--line)}
.team-section .section-head{padding-top:35px}
.team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:34px;max-width:960px}
.team-profile{background:var(--paper);border:1px solid var(--line)}
.portrait-placeholder{height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#ebe4d7;border-bottom:1px solid var(--line);color:#8d7b56;gap:15px}
.portrait-placeholder svg{width:122px;height:130px;fill:none;stroke:currentColor;stroke-width:1.2;opacity:.7}
.portrait-placeholder span{font-size:11px;letter-spacing:.08em}
.profile-copy{padding:25px 28px}
.profile-copy .eyebrow{margin-bottom:12px}
.profile-copy h3{font-family:Georgia,'Times New Roman',serif;font-size:27px;margin-bottom:9px}
.profile-copy p{font-size:14px;margin:0}
@media(max-width:760px){.team-grid{grid-template-columns:1fr;gap:24px}.portrait-placeholder{height:290px}.team-section{padding-bottom:45px}}

/* A fluid desktop canvas grows with the viewport; existing mobile rules stay intact. */
@media(min-width:1280px){
 .container{width:92%;max-width:2320px;padding-inline:0}
 body{font-size:clamp(16px,.82vw,20px)}
 .nav{min-height:clamp(114px,6vw,146px)}
 .navlinks{font-size:clamp(13px,.7vw,17px);gap:clamp(23px,1.6vw,40px)}
 .navlinks .navcta{padding:clamp(11px,.7vw,17px) clamp(17px,1.1vw,26px)}
 .brand{--brand-width:clamp(285px,15vw,350px);width:var(--brand-width);height:calc(var(--brand-width)*.245614)}
 .brand img{width:calc(var(--brand-width)*1.2982456);left:calc(var(--brand-width)*-.12982456);top:calc(var(--brand-width)*-.9719298)}
 .hero{padding-block:clamp(84px,5vw,130px) clamp(76px,4.5vw,110px)}
 .hero h1{font-size:clamp(82px,4.8vw,122px);max-width:1500px}
 .hero .lead{max-width:70ch;font-size:clamp(19px,1.05vw,26px)}
 .hero .actions{margin-top:clamp(30px,2vw,48px)}
 .btn{font-size:clamp(13px,.7vw,17px);padding:clamp(14px,.85vw,21px) clamp(22px,1.3vw,32px)}
 .eyebrow{font-size:clamp(11px,.6vw,14px)}
 h2{font-size:clamp(46px,2.6vw,66px)}
 h3{font-size:clamp(20px,1.1vw,27px)}
 .section{padding-block:clamp(85px,4.5vw,115px)}
 .section-head{gap:clamp(50px,4vw,90px)}
 .section-head p{max-width:560px}
 .strip{font-size:clamp(13px,.8vw,19px);padding-block:clamp(22px,1.4vw,34px)}
 .strip span{font-size:clamp(11px,.6vw,14px)}
 .service-card{padding:clamp(35px,2.5vw,62px) clamp(30px,2vw,50px)}
 .service-card .number{font-size:clamp(10px,.6vw,14px)}
 .service-card a,.textlink{font-size:clamp(13px,.7vw,17px)}
 .split{gap:clamp(65px,5vw,125px)}
 .split .lead{font-size:clamp(19px,1.05vw,26px);max-width:65ch}
 .step{grid-template-columns:44px 1fr;padding-block:clamp(21px,1.5vw,36px)}
 .step p{font-size:clamp(14px,.85vw,20px);max-width:70ch}
 .step:before{width:36px;height:36px;font-size:15px}
 .feature{padding:clamp(25px,1.7vw,42px)}
 .feature p,.service-note{font-size:clamp(14px,.8vw,18px)}
 .banner h2{font-size:clamp(37px,2.3vw,58px)}
 .page-intro{padding-top:clamp(66px,4vw,100px)}
 .page-intro h1{font-size:clamp(66px,4.2vw,106px);max-width:1500px}
 .page-intro .lead{font-size:clamp(19px,1.05vw,26px);max-width:72ch}
 .service-detail{gap:clamp(60px,5vw,125px);padding-block:clamp(44px,3vw,70px)}
 .service-detail h2{font-size:clamp(35px,2.1vw,52px)}
 .service-detail p{font-size:clamp(15px,.9vw,21px);max-width:72ch}
 .service-detail ul{font-size:clamp(14px,.85vw,20px)}
 .notice,.catalog-meta{font-size:clamp(13px,.75vw,18px)}
 .field label,.field-help{font-size:clamp(12px,.7vw,16px)}
 .filters{gap:clamp(17px,1.5vw,35px)}
 .filters .field select{min-width:clamp(220px,17vw,370px)}
 .catalog-list .course{grid-template-columns:minmax(170px,14%) minmax(0,1fr) minmax(170px,15%);gap:clamp(28px,2vw,48px);padding-block:clamp(27px,1.8vw,42px)}
 .catalog-list .course h3{font-size:clamp(21px,1.2vw,29px)}
 .catalog-list .course p{font-size:clamp(14px,.85vw,20px);max-width:80ch}
 .catalog-list .course .provider,.catalog-list .course-actions a{font-size:clamp(12px,.75vw,17px)}
 .catalog-list .course .eyebrow{font-size:clamp(10px,.65vw,15px)}
 .catalog-list .course button{font-size:clamp(13px,.8vw,18px)}
 .about-block{padding:clamp(36px,2.5vw,62px)}
 .team-grid{max-width:1600px;gap:clamp(34px,3vw,64px)}
 .portrait-placeholder{height:clamp(300px,19vw,420px)}
 .profile-copy h3{font-size:clamp(27px,1.6vw,36px)}
 .profile-copy p{font-size:clamp(14px,.85vw,19px)}
 .content{max-width:1150px}
 .faq{max-width:1500px}
 .faq summary{font-size:clamp(18px,1.1vw,26px)}
 .faq details p{max-width:80ch}
 .form-note,.footer p,.footer-links{font-size:clamp(12px,.7vw,16px)}
 .footer-bottom{font-size:clamp(11px,.65vw,15px)}
}
