:root{--navy:#162b44;--navy-deep:#10263f;--green-1:#4f7a5a;--green-2:#6f8f79;--green-3:#a6b9a9;--storm:#28334d;--cream:#f8f5ef;--paper:#fffefd;--ink:#17283d;--muted:#5a6570;--line:#d9ddd8;--page-width:1280px;--header-height:96px;--section-pad:clamp(3rem,7vw,6.5rem)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1rem)}
body{margin:0;color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}
img{display:block;max-width:100%}
a{color:inherit}
.skip-link{position:absolute;top:0;left:-9999px;z-index:999;padding:.75rem 1rem;background:var(--navy);color:white}
.skip-link:focus{left:1rem;top:1rem}
.site-header{position:sticky;top:0;z-index:50;min-height:var(--header-height);border-bottom:1px solid var(--line);background:rgba(255,254,253,.97)}
.header-inner{width:min(100% - 3rem,1180px);min-height:var(--header-height);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}
.brand{flex:0 1 auto;text-decoration:none;color:var(--navy);line-height:1}
.brand-name{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(2rem,4vw,3.2rem);font-weight:400;letter-spacing:.01em}
.brand-role{display:block;margin-top:.45rem;color:var(--green-1);font-size:.82rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.site-nav ul{list-style:none;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.35rem 1.8rem;margin:0;padding:0}
.site-nav a{display:inline-block;padding:.65rem .15rem;text-decoration:none;color:var(--navy);font-size:.82rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;border-bottom:2px solid transparent}
.site-nav a:hover,.site-nav a:focus-visible{border-bottom-color:var(--green-1)}
.site-nav a[aria-current="page"]{color:var(--green-1);border-bottom-color:var(--green-1)}
.site-nav .contact-link[aria-current="page"]{color:var(--green-1);background:transparent;border-bottom-color:var(--green-1)}
.site-nav .contact-link{padding:.65rem .15rem;color:var(--navy);background:transparent;border-bottom:2px solid transparent}
.site-nav .contact-link:hover,.site-nav .contact-link:focus-visible{color:var(--green-1);background:transparent;border-bottom-color:var(--green-1)}
main{overflow:clip}
.hero{position:relative;min-height:430px;display:grid;align-items:center;isolation:isolate}
.hero-inner{width:min(100% - 3rem,1180px);margin-inline:auto;padding-block:clamp(2.5rem,4.5vw,4rem)}
h1,h2,h3{margin-top:0;color:var(--navy);font-family:Georgia,"Times New Roman",serif;line-height:1.12}
h1{max-width:none;margin-bottom:1.15rem;font-size:clamp(2.15rem,2.75vw,3.15rem);font-weight:400;letter-spacing:-.025em;line-height:1.08;white-space:nowrap}
h2{font-size:clamp(2rem,4vw,3.5rem);font-weight:400}
h3{font-size:1.35rem}
.rule{width:2.75rem;height:3px;margin:0 0 1.1rem;border:0;background:var(--green-1)}
.hero-copy p{max-width:32rem;margin:0 0 1.35rem;font-size:clamp(.92rem,1.15vw,1.05rem);line-height:1.55;color:var(--ink)}
.button{display:inline-block;padding:.78rem 1.25rem;border:1px solid var(--navy);background:var(--navy);color:white;text-decoration:none;text-transform:uppercase;font-size:.78rem;font-weight:700;letter-spacing:.08em}
.button:hover,.button:focus-visible{background:var(--green-1);border-color:var(--green-1)}
.section{padding-block:var(--section-pad)}
.section:nth-of-type(even){background:var(--cream)}
.section-inner{width:min(100% - 3rem,1180px);margin-inline:auto}
.section-heading{max-width:760px;margin-bottom:2.5rem}
.eyebrow{margin:0 0 .75rem;color:var(--green-1);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.about-grid,.contact-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:clamp(2rem,6vw,5rem);align-items:start}
.profile-card{min-height:320px;padding:2rem;color:#fff;background:var(--navy);display:grid;place-items:center;text-align:center}
.profile-placeholder{width:150px;aspect-ratio:1;border-radius:50%;border:2px solid var(--green-3);display:grid;place-items:center;margin-inline:auto;margin-bottom:1.25rem;background:rgba(255,255,255,.08);font-family:Georgia,"Times New Roman",serif;font-size:.9rem}
.profile-card strong{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:2.3rem;font-weight:400}
.profile-card span{color:var(--green-3);font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.service-card{min-height:230px;padding:1.65rem 1.25rem;background:var(--paper);text-align:center}
.icon-placeholder{border-radius:50%;font-weight:700}
.service-card p{margin-bottom:0;color:var(--muted);font-size:.93rem}
.overview-about,.overview-services,.profile-band{color:#fff;background:var(--navy)}
.profile-band-inner{padding-block:clamp(2rem,4vw,3.25rem)}
.profile-panel-head{display:grid;grid-template-columns:104px 1fr;gap:1.25rem;align-items:center}
.profile-panel .profile-placeholder{width:104px;margin:0}
.profile-panel strong{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(2.1rem,3vw,3rem);font-weight:400;line-height:1}
.profile-panel span{display:block;margin-top:.35rem;color:var(--green-3);font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.expertise-list{list-style:none;columns:2;column-gap:2rem;margin:0;padding:0}
.expertise-list li{position:relative;break-inside:avoid;padding-left:1.25rem;font-size:.92rem}
.expertise-list li + li{margin-top:.45rem}
.expertise-list li::before{content:"✓";position:absolute;left:0;color:var(--green-3);font-weight:700}
.quote-band blockquote{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.25rem,2.6vw,2rem);font-style:italic}
.quote-band cite{display:block;margin-top:.65rem;color:var(--green-1);font-family:Arial,Helvetica,sans-serif;font-size:.78rem;font-style:normal;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.contact-panel{padding:2rem;border:1px solid var(--line);background:white}
.contact-list{list-style:none;margin:0;padding:0}
.contact-list li + li{margin-top:.8rem}
footer{padding:2rem 1rem;color:rgba(255,255,255,.82);background:var(--navy-deep);text-align:center;font-size:.86rem}
@media (max-width:900px){
  :root{--header-height:auto}
  html{scroll-padding-top:1rem}
  .header-inner{padding-block:1rem;align-items:flex-start;flex-direction:column;gap:.85rem}
  .site-nav{width:100%}
  .site-nav ul{justify-content:flex-start;gap:.15rem 1rem}
  h1{white-space:normal}
  .about-grid,.contact-grid{grid-template-columns:1fr}
  .overview-panel{grid-template-columns:1fr}
  .overview-about{border-right:0;border-bottom:1px solid var(--line)}
  .overview-services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-band-inner{grid-template-columns:1fr 1fr}
  .profile-band .button{grid-column:1 / -1;justify-self:start}
  .expertise-list{columns:1}
  .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .header-inner{width:min(100% - 1.25rem,1180px)}
  .brand-name{font-size:2.35rem}
  .site-nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}
  .site-nav a{width:100%;padding:.7rem .8rem;border:1px solid var(--line);text-align:center}
  .site-nav .contact-link{grid-column:1 / -1}
  .hero{min-height:520px;background:linear-gradient(180deg,rgba(255,255,255,.99) 0%,rgba(255,255,255,.96) 54%,rgba(255,255,255,.72) 100%),url("../images/hero-study.jpg") 68% center / cover no-repeat}
  .hero-copy{width:100%;max-width:430px}
  h1{font-size:clamp(2.1rem,11vw,3rem)}
  .hero-inner,.section-inner,.overview-panel{width:min(100% - 1.25rem,1180px)}
  .service-grid{grid-template-columns:1fr}
  .overview-panel{width:min(100% - 3rem,1180px);margin-inline:auto;display:grid;grid-template-columns:30% 70%;border:1px solid var(--line);background:var(--paper)}
  .overview-about,.overview-services,.profile-band{color:#fff;background:var(--navy)}
  .profile-band-inner{width:min(100% - 3rem,1180px);margin-inline:auto;padding-block:clamp(2rem,4vw,3.25rem);display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr) auto;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
  .profile-panel-head{display:grid;grid-template-columns:104px 1fr;gap:1.25rem;align-items:center}
  .profile-panel .profile-placeholder{width:104px;margin:0}
  .profile-panel strong{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(2.1rem,3vw,3rem);font-weight:400;line-height:1}
  .profile-panel span{display:block;margin-top:.35rem;color:var(--green-3);font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
  .expertise-list{list-style:none;columns:2;column-gap:2rem;margin:0;padding:0}
  .expertise-list li{position:relative;break-inside:avoid;padding-left:1.25rem;font-size:.92rem}
  .expertise-list li + li{margin-top:.45rem}
  .expertise-list li::before{content:"✓";position:absolute;left:0;color:var(--green-3);font-weight:700}
  .quote-band{background:var(--cream)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
}
.overview-panel{margin-inline:auto}
.overview-about,.overview-services,.overview-profile{padding:clamp(1.6rem,2.7vw,2.6rem)}
.overview-about{background:#fff}
.overview-services{border-right:1px solid var(--line);background:#fff}
.overview-profile{color:#fff;background:linear-gradient(180deg,#173f6c 0%,#0f3155 100%)}
.overview-profile .profile-panel-head{display:grid;grid-template-columns:76px 1fr;gap:1rem;align-items:center;margin-bottom:1.25rem}
.overview-profile .profile-placeholder{width:76px;margin:0;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);display:grid;place-items:center;text-align:center;font-size:.72rem}
.overview-profile strong{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(1.9rem,2.8vw,2.7rem);font-weight:400;line-height:1}
.overview-profile span{display:block;margin-top:.35rem;color:var(--green-3);font-size:.72rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.overview-profile .expertise-list{columns:1;margin-bottom:1.25rem}
.overview-profile .expertise-list li{font-size:.82rem;line-height:1.45}
@media (max-width:980px){
  .overview-about{grid-column:1 / -1}
  .overview-services{border-right:1px solid var(--line)}
}
@media (max-width:640px){
  .overview-panel{width:min(100% - 1.25rem,1180px);grid-template-columns:1fr}
  .overview-about,.overview-services,.overview-profile{grid-column:auto;border-right:0}
  .overview-about,.overview-services{border-bottom:1px solid var(--line)}
}
.overview-panel{width:min(100% - 3rem,1180px);margin:0 auto;display:grid;grid-template-columns:30% 70%;border:1px solid var(--line);background:var(--paper)}
.overview-about,.overview-services{padding:clamp(1.8rem,2.7vw,2.6rem);background:#fff}
.overview-about{position:relative;overflow:hidden;border-right:1px solid var(--line)}
.overview-about>*{position:relative;z-index:1}
.panel-title{margin:0;color:var(--navy);font-size:.9rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.compact-panel-heading{margin-bottom:1.25rem;text-align:center}
.compact-panel-heading .rule{margin-inline:auto}
.overview-about p:not(.panel-title){font-size:.88rem;line-height:1.72}
.button-green{background:var(--green-1);border-color:var(--green-1)}
.button-green:hover,.button-green:focus-visible{background:var(--navy);border-color:var(--navy)}
.overview-services .service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border:0;background:transparent}
.overview-services .service-card{min-height:0;background:transparent}
.overview-services .service-card:first-child{border-left:0}
.overview-services .icon-placeholder{border-width:2px}
.overview-services .service-card h3{color:var(--navy);font-family:Arial,Helvetica,sans-serif;font-size:.84rem}
.profile-band{margin:0 auto;color:#fff;background:linear-gradient(180deg,#173f6c 0%,#0f3155 100%);border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.profile-band-inner{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,3rem);align-items:center;padding:clamp(1.8rem,3vw,2.4rem)}
.profile-band-identity .profile-panel-head{display:grid;grid-template-columns:92px 1fr;gap:1rem;align-items:center}
.profile-band .profile-placeholder{width:92px;margin:0;aspect-ratio:1;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);display:grid;place-items:center;text-align:center;font-size:.72rem}
.profile-band strong{display:block;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(2rem,2.8vw,2.8rem);font-weight:400;line-height:1}
.profile-band span{display:block;margin-top:.35rem;color:var(--green-3);font-size:.74rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.profile-band .expertise-list{columns:2;column-gap:2rem;margin:0 0 1.25rem;padding:0;list-style:none}
.profile-band .expertise-list li{position:relative;break-inside:avoid;padding-left:1.25rem;font-size:.86rem;line-height:1.5;margin-bottom:.45rem}
.profile-band .expertise-list li::before{content:"✓";position:absolute;left:0;color:var(--green-3);font-weight:700}
@media (max-width:980px){
  .overview-panel{grid-template-columns:1fr}
  .overview-about{border-right:0;border-bottom:1px solid var(--line)}
  .overview-services .service-card{padding-block:1rem;border-top:1px solid var(--line)}
  .overview-services .service-card:nth-child(odd){border-left:0}
  .overview-services .service-card:nth-child(-n/**/+2){border-top:0}
  .profile-band-inner{grid-template-columns:1fr}
  .profile-band .expertise-list{columns:1}
}
@media (max-width:640px){
  .overview-panel,.profile-band{width:min(100% - 1.25rem,1180px)}
  .overview-services .service-card,.overview-services .service-card:nth-child(n){border-left:0;border-top:1px solid var(--line)}
  .overview-services .service-card:first-child{border-top:0}
  .profile-band-identity .profile-panel-head{grid-template-columns:78px 1fr}
  .profile-band .profile-placeholder{width:78px}
}
.overview-about,.overview-about p,.overview-about .panel-title,.overview-about a:not(.button){color:var(--navy)}
.icon-placeholder{width:58px;height:58px;margin:0 auto .9rem;display:grid;place-items:center;border:0;background:transparent;color:transparent;overflow:hidden}
.icon-placeholder img{display:block;width:100%;height:100%;object-fit:contain}
.hero{background:linear-gradient(90deg,rgba(255,255,255,.995) 0%,rgba(255,255,255,.985) 28%,rgba(255,255,255,.88) 40%,rgba(255,255,255,.45) 54%,rgba(255,255,255,.10) 66%,rgba(255,255,255,0) 78%),url("../images/hero-study.jpg") center right / cover no-repeat}
.hero-copy{width:min(46%,540px);min-width:440px}
h1{text-shadow:0 1px 0 rgba(255,255,255,.55)}
.overview-services .icon-placeholder{background:transparent}
@media (max-width:900px){
  .hero-copy{min-width:0}
}
.overview-about::after{bottom:-0.4rem}
.overview-services .icon-placeholder img{width:100%;height:100%;object-fit:contain}
.overview-about::after{position:absolute;left:-7.2rem;top:52%;transform:translateY(-50%);width:180px;height:320px;opacity:.95;pointer-events:none}
@media (max-width:1100px){
  .overview-about::after{left:-5.5rem;width:155px;height:280px}
}
@media (max-width:900px){
  .overview-about::after{left:-3.5rem;top:auto;bottom:-0.2rem;transform:none;width:145px;height:230px;opacity:.78;background-position:left bottom}
}
@media (max-width:640px){
  .overview-about::after{left:-1.7rem;width:118px;height:190px;opacity:.65}
}
.quote-band{padding:2.2rem clamp(1rem,4vw,3rem);border-block:1px solid var(--line);display:flex;align-items:center}
.quote-band blockquote{width:min(100%,760px);margin:0;padding-left:clamp(1rem,8vw,8rem);color:var(--navy);text-shadow:0 1px 0 rgba(255,255,255,.75)}
@media (max-width:700px){
  .quote-band{min-height:170px;background-position:72% center}
  .quote-band blockquote{width:min(72%,520px);padding-left:.25rem;font-size:clamp(1.05rem,5vw,1.45rem)}
}
.overview-services .service-card{padding-top:.7rem}
.overview-services .service-card h3{padding-inline:.15rem}
@media (max-width:1100px){
  .overview-services .icon-placeholder{width:150px;height:150px;margin-bottom:.6rem}
}
@media (max-width:900px){
  .overview-services .icon-placeholder{height:124px}
  .overview-services .service-card{padding-top:.85rem}
}
@media (max-width:640px){
  .overview-services .icon-placeholder{height:96px}
}
.overview-services .icon-placeholder{margin:0 auto .45rem}
.quote-band{min-height:150px;background:url("../images/yeats-panel.png") no-repeat center / cover,var(--cream)!important}
@media (max-width:900px){
  .quote-band{min-height:145px;background-size:cover;background-position:center}
}
@media (max-width:640px){
  .quote-band{min-height:165px;background-size:auto 100%;background-position:right center}
}
.overview-services{padding-top:1.5rem;padding-bottom:1.5rem}
.overview-services .service-card{padding:.25rem .55rem 0}
.overview-services .service-card h3{margin:0;line-height:1.35}
@media (max-width:900px){
  .overview-services .service-card{padding:.7rem .65rem}
  .overview-services .icon-placeholder{width:min(100px,72%);margin-bottom:.3rem}
}
@media (max-width:640px){
  .overview-services .icon-placeholder{margin-bottom:.35rem}
}
.overview-services .icon-placeholder{width:min(200px,100%);height:auto;margin-bottom:0}
.about-toggle{border:0;font:inherit;font-size:.78rem;font-weight:700;letter-spacing:.08em}
.overview-services{display:flex;flex-direction:column}
.at-a-glance{margin-top:auto;padding:1.1rem 1rem .25rem;border-top:1px solid var(--line);color:var(--navy)}
.at-a-glance-title{margin:0 0 .8rem;color:var(--green-1);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-align:center;text-transform:uppercase}
.at-a-glance ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none}
.at-a-glance li{min-width:0;padding:0 .65rem;border-left:1px solid var(--line);text-align:center}
.at-a-glance li:first-child{border-left:0}
.at-a-glance strong,.at-a-glance span{display:block}
.at-a-glance strong{font-size:.8rem;line-height:1.3}
.at-a-glance span{margin-top:.2rem;color:var(--muted);font-size:.72rem;line-height:1.35}
.about-expanded{width:min(100% - 3rem,1180px);margin:0 auto;border:1px solid var(--line);border-top:0;background:var(--cream)}
.about-expanded[hidden]{display:none}
.about-expanded-inner{max-width:900px;margin:0 auto;padding:clamp(1.6rem,3vw,2.5rem);color:var(--navy);columns:2;column-gap:3rem}
.about-expanded-inner p{margin-top:0;break-inside:avoid}
@media (max-width:900px){
  .at-a-glance ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .at-a-glance li:nth-child(3){border-left:0}
  .about-expanded-inner{columns:1}
}
@media (max-width:560px){
  .at-a-glance ul{grid-template-columns:1fr}
  .at-a-glance li,.at-a-glance li:nth-child(n){padding:.55rem 0;border-top:1px solid var(--line);border-left:0}
  .at-a-glance li:first-child{border-top:0}
  .about-expanded{width:min(100% - 1.25rem,1180px)}
}
.overview-services .service-grid{align-items:stretch}
.overview-services .service-card{height:100%;display:flex;flex-direction:column;align-items:center}
.overview-services .service-card h3{margin-top:0}
.at-a-glance-title{position:relative;display:inline-block;margin-bottom:1rem;padding-bottom:.55rem}
.at-a-glance-title::after{content:"";position:absolute;left:0;bottom:0;width:2.75rem;height:3px;background:var(--green-1)}
.overview-services .service-card{position:relative;border-left:0}
.overview-services .service-card + .service-card::before{content:"";position:absolute;left:0;top:1rem;bottom:1rem;width:1px;background:var(--line)}
.header-inner{position:relative}
.nav-marker{position:absolute;left:0;width:0;height:2px;background:var(--green-1);transform:translateX(0);opacity:0;pointer-events:none}
.nav-brand-link{position:relative}
.nav-brand-link[aria-current="page"] .brand-name{color:var(--navy)}
@media (min-width:901px){
  .nav-brand-link[aria-current="page"]{text-decoration:none}
  .nav-marker.is-visible{opacity:1}
}
@media (max-width:900px){
  .nav-marker{display:none}
  .nav-brand-link[aria-current="page"] .brand-name{text-decoration-line:underline;text-decoration-color:var(--green-1);text-decoration-thickness:2px;text-underline-offset:.35rem}
}
@media (min-width:901px){
  .site-nav a,.site-nav a:hover,.site-nav a:focus-visible,.site-nav a[aria-current="page"]{border-bottom-color:transparent}
  .nav-brand-link{display:inline-block}
  .nav-brand-link .brand-name{display:inline-block}
  .nav-brand-link[aria-current="page"] .brand-name{text-decoration:none}
}
.overview-services .service-card{padding-bottom:1rem}
.overview-services .service-card h3{margin-bottom:0}
@media (max-width:900px){
  .overview-services .service-card{padding-bottom:.85rem}
}
.nav-marker{top:0;bottom:auto;transition:transform .35s ease,width .35s ease,top .35s ease,opacity .2s ease}
@media (min-width:901px){
  .site-nav a:hover,.site-nav a:focus-visible{border-bottom-color:var(--green-1)}
  .site-nav a[aria-current="page"]{border-bottom-color:transparent}
  /* Contact has a higher-specificity base border rule. When it is the active
     desktop item the moving nav marker is the underline, so suppress the
     link's own border (including hover/focus) to avoid a double line. */
  .site-nav .contact-link[aria-current="page"],
  .site-nav .contact-link[aria-current="page"]:hover,
  .site-nav .contact-link[aria-current="page"]:focus-visible{border-bottom-color:transparent}
  .nav-marker.is-brand{bottom:auto}
}
.hero{margin-bottom:clamp(1.25rem,2.5vw,2rem)}
.about-toggle{appearance:none;cursor:pointer;font-family:inherit}
.about-details[hidden]{display:none}
.about-details{width:min(100% - 3rem,1180px);margin:0 auto;border:1px solid var(--line);border-top:0;background:var(--cream)}
.about-details-inner{padding:clamp(1.8rem,3vw,2.8rem);display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:clamp(1rem,2.5vw,2rem)}
.about-details-copy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.4rem,3vw,2.4rem);align-items:start}
.about-details-copy p{margin:0}
@media (min-width:801px){
  .about-details-copy p{margin:67px 0 0 0}
}
@media (max-width:800px){
  .hero{margin-bottom:1rem}
  .about-details,.overview-panel{width:min(100% - 1.25rem,1180px)}
  .about-details-inner{grid-template-columns:1fr}
  .about-details-copy{grid-template-columns:1fr;gap:1rem}
}
.overview-about{display:grid;grid-template-columns:1fr;align-content:start}
.about-photo-placeholder{width:150px;aspect-ratio:1;margin-top:1.4rem;border-radius:50%;border:2px solid var(--green-3);background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.35),transparent 42%),rgba(79,122,90,.08);display:grid;place-items:center;overflow:hidden;color:var(--green-1);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-align:center;text-transform:uppercase}
.about-photo-placeholder img{width:100%;height:100%;object-fit:cover;object-position:center}
@media (max-width:980px){
  .overview-about{grid-template-areas:"title" "rule" "photo" "summary" "button"}
  .overview-about .panel-title{grid-area:title}
  .overview-about>.rule{grid-area:rule}
  .overview-about>p:not(.panel-title){grid-area:summary}
  .overview-about .about-toggle{grid-area:button;justify-self:start}
  .about-photo-placeholder{grid-area:photo;width:132px;margin:.5rem 0 1.25rem}
}
@media (max-width:640px){
  .about-photo-placeholder{width:112px}
}
.about-details-intro{display:flex;flex-direction:column;align-items:flex-start}
.about-details-intro .about-photo-placeholder{width:188px;margin:1rem auto 0;align-self:center}
@media (max-width:800px){
  .about-details-intro{align-items:flex-start}
  .about-details-intro .about-photo-placeholder{width:152px;margin:1rem auto 0;align-self:center}
}
@media (max-width:640px){
  .about-details-intro .about-photo-placeholder{width:128px;margin-left:auto;margin-right:auto;align-self:center}
}
.featured-artwork{width:min(100%,260px);margin:0 auto 1.2rem;display:flex;justify-content:center;align-items:center;pointer-events:none}
.featured-artwork img{display:block;width:100%;height:auto;object-fit:contain}
@media (max-width:900px){
  .featured-artwork{width:min(78%,220px);margin-bottom:1rem}
}
.overview-about::after{content:none!important;display:none!important;background:none!important}
@media (max-width:640px){
  .overview-services{padding-inline:1rem}
  .overview-services .service-card,.overview-services .service-card:nth-child(n){min-height:0}
}
@media (max-width:420px){
  .overview-services .service-card h3{font-size:.9rem}
}
@media (max-width:640px){
  .overview-services .service-card,.overview-services .service-card:nth-child(n){grid-template-columns:72px minmax(0,1fr)}
  .featured-expertise .button,.featured-panel .button,.blue-panel .button,.expertise-panel .button{margin-left:auto;margin-right:auto}
  .featured-expertise ul,.featured-panel ul,.blue-panel ul,.expertise-panel ul{display:inline-block;text-align:left;margin-left:auto;margin-right:auto}
  .featured-artwork{margin-left:auto;margin-right:auto}
  .featured-expertise-inner,.featured-panel-inner,.blue-panel-inner,.expertise-panel-inner{justify-items:center}
}
@media (max-width:420px){
  .overview-services .service-card,.overview-services .service-card:nth-child(n){grid-template-columns:64px minmax(0,1fr);gap:.8rem;padding:.85rem .8rem}
}
@media (max-width:640px){
  .overview-services .service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .overview-services .service-card,.overview-services .service-card:nth-child(n){display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.45rem;min-width:0;border:1px solid var(--line);background:rgba(255,255,255,.78);text-align:center}
  .overview-services .service-card + .service-card{border-top:1px solid var(--line)}
  .overview-services .service-card + .service-card::before{display:none}
  .overview-services .icon-placeholder{margin:0 auto}
  .overview-services .service-card h3{margin:0;text-align:center;font-size:.9rem;line-height:1.35}
  .overview-services .service-card:last-child{grid-column:1 / -1;width:calc(50% - .375rem);justify-self:center}
  .featured-expertise,.featured-expertise-inner,.featured-panel,.blue-panel,.expertise-panel{text-align:initial}
}
.nav-toggle{display:none;width:44px;height:44px;padding:10px;border:1px solid var(--line);background:#fff;cursor:pointer}
.nav-toggle span{display:block;height:2px;margin:5px 0;background:var(--navy);transition:transform .25s ease,opacity .2s ease}
@media (max-width:640px){
  .header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem}
  .nav-toggle{display:block;justify-self:end}
  .site-nav{grid-column:1 / -1;width:100%;display:none}
  .site-nav.is-open{display:block}
  .site-nav ul{display:grid;grid-template-columns:1fr;gap:.5rem;margin-top:.75rem}
  .site-nav a,.site-nav .contact-link{display:block;width:100%;padding:.85rem 1rem;border:1px solid var(--line);background:#fff;text-align:left}
  .site-nav a[aria-current="page"]{color:var(--green-1);border-color:var(--green-1)}
  .nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-marker{display:none}
}
@media (max-width:980px){
  .overview-services .service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}
  .overview-services .service-card,.overview-services .service-card:nth-child(n){display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.5rem;min-width:0;padding:1.1rem .9rem;border:1px solid var(--line);background:rgba(255,255,255,.8);text-align:center}
  .overview-services .service-card + .service-card{border-top:1px solid var(--line)}
  .overview-services .service-card + .service-card::before{display:none}
  .overview-services .icon-placeholder{width:min(120px,100%);margin:0 auto}
  .overview-services .service-card h3{margin:0;text-align:center;line-height:1.35}
  .overview-services .service-card:last-child{grid-column:1 / -1;width:calc(50% - .45rem);justify-self:center}
}
@media (max-width:640px){
  .overview-services .service-grid{gap:.75rem}
  .overview-services .service-card,.overview-services .service-card:nth-child(n){padding:1rem .75rem}
  .overview-services .icon-placeholder{width:min(105px,100%)}
}
@media (max-width:420px){
  .overview-services .service-grid{grid-template-columns:1fr}
  .overview-services .service-card:last-child{grid-column:auto;width:100%}
  .overview-services .icon-placeholder{width:92px}
}
.overview-services .service-card:nth-child(1){background:rgba(111,143,121,.07)}
.overview-services .service-card:nth-child(2){background:rgba(79,122,90,.08)}
.overview-services .service-card:nth-child(3){background:rgba(166,185,169,.12)}
.overview-services .service-card:nth-child(4){background:rgba(40,51,77,.045)}
.overview-services .service-card:nth-child(5){background:rgba(248,245,239,.9)}
@media (max-width:980px){
  .overview-services .service-card:nth-child(1){background:rgba(111,143,121,.11)}
  .overview-services .service-card:nth-child(2){background:rgba(79,122,90,.12)}
  .overview-services .service-card:nth-child(3){background:rgba(166,185,169,.18)}
  .overview-services .service-card:nth-child(4){background:rgba(40,51,77,.07)}
  .overview-services .service-card:nth-child(5){background:rgba(248,245,239,.98)}
}
.about-details[aria-hidden="true"],.about-details[aria-hidden="false"]{display:grid}
.about-details{grid-template-rows:0fr;opacity:0;overflow:hidden;transition:grid-template-rows .5s ease,opacity .35s ease}
.about-details-reveal{min-height:0;overflow:hidden}
.about-details.is-open{grid-template-rows:1fr;opacity:1}
.about-toggle{transition:background-color .25s ease,transform .2s ease}
.about-toggle:hover,.about-toggle:focus-visible{transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){
  .about-details,.about-toggle{transition:none}
}
@media (max-width:900px){
  .hero{min-height:620px;align-items:end;background:linear-gradient( 180deg,rgba(255,255,255,.10) 0%,rgba(255,255,255,.18) 34%,rgba(255,255,255,.78) 64%,rgba(255,255,255,.98) 100% ),url("../images/hero-study.jpg") 64% center / cover no-repeat}
  .hero-inner{width:min(100% - 2rem,760px);padding-block:2rem 2.4rem}
  .hero-copy{width:min(100%,560px);max-width:560px;padding:1.35rem 1.4rem 1.45rem;background:rgba(255,255,255,.92);border:1px solid rgba(22,43,68,.10);box-shadow:0 10px 30px rgba(16,38,63,.10);backdrop-filter:blur(2px)}
  .hero-copy h1{margin-bottom:1rem;font-size:clamp(2.4rem,7vw,3.4rem);white-space:normal}
  .hero-copy p{max-width:34rem;font-size:1rem}
}
@media (max-width:640px){
  .hero{min-height:560px;background:linear-gradient( 180deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,.14) 32%,rgba(255,255,255,.74) 60%,rgba(255,255,255,.98) 100% ),url("../images/hero-study.jpg") 68% center / cover no-repeat}
  .hero-inner{width:min(100% - 1.25rem,760px);padding-block:1.25rem 1.5rem}
  .hero-copy{width:100%;max-width:none;padding:1.15rem 1.05rem 1.25rem}
  .hero-copy p{margin-bottom:1.15rem;font-size:.96rem}
  .hero-copy .button{width:100%;text-align:center}
}
@media (max-width:420px){
  .hero{min-height:520px;background-position:70% center}
}
@media (max-width:900px){
  .site-header{min-height:0;background:rgba(255,254,253,.98);box-shadow:0 4px 18px rgba(16,38,63,.08)}
  .header-inner{min-height:0}
}
@media (max-width:640px){
  .site-header{padding-top:env(safe-area-inset-top)}
  .header-inner{padding-block:.7rem}
  .site-nav.is-open{max-height:calc(100vh - 92px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain;padding-bottom:.5rem}
  .hero-copy h1{font-size:clamp(1.95rem,8.6vw,2.55rem);line-height:1.08}
}
@media (max-width:420px){
  .hero-copy h1{font-size:clamp(1.8rem,9.2vw,2.3rem)}
}
@media (min-width:901px){
  .site-header{position:fixed;top:0;z-index:2000}
  main{padding-top:var(--header-height)}
}
@media (max-width:900px){
  .site-header{position:sticky;top:0;left:auto;width:auto;transform:none;z-index:2000}
  main{padding-top:0}
}
@media (min-width:901px){
  .site-header{left:0;transform:none}
  .site-header .header-inner{margin-inline:auto}
}
.back-to-top{position:fixed;bottom:clamp(1rem,2.5vw,2rem);z-index:2500;display:grid;place-items:center;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:var(--navy);color:#fff;box-shadow:0 10px 24px rgba(16,38,63,.22);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background-color .2s ease}
.back-to-top span{display:block;font-size:1.55rem;line-height:1;transform:translateY(2px)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover,.back-to-top:focus-visible{background:var(--green-1)}
@media (max-width:640px){
  .back-to-top{width:44px;height:44px;bottom:.9rem}
}
@media (prefers-reduced-motion:reduce){
  .back-to-top{transition:none}
}
.back-to-top{right:max( 1rem,calc((100vw - var(--page-width)) / 2 + 1rem) )}
@media (max-width:640px){
  .back-to-top{right:.9rem}
}
.top-stage{position:relative;isolation:isolate;overflow:visible}
body{background-color:#ecebe8;background-repeat:no-repeat;background-position:top center;background-size:cover}
.site-shell{width:min(100%,var(--page-width));margin-inline:auto}
.hero,.overview-panel,.about-details,.profile-band,.section,.quote-band,footer{width:100%;max-width:var(--page-width);margin-left:auto;margin-right:auto}
.profile-band{width:100%;max-width:var(--page-width)}
.profile-band-inner{width:min(100% - 3rem,1180px);margin-inline:auto}
.overview-panel,.about-details{width:100%;max-width:var(--page-width)}
.overview-about,.overview-services{min-width:0}
.section,.quote-band,footer{box-sizing:border-box}
@media (max-width:1280px){
  body{background-size:auto 100vh}
}
@media (max-width:900px){
  body{background-attachment:scroll;background-size:auto 100vh}
  .overview-panel,.about-details,.profile-band,.section,.quote-band,footer{width:100%}
}
body{background-image:none;background-attachment:scroll}
.site-shell{background:var(--paper);box-shadow:0 0 0 1px rgba(22,43,68,.055),0 18px 55px rgba(22,43,68,.08)}
@media (max-width:1280px){
  body{background:#e7e8e3}
}
@media (min-width:901px){
  .site-shell{margin-inline:auto}
  .site-header{width:100%}
  .site-header .header-inner{width:min(calc(100% - 3rem),var(--page-width))}
}
@media (min-width:1440px){
  .site-header .header-inner{width:min(calc(100% - 5rem),var(--page-width))}
}
@media (max-width:900px){
  .site-shell{width:100%;margin-inline:0;box-shadow:none}
}
@media (min-width:901px){
  .site-shell{width:min(calc(100% - 4rem),var(--page-width));border-inline:1px solid rgba(22,43,68,.08);box-shadow:0 0 0 1px rgba(255,255,255,.55),0 18px 58px rgba(22,43,68,.11)}
}
@media (min-width:1440px){
  .site-shell{width:min(calc(100% - 7rem),var(--page-width))}
}
#resources{margin-block:clamp(1rem,2vw,1.75rem);padding-inline:clamp(1rem,2.5vw,2rem)}
#resources .section-heading{margin-bottom:0}
@media (max-width:900px){
  #resources{margin-block:.75rem}
  #resources .section-inner{padding:clamp(1.6rem,6vw,2.5rem)}
}
body{background:#e8e2d8}
@media (max-width:900px){
  body{background:#f3efe8}
}
.section,.quote-band,#resources,.profile-band,.about-details{margin-top:0;margin-bottom:0}
#resources{padding-top:0;padding-bottom:0}
#resources .section-inner{margin-top:0;margin-bottom:0}
.quote-band{border-bottom:1px solid rgba(22,43,68,.08)}
.quote-band + #resources::before{width:min(100% - 3rem,1180px);height:1px;margin:0 auto clamp(.75rem,1.5vw,1.25rem);background:rgba(22,43,68,.08)}
@media (min-width:901px){
  .site-shell{background:#fffefd}
}
.quote-band + #resources{margin-top:0}
.quote-band + #resources::before{content:none;display:none}
#resources{margin:0;padding:0;background:#fffefd}
#resources .section-inner{width:min(100% - 3rem,1180px);margin:0 auto;padding:clamp(2.5rem,6vw,5rem) 0;border:0;border-top:1px solid rgba(22,43,68,.09);background:transparent;box-shadow:none}
#resources + .section,#resources + .quote-band,#resources + section,.section + .section,.section + .quote-band,.quote-band + .section{margin-top:0}
.section,.quote-band,.profile-band,footer{margin-bottom:0}
@media (max-width:900px){
  #resources{padding-inline:0}
  #resources .section-inner{width:min(100% - 2rem,1180px);padding-block:clamp(2rem,8vw,3.5rem)}
}
#resources,#contact,#professional-learning,.quote-band{width:100%;margin-left:auto;margin-right:auto}


/* Kirstin's supplied handwritten header artwork */
.brand-artwork {
  display: block;
  width: clamp(245px, 25vw, 430px);
  height: auto;
  max-height: 68px;
  object-fit: contain;
  object-position: left center;
}

.nav-brand-link[aria-current="page"] .brand-artwork {
  opacity: 1;
}

@media (max-width: 900px) {
  .brand-artwork {
    width: clamp(220px, 48vw, 360px);
    max-height: 60px;
  }
}

@media (max-width: 640px) {
  .brand-artwork {
    width: min(68vw, 310px);
    max-height: 52px;
  }

  .brand-role {
    margin-top: .2rem;
  }
}

@media (max-width: 390px) {
  .brand-artwork {
    width: min(64vw, 245px);
  }
}


/* Refine the supplied header mark: larger name, tighter subtitle */
.brand-artwork {
  width: clamp(315px, 31vw, 520px);
  max-height: 82px;
}

.brand-role {
  margin-top: .1rem;
  font-size: .78rem;
  letter-spacing: .11em;
}

@media (max-width: 900px) {
  .brand-artwork {
    width: clamp(275px, 54vw, 430px);
    max-height: 72px;
  }

  .brand-role {
    letter-spacing: .1em;
  }
}

@media (max-width: 640px) {
  .brand-artwork {
    width: min(72vw, 350px);
    max-height: 62px;
  }

  .brand-role {
    margin-top: .05rem;
    font-size: .72rem;
    letter-spacing: .09em;
  }
}

@media (max-width: 390px) {
  .brand-artwork {
    width: min(69vw, 285px);
    max-height: 56px;
  }
}


/*
 * Fibonacci-balanced desktop header
 * Brand/navigation split: approximately 61.8% / 38.2%.
 */
@media (min-width: 901px) {
  :root {
    --header-height: 112px;
  }

  .site-header {
    min-height: var(--header-height);
    background: rgba(255, 254, 253, .985);
  }

  .site-header .header-inner {
    width: min(calc(100% - 4rem), 1180px);
    min-height: var(--header-height);
    display: grid;
    grid-template-columns: minmax(0, 1.618fr) minmax(max-content, 1fr);
    align-items: center;
    gap: clamp(2rem, 3.8vw, 4rem);
    padding-block: .7rem;
  }

  .brand {
    justify-self: start;
    align-self: center;
    min-width: 0;
  }

  .brand-artwork {
    width: clamp(360px, 32vw, 500px);
    max-height: 74px;
  }

  .brand-role {
    margin: .12rem 0 0 .15rem;
    font-size: .75rem;
    letter-spacing: .075em;
    line-height: 1.2;
  }

  .site-nav {
    justify-self: end;
    align-self: center;
  }

  .site-nav ul {
    flex-wrap: nowrap;
    gap: clamp(1.1rem, 1.65vw, 1.65rem);
  }

  .site-nav a,
  .site-nav .contact-link {
    padding: .6rem .05rem .55rem;
    font-size: .78rem;
    letter-spacing: .055em;
    white-space: nowrap;
  }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .site-header .header-inner {
    grid-template-columns: minmax(0, 1.45fr) minmax(max-content, 1fr);
    gap: 1.5rem;
  }

  .brand-artwork {
    width: clamp(315px, 34vw, 400px);
  }

  .site-nav ul {
    gap: .85rem;
  }

  .site-nav a,
  .site-nav .contact-link {
    font-size: .72rem;
    letter-spacing: .04em;
  }
}


/* --- Resources section --- */
.resources-section{
  background:linear-gradient(180deg,#fffefd 0%,#faf8f4 100%);
}
.resources-layout{
  display:grid;
  gap:2rem;
}
.resources-intro-grid{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);
  gap:clamp(1.5rem,3vw,2.75rem);
  align-items:center;
}
.resources-intro-copy{
  max-width:32rem;
}
.resources-intro-copy p:last-child{
  margin-bottom:0;
  font-size:1.05rem;
}
.resources-intro-image{
  overflow:hidden;
  border:1px solid rgba(22,43,68,.09);
  box-shadow:0 14px 40px rgba(16,38,63,.08);
  background:#f6f3ed;
}
.resources-intro-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  min-height:260px;
}
.resources-summary{
  max-width:980px;
  margin:0 auto;
  text-align:center;
}
.resources-summary p{
  margin:0;
  font-size:1.02rem;
  line-height:1.75;
}
.resources-summary a{
  color:var(--green-1);
  font-weight:700;
  text-decoration:none;
}
.resources-summary a:hover,
.resources-summary a:focus-visible{
  text-decoration:underline;
}
.resource-card-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1.25rem;
  align-items:stretch;
}
.resource-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:1.5rem 1.3rem 1.45rem;
  border:1px solid rgba(22,43,68,.14);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 24px rgba(16,38,63,.04);
}
.resource-card-head{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:1rem;
  align-items:center;
  margin-bottom:1rem;
}
.resource-card-thumb{
  width:92px;
  height:92px;
  border-radius:50%;
  overflow:hidden;
  background:#f5f2ec;
}
.resource-card-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.resource-card h3{
  margin:0;
  font-size:1rem;
  line-height:1.18;
}
.resource-accent{
  width:2.6rem;
  height:3px;
  margin-top:.8rem;
  background:var(--green-1);
}
.resource-card p{
  margin:.15rem 0 0;
  font-size:.94rem;
  line-height:1.65;
}
.resource-subtitle{
  margin-top:1rem !important;
  color:var(--green-1);
  font-weight:700;
}
.resource-card ul{
  margin:.55rem 0 0 1.1rem;
  padding:0;
}
.resource-card li{
  margin:.3rem 0;
  padding-left:.1rem;
  font-size:.92rem;
  line-height:1.48;
}
.resource-two-col-list{
  columns:2;
  column-gap:1.5rem;
}
.resource-note{
  margin-top:auto !important;
  padding-top:.85rem;
}
.resource-card-english{
  background:linear-gradient(180deg,#fcfdfb 0%,#f9fbf8 100%);
  border-color:rgba(79,122,90,.25);
}
.resource-card-literacy{
  background:linear-gradient(180deg,#fbfcff 0%,#f7f9fd 100%);
  border-color:rgba(78,116,173,.24);
}
.resource-card-literacy .resource-subtitle,
.resource-card-literacy .resource-accent{
  color:#4b74ad;
  background:#4b74ad;
}
.resource-card-schemes{
  background:linear-gradient(180deg,#fffdf9 0%,#fcf8f0 100%);
  border-color:rgba(194,145,70,.24);
}
.resource-card-schemes .resource-subtitle,
.resource-card-schemes .resource-accent{
  color:#c28f46;
  background:#c28f46;
}
.resource-card-bespoke{
  background:linear-gradient(180deg,#fffafb 0%,#fdf6f8 100%);
  border-color:rgba(178,111,132,.24);
}
.resource-card-bespoke .resource-subtitle,
.resource-card-bespoke .resource-accent{
  color:#b26f84;
  background:#b26f84;
}
.resources-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.4rem 1.6rem;
  border:1px solid rgba(22,43,68,.12);
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 26px rgba(16,38,63,.04);
}
.resources-cta h3{
  margin:0 0 .35rem;
  font-size:1.3rem;
}
.resources-cta p{
  margin:0;
}
@media (max-width:1180px){
  .resource-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:900px){
  .resources-intro-grid{
    grid-template-columns:1fr;
  }
  .resources-intro-copy{
    max-width:none;
  }
  .resources-intro-image img{
    min-height:220px;
  }
  .resource-card-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .resource-two-col-list{
    columns:1;
  }
  .resources-cta{
    flex-direction:column;
    align-items:flex-start;
  }
}
@media (max-width:640px){
  .resources-layout{
    gap:1.5rem;
  }
  .resources-summary{
    text-align:left;
  }
  .resource-card-grid{
    grid-template-columns:1fr;
  }
  .resource-card{
    padding:1.2rem 1rem 1.15rem;
  }
  .resource-card-head{
    grid-template-columns:76px minmax(0,1fr);
    gap:.85rem;
  }
  .resource-card-thumb{
    width:76px;
    height:76px;
  }
  .resources-cta{
    padding:1.2rem 1rem;
    align-items:stretch;
  }
  .resources-cta .button{
    width:100%;
    text-align:center;
  }
}


/* Resources v43 — mockup-inspired, without cropped-page thumbnails */
.resource-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.5rem;
  align-items: stretch;
}

.resource-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: clamp(1.4rem, 2.3vw, 2rem);
  border-radius: 18px;
  box-shadow: 0 10px 28px rgba(16, 38, 63, .045);
}

.resource-card-head {
  display: grid;
  grid-template-columns: 86px minmax(0, 1fr);
  gap: 1.1rem;
  align-items: center;
  margin-bottom: 1.2rem;
}

.resource-card h3 {
  margin: 0;
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.15;
}

.resource-title-rule {
  display: block;
  width: 2.8rem;
  height: 3px;
  margin-top: .8rem;
  background: currentColor;
}

.resource-icon {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: rgba(79, 122, 90, .09);
  color: var(--green-1);
}

.resource-icon svg,
.resources-cta-icon svg {
  width: 58px;
  height: 58px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resource-card > p:not(.resource-subtitle):not(.resource-note) {
  margin-top: 0;
  font-size: .98rem;
  line-height: 1.68;
}

.resource-subtitle {
  margin: 1.15rem 0 .65rem !important;
  padding-top: 1rem;
  border-top: 1px solid rgba(22, 43, 68, .12);
  color: currentColor;
  font-weight: 700;
}

.resource-check-list {
  display: grid;
  gap: .5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.resource-check-list li {
  position: relative;
  margin: 0;
  padding-left: 1.55rem;
  font-size: .94rem;
  line-height: 1.5;
}

.resource-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: .08rem;
  display: grid;
  place-items: center;
  width: 1rem;
  height: 1rem;
  border-radius: 50%;
  background: currentColor;
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
}

.resource-schemes-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem 1.25rem;
}

.resource-note {
  margin-top: auto !important;
  padding-top: 1rem;
}

.resource-card-english {
  color: var(--green-1);
  background: linear-gradient(180deg, #fcfdfb 0%, #f8fbf7 100%);
  border-color: rgba(79, 122, 90, .24);
}

.resource-card-literacy {
  color: #4b74ad;
  background: linear-gradient(180deg, #fbfcff 0%, #f6f9fd 100%);
  border-color: rgba(75, 116, 173, .24);
}

.resource-card-schemes {
  color: #b77d28;
  background: linear-gradient(180deg, #fffdf9 0%, #fcf7ee 100%);
  border-color: rgba(183, 125, 40, .24);
}

.resource-card-bespoke {
  color: #ad617a;
  background: linear-gradient(180deg, #fffafb 0%, #fdf5f8 100%);
  border-color: rgba(173, 97, 122, .24);
}

.resource-card h3,
.resource-card > p:not(.resource-subtitle):not(.resource-note),
.resource-card li,
.resource-card .resource-note {
  color: var(--navy);
}

.resource-card-literacy .resource-icon {
  background: rgba(75, 116, 173, .09);
}

.resource-card-schemes .resource-icon {
  background: rgba(183, 125, 40, .10);
}

.resource-card-bespoke .resource-icon {
  background: rgba(173, 97, 122, .09);
}

.resources-cta {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1.3rem 1.5rem;
}

.resources-cta-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  color: var(--green-1);
}

.resources-cta-icon svg {
  width: 48px;
  height: 48px;
}

.resources-cta h3 {
  margin: 0 0 .25rem;
}

.resources-cta p {
  margin: 0;
}

@media (max-width: 900px) {
  .resource-card-grid {
    grid-template-columns: 1fr;
  }

  .resource-card {
    padding: 1.45rem;
  }
}

@media (max-width: 640px) {
  .resource-card {
    padding: 1.2rem 1rem;
  }

  .resource-card-head {
    grid-template-columns: 68px minmax(0, 1fr);
    gap: .85rem;
  }

  .resource-icon {
    width: 62px;
    height: 62px;
  }

  .resource-icon svg {
    width: 46px;
    height: 46px;
  }

  .resource-card h3 {
    font-size: 1.2rem;
  }

  .resource-schemes-list {
    grid-template-columns: 1fr;
  }

  .resources-cta {
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
  }

  .resources-cta-icon {
    width: 42px;
    height: 42px;
  }

  .resources-cta-icon svg {
    width: 40px;
    height: 40px;
  }

  .resources-cta .button {
    grid-column: 1 / -1;
    width: 100%;
    text-align: center;
  }
}


/* Fix accidental coloured bars in resource cards */
.resource-card .resource-subtitle {
  background: transparent !important;
}

.resource-card-literacy .resource-subtitle {
  color: #4b74ad !important;
}

.resource-card-schemes .resource-subtitle {
  color: #b77d28 !important;
}

.resource-card-bespoke .resource-subtitle {
  color: #ad617a !important;
}


/* Add visual weight to the bespoke resource card */
.resource-card-fill {
  margin-top: auto;
  padding-top: 1.2rem;
}

.resource-card-fill-title {
  margin: 0 0 .7rem !important;
  color: #ad617a !important;
  font-size: .88rem !important;
  font-weight: 700;
}

.resource-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.resource-card-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: .45rem .75rem;
  border: 1px solid rgba(173, 97, 122, .23);
  border-radius: 999px;
  background: rgba(173, 97, 122, .075);
  color: var(--navy);
  font-size: .8rem;
  line-height: 1.25;
}

@media (max-width: 640px) {
  .resource-card-tags {
    display: grid;
    grid-template-columns: 1fr;
  }

  .resource-card-tags span {
    justify-content: center;
    text-align: center;
  }
}


/* Contact section built from the former Resources CTA */
.contact-section {
  background:
    linear-gradient(135deg, rgba(166, 185, 169, .18), rgba(248, 245, 239, .92));
}

.contact-feature {
  display: grid;
  grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
  padding: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid rgba(22, 43, 68, .13);
  border-radius: 20px;
  background: rgba(255, 254, 253, .96);
  box-shadow: 0 16px 42px rgba(16, 38, 63, .08);
}

.contact-feature-intro {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}

.contact-feature-icon {
  display: grid;
  place-items: center;
  width: 60px;
  height: 60px;
  color: var(--green-1);
}

.contact-feature-icon svg {
  width: 56px;
  height: 56px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.contact-feature-intro h2 {
  margin-bottom: 1rem;
  font-size: clamp(2rem, 3.5vw, 3.25rem);
}

.contact-feature-intro p {
  max-width: 34rem;
}

.contact-feature-intro a {
  color: var(--green-1);
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: .18em;
}

.contact-form {
  padding: clamp(1.3rem, 2.5vw, 2rem);
  border: 1px solid rgba(22, 43, 68, .12);
  border-radius: 16px;
  background: #fff;
}

.contact-form-trap {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.contact-form-status {
  margin: 1rem 0 0;
  padding: .75rem .9rem;
  border-left: 3px solid var(--green-1);
  background: rgba(79, 122, 90, .08);
  color: var(--navy);
  font-size: .9rem;
}

.contact-form-status.is-error {
  border-left-color: #9b3a35;
  background: rgba(155, 58, 53, .07);
}

.contact-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.form-field + .form-field,
.contact-form-row + .form-field {
  margin-top: 1rem;
}

.contact-form-row .form-field + .form-field {
  margin-top: 0;
}

.form-field label {
  display: block;
  margin-bottom: .45rem;
  color: var(--navy);
  font-size: .9rem;
  font-weight: 700;
}

.form-field label span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 400;
}

.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid rgba(22, 43, 68, .28);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}

.form-field input {
  min-height: 48px;
  padding: .7rem .8rem;
}

.form-field textarea {
  min-height: 170px;
  padding: .8rem;
  resize: vertical;
}

.form-field input:focus,
.form-field textarea:focus {
  outline: 3px solid rgba(79, 122, 90, .18);
  border-color: var(--green-1);
}

.contact-submit {
  margin-top: 1.15rem;
  cursor: pointer;
}

.contact-form-note {
  margin: .85rem 0 0;
  color: var(--muted);
  font-size: .78rem;
}

@media (max-width: 900px) {
  .contact-feature {
    grid-template-columns: 1fr;
  }

  .contact-feature-intro {
    grid-template-columns: 58px minmax(0, 1fr);
  }
}

@media (max-width: 640px) {
  .contact-feature {
    width: min(calc(100% - 1.25rem), 1180px);
    padding: 1.2rem 1rem;
    border-radius: 14px;
  }

  .contact-feature-intro {
    grid-template-columns: 46px minmax(0, 1fr);
    gap: .8rem;
  }

  .contact-feature-icon {
    width: 42px;
    height: 42px;
  }

  .contact-feature-icon svg {
    width: 40px;
    height: 40px;
  }

  .contact-form-row {
    grid-template-columns: 1fr;
  }

  .contact-form-row .form-field + .form-field {
    margin-top: 1rem;
  }

  .contact-form {
    padding: 1rem;
  }

  .contact-submit {
    width: 100%;
    text-align: center;
  }
}

/* Decorative desktop pull-cord navigation */
.section-pull {
  position: fixed;
  top: 8px;
  right: calc(
    max(.75rem, (100vw - min(calc(100vw - 6rem), var(--page-width))) / 2) - 70px
  );
  z-index: 2450;
  display: none !important;
  width: 74px;
  height: 272px;
  justify-items: center;
  background: transparent;
  filter: drop-shadow(0 5px 11px rgba(16, 38, 63, .10));
  pointer-events: none;
  touch-action: none;
  user-select: none;
}

.section-pull.is-dismissed {
  display: none !important;
}

.section-pull-bulb-wrap {
  position: relative;
  z-index: 3;
  width: 68px;
  height: 116px;
  overflow: visible;
  cursor: move;
  pointer-events: auto;
  touch-action: none;
}

.section-pull-bulb {
  position: relative;
  z-index: 2;
  display: block;
  width: 68px;
  height: 114px;
  object-fit: contain;
  object-position: center top;
  pointer-events: none;
  transform-origin: 50% 70%;
}

.section-pull-glow {
  position: absolute;
  top: 11px;
  left: 50%;
  z-index: 1;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background:
    radial-gradient(
      circle at 50% 42%,
      rgba(255, 248, 223, .95) 0%,
      rgba(248, 223, 142, .56) 24%,
      rgba(241, 197, 88, .16) 46%,
      rgba(241, 197, 88, .05) 58%,
      rgba(241, 197, 88, 0) 68%
    );
  filter: blur(.8px);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-50%) scale(.84);
  transition: opacity .35s ease, transform .45s ease;
}

.section-pull.is-lit .section-pull-glow {
  opacity: 1;
  transform: translateX(-50%) scale(1);
}

.section-pull.is-lit .section-pull-bulb {
  filter:
    brightness(1.035)
    drop-shadow(0 0 2px rgba(242, 207, 115, .28));
}

.section-pull-cord-hit {
  position: absolute;
  top: 91px;
  left: 17px;
  z-index: 4;
  width: 38px;
  height: 178px;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: grab;
  pointer-events: auto;
  touch-action: none;
}

.section-pull-cord-hit::before {
  content: "";
  position: absolute;
  inset: -8px -10px -18px;
  background: transparent;
}

.section-pull-cord-hit:active {
  cursor: grabbing;
}

.section-pull-cord {
  display: block;
  width: 38px;
  height: 138px;
  margin-top: -2px;
  overflow: visible;
  background: transparent;
  pointer-events: none;
  transform-origin: 50% 0;
}

.section-pull-cord-path {
  fill: none;
  stroke: var(--navy);
  stroke-width: 2.25;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .98;
}

.section-pull-bead {
  fill: var(--navy);
  stroke: none;
}

.section-pull-label {
  position: absolute;
  top: 232px;
  left: 50%;
  color: var(--green-1);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
  transform: translateX(-50%);
  white-space: nowrap;
}

.section-pull-close {
  position: absolute;
  top: -7px;
  right: -5px;
  z-index: 8;
  display: grid;
  width: 22px;
  height: 22px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(22, 43, 68, .22);
  border-radius: 50%;
  background: rgba(255, 254, 253, .96);
  box-shadow: 0 4px 10px rgba(16, 38, 63, .13);
  color: var(--navy);
  cursor: pointer;
  font: 700 16px/1 Arial, sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: scale(.85);
  transition: opacity .18s ease, transform .18s ease;
}

.section-pull:hover .section-pull-close {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}

.section-pull-close:hover {
  background: var(--navy);
  color: #fff;
}

.section-pull.is-pulling .section-pull-cord {
  animation: section-pull-stretch .22s ease-out forwards;
}

.section-pull.is-rebounding .section-pull-cord {
  animation: section-pull-rebound .78s cubic-bezier(.22, .8, .25, 1);
}

.section-pull.is-rebounding .section-pull-bulb {
  animation: section-pull-sway .78s ease-out;
}

@keyframes section-pull-stretch {
  from { transform: scaleY(1); }
  to { transform: scaleY(1.12); }
}

@keyframes section-pull-rebound {
  0% { transform: scaleY(1.12); }
  30% { transform: scaleY(.94); }
  54% { transform: scaleY(1.04); }
  76% { transform: scaleY(.99); }
  100% { transform: scaleY(1); }
}

@keyframes section-pull-sway {
  0% { transform: rotate(0); }
  30% { transform: rotate(-1.2deg); }
  56% { transform: rotate(.7deg); }
  80% { transform: rotate(-.25deg); }
  100% { transform: rotate(0); }
}

@media (prefers-reduced-motion: reduce) {
  .section-pull-bulb,
  .section-pull-cord,
  .section-pull-glow {
    animation: none !important;
    transition: none !important;
  }
}


/* Updated Resources hero artwork */
.resources-intro-image img {
  object-position: center center;
}

/* Navy-panel identity: centred handwritten logo lockup */
.profile-panel-brand {
  position: relative;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
  min-height: clamp(118px, 14vw, 156px);
  align-items: center !important;
  justify-items: center;
  text-align: center;
}

.profile-brand-copy {
  width: 100%;
  min-width: 0;
  padding-inline: clamp(.5rem, 2vw, 1.5rem);
}

.profile-logo-artwork {
  display: block;
  width: min(100%, 390px);
  height: auto;
  max-height: 84px;
  margin-inline: auto;
  object-fit: contain;
  object-position: center center;
}

.profile-brand-copy span {
  margin-top: .45rem;
  color: var(--green-3);
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  .profile-panel-brand {
    min-height: 120px;
  }

  .profile-logo-artwork {
    width: min(100%, 340px);
    max-height: 74px;
  }
}

@media (max-width: 640px) {
  .profile-panel-brand {
    min-height: auto;
  }

  .profile-brand-copy {
    padding-inline: 0;
  }

  .profile-logo-artwork {
    width: min(100%, 275px);
    max-height: 64px;
  }

  .profile-brand-copy span {
    font-size: .68rem;
    letter-spacing: .09em;
  }
}



/* Keep only a slim grey frame around the Contact panel. */
.contact-section {
  padding-block: clamp(1.35rem, 2.4vw, 2rem);
}

@media (max-width: 900px) {
  .contact-section {
    padding-block: 1.25rem;
  }
}

@media (max-width: 640px) {
  .contact-section {
    padding-block: .85rem;
  }
}

/* Inline enquiry link within the VCE English resource card */
.resource-card-english > p a {
  color: var(--green-1);
  font-weight: 700;
  text-underline-offset: .18em;
}

.resource-card-english > p a:hover,
.resource-card-english > p a:focus-visible {
  text-decoration-thickness: 2px;
}





/* Authoritative viewport gate for the decorative lightbulb.
   Hidden by default; enabled only on genuinely wide desktops. */
@media (min-width: 1640px) {
  .section-pull:not(.is-dismissed) {
    display: grid !important;
    right: auto;
    left: calc(
      max(1rem, (100vw - min(calc(100vw - 6rem), var(--page-width))) / 2)
      - 108px
    );
  }
}

@media (max-width: 1639px) {
  .section-pull,
  .section-pull:not(.is-dismissed) {
    display: none !important;
  }
}
