
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,500;1,600&display=swap');

:root{
 --forest:#183d2b; --green:#216341; --leaf:#56ad69; --mint:#edf5e9;
 --cream:#fffdf7; --warm:#fbfaf3; --yellow:#eff0b5; --line:#d9e3d9;
 --text:#273d31; --muted:#66776d;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--text);font:400 17px/1.7 "DM Sans",Arial,sans-serif}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{position:fixed!important;top:12px;left:12px;z-index:100000;width:auto;height:auto;padding:12px 16px;margin:0;overflow:visible;clip:auto;white-space:normal;background:#fff;color:#111;border-radius:8px;box-shadow:0 4px 18px rgba(0,0,0,.18)}
a{color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(1160px,calc(100% - 48px));margin:auto}
header{position:sticky;top:0;z-index:50;background:rgba(255,253,247,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{height:76px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font:600 15px "DM Sans"}
.brand img{width:39px;height:39px;object-fit:contain}
.navlinks{margin:0 0 0 auto;padding:0;display:flex;gap:27px;align-items:center;list-style:none}
.navlinks>li{position:relative;display:flex;align-items:center;list-style:none;margin:0;padding:0;height:76px}
.navlinks>li>a{display:flex;align-items:center;height:100%;text-decoration:none;font:500 13px/1 "DM Sans"}
.navlinks .sub-menu{display:block;visibility:hidden;opacity:0;position:absolute;z-index:100;top:76px;left:-18px;min-width:210px;margin:0;padding:12px 0;list-style:none;background:var(--cream);border:1px solid var(--line);box-shadow:0 14px 35px rgba(23,58,43,.12);transform:translateY(-7px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.navlinks .sub-menu li{display:block;height:auto;list-style:none;margin:0;padding:0}
.navlinks .sub-menu a{display:block;height:auto;padding:11px 18px;white-space:nowrap;font:500 13px/1.5 "DM Sans";transition:background .16s ease,padding-left .16s ease}
.navlinks .sub-menu a:hover,.navlinks .sub-menu a:focus{background:var(--mint);padding-left:22px}
.navlinks>li.menu-item-has-children>a:after{content:"";width:6px;height:6px;margin-left:8px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .18s ease,margin-top .18s ease}
.navlinks>li.menu-item-has-children:hover>a,.navlinks>li.menu-item-has-children:focus-within>a{color:var(--green);box-shadow:inset 0 -2px 0 var(--leaf)}
.navlinks>li.menu-item-has-children:hover>a:after,.navlinks>li.menu-item-has-children:focus-within>a:after{transform:rotate(225deg);margin-top:4px}
.navlinks>li.menu-item-has-children:hover>.sub-menu,.navlinks>li.menu-item-has-children:focus-within>.sub-menu{visibility:visible;opacity:1;transform:translateY(0);pointer-events:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 19px;border:1px solid var(--forest);text-decoration:none;font:600 13px "DM Sans";border-radius:2px}
.btn.primary{background:var(--forest);color:#fff}
.btn.text{border:0;padding-inline:4px}
.eyebrow{font:600 11px/1.2 "DM Sans";letter-spacing:.14em;text-transform:uppercase;color:#3c8d59}
.serif{font-family:"Lora",Georgia,serif}
.hero{padding:92px 0 82px;background:
 radial-gradient(circle at 83% 35%,rgba(91,176,107,.11),transparent 28%),
 linear-gradient(135deg,#fffdf7,#fbfcf6)}
.hero-grid{display:grid;grid-template-columns:1fr .92fr;gap:78px;align-items:center}
.hero h1{font:500 clamp(62px,7vw,98px)/.91 "Lora",Georgia,serif;letter-spacing:-.035em;margin:16px 0 24px;color:#263a30}
.hero h1 em{font-style:italic;color:var(--leaf);font-weight:500}
.hero p{font-size:18px;max-width:590px;color:#5e6f65}
.actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:30px}
.hero-art{position:relative;min-height:475px;display:grid;place-items:center;background:linear-gradient(145deg,#eef7eb,#e3f2e3);border-radius:36% 42% 10px 10px}
.hero-art img{width:78%}
.hero-caption{position:absolute;left:26px;right:26px;bottom:22px;background:rgba(255,255,255,.94);padding:17px 20px;border-left:2px solid #dbe84e;font:400 15px/1.35 "Lora",Georgia,serif}
.tags{display:flex;gap:9px;flex-wrap:wrap;margin-top:32px}.tag{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:11px;color:#64756b;background:#fff}
.stats{border-block:1px solid var(--line);background:#fcfdf9}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stat{padding:25px 24px;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat b{display:block;font:500 23px "Lora",Georgia,serif;color:var(--green)}.stat small{font-size:10px;color:#7a877f}
section{padding:96px 0}
/* The six-thread widget owns its own section padding; don't add an extra Elementor spacer around it. */
.section-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:76px;align-items:end;margin-bottom:50px}
h2{font:500 clamp(44px,5vw,67px)/1 "Lora",Georgia,serif;letter-spacing:-.025em;color:#263a30;margin:10px 0 18px}
h3{font:500 27px/1.15 "Lora",Georgia,serif;color:#263a30}
.lead{font-size:20px;color:#52685b}
.approach{background:#fff}
.approach-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:70px;align-items:center}
.approach-art{background:#edf5ed;padding:0;display:grid;place-items:center;min-height:430px}.approach-art img{width:92%}
.threads{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.thread{padding:27px 28px 27px 0;border-bottom:1px solid var(--line)}.thread:nth-child(even){padding-left:28px;border-left:1px solid var(--line)}
.thread span{font-size:10px;color:#4cad66}.thread h3{font-size:23px;margin:9px 0 8px}.thread p{font-size:14px;color:#69796f;margin:0}
.training{background:linear-gradient(145deg,#fffdf7,#f2f7ea)}
.training-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px}
.path-list{border-top:1px solid #cddbcf}.path{display:grid;grid-template-columns:125px 1fr auto;gap:20px;align-items:center;padding:27px 0;border-bottom:1px solid #cddbcf}.path strong{font:500 39px "Lora",Georgia,serif;color:var(--forest)}.path h3{font-family:"DM Sans";font-weight:600;font-size:20px;margin:0 0 3px}.path p{margin:0;color:#69796f;font-size:14px}
.teacher{background:#fff}.teacher-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:80px;align-items:center}.egg{min-height:510px;border-radius:48% 52% 46% 54% / 56% 45% 55% 44%;background:radial-gradient(circle at 58% 45%,rgba(219,229,73,.38),transparent 30%),linear-gradient(145deg,#e9f3e5,#fbf8d7);display:grid;place-items:center}.egg img{width:70%}.teacher h2{font-size:64px}.teacher .lead{font-size:18px}.rule{height:1px;background:var(--line);margin:28px 0}.credentials{display:flex;gap:22px;flex-wrap:wrap;font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.locations{background:#edf5e9}.locations-top{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end}.locations-list{display:grid;grid-template-columns:1fr 1fr;gap:50px;margin-top:48px}.place{border-top:2px solid var(--forest);padding-top:24px}.place h3{font-size:30px;margin:0 0 8px}.place p{margin:0 0 18px}.place a{font-size:13px;font-weight:600;text-decoration:none}
.cta{background:linear-gradient(110deg,#b4dd75,#8cc98a);text-align:center}.cta h2{font-size:68px}.cta p{max-width:680px;margin:0 auto 28px}
.pagehero{padding:82px 0;background:linear-gradient(135deg,#fbfcef,#f2f7e9)}.pagehero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:65px;align-items:center}.pagehero h1{font:500 clamp(58px,7vw,88px)/.95 "Lora",Georgia,serif;letter-spacing:-.035em;margin:14px 0 20px}.pagehero p{font-size:19px;max-width:700px}.pagehero img{width:260px;margin:auto}
.content{display:grid;grid-template-columns:1.45fr .55fr;gap:70px;align-items:start}.prose h2{font-size:54px}.prose h3{margin:42px 0 10px}.aside{background:linear-gradient(155deg,#eef6e6,#f7f5c9);padding:32px;border-radius:28px;position:sticky;top:105px}.aside h3{font-family:"DM Sans";font-size:23px;font-weight:600}
.info-list{list-style:none;padding:0;margin:20px 0}.info-list li{padding:11px 0;border-top:1px solid rgba(24,61,43,.14)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.card{background:#fff;border:1px solid var(--line);padding:28px}.card h3{margin-bottom:8px}.card p{color:#69796f}.card-link{display:block;position:relative;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.card-link:hover,.card-link:focus-visible{transform:translateY(-3px);border-color:#a9c8af;box-shadow:0 12px 28px rgba(24,61,43,.08);outline:none}.card-link:focus-visible{box-shadow:0 0 0 3px rgba(86,173,105,.2),0 12px 28px rgba(24,61,43,.08)}.card-link-arrow{display:inline-block;margin-top:8px;font-size:18px;color:var(--green);transition:transform .18s ease}.card-link:hover .card-link-arrow,.card-link:focus-visible .card-link-arrow{transform:translateX(4px)}
/* Location landing pages: spacing belongs between intro and cards, not between hero and section. */
.approach .locations-top{margin-bottom:0}.approach .locations-top+.six-thread-grid{margin-top:48px}
/* Venue block: one calm, aligned composition rather than separate Elementor islands. */
.tyn-venue-block{overflow:hidden;border:1px solid var(--line);background:var(--warm);display:block!important;padding:0!important;box-sizing:border-box}
.tyn-venue-media{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;align-items:stretch!important;width:100%!important}
.tyn-venue-photo,.tyn-venue-map{min-width:0!important;width:100%!important;height:380px!important;overflow:hidden}
.tyn-venue-photo .elementor-widget-image,.tyn-venue-photo .elementor-widget-container,.tyn-venue-photo img{width:100%!important;height:100%!important;margin:0!important}
.tyn-venue-photo .elementor-widget-image{position:absolute!important;inset:0!important}
.tyn-venue-photo{position:relative!important}
.tyn-venue-photo img{object-fit:cover!important;position:absolute!important;inset:0!important}
.tyn-venue-map{padding:0!important;background:#f3eee4;margin:0!important;align-self:stretch!important}
.tyn-venue-map .elementor-widget-google_maps,.tyn-venue-map .elementor-widget-container,.tyn-venue-map iframe{width:100%!important;height:100%!important;min-height:380px!important;margin:0!important;display:block!important;border:0!important}
.tyn-venue-details{display:grid!important;grid-template-columns:.72fr 1.28fr!important;gap:56px!important;align-items:start!important;padding:34px 40px 38px!important;border-top:1px solid var(--line);background:#f8fbf6;width:100%!important}
.tyn-venue-block{width:min(1160px,calc(100% - 48px))!important;margin:72px auto!important;border-radius:0!important;max-width:1160px!important}
.tyn-venue-details>.e-con,.tyn-venue-details>.elementor-element{min-width:0!important;width:auto!important}
.tyn-venue-address{font:500 30px/1.1 "Lora",Georgia,serif;color:var(--forest);margin:0}
.tyn-venue-copy{font:400 15px/1.7 "DM Sans",Arial,sans-serif;color:var(--muted);margin:0}
.tyn-venue-block .elementor-widget-heading,.tyn-venue-block .elementor-widget-text-editor{margin:0!important;padding:0!important}
.tyn-venue-block .elementor-widget-heading h2{font:500 32px/1.08 "Lora",Georgia,serif!important;color:var(--forest)!important;margin:0!important}
.tyn-venue-block .elementor-widget-text-editor,.tyn-venue-block .elementor-widget-text-editor p{font:400 15px/1.7 "DM Sans",Arial,sans-serif!important;color:var(--muted)!important;margin:0!important}
.tyn-venue-details h2{font-size:32px!important;line-height:1.08!important;margin:0!important;color:var(--forest)!important;font-family:"Lora",Georgia,serif!important}
.tyn-venue-details p{margin:0!important;color:var(--muted);font-size:15px;line-height:1.7;font-family:"DM Sans",Arial,sans-serif!important}
.tyn-venue-details strong{color:var(--text);font-weight:600}
/* Current location venue component */
.tyn-venue-section{width:min(1160px,calc(100% - 48px))!important;max-width:1160px!important;margin:82px auto!important;padding:0!important;display:block!important}
.tyn-venue-heading{display:grid!important;grid-template-columns:.8fr 1.2fr!important;gap:70px!important;align-items:end!important;margin:0 0 34px!important;padding:0!important}
.tyn-venue-heading .elementor-widget-heading,.tyn-venue-heading .elementor-widget-text-editor{width:auto!important;margin:0!important}
.tyn-venue-heading h2{font:500 44px/1.05 "Lora",Georgia,serif!important;letter-spacing:-.025em!important;color:var(--forest)!important;margin:0!important}
.tyn-venue-heading p{font:400 16px/1.7 "DM Sans",Arial,sans-serif!important;color:var(--muted)!important;margin:0!important}
.tyn-venue-visuals{display:grid!important;grid-template-columns:1fr 1fr!important;gap:24px!important;width:100%!important;margin:0!important;padding:0!important;align-items:stretch!important}
.tyn-venue-photo,.tyn-venue-map{width:100%!important;min-width:0!important;height:340px!important;margin:0!important;padding:0!important;overflow:hidden!important}
.tyn-venue-photo .elementor-widget-image,.tyn-venue-photo .elementor-widget-container,.tyn-venue-photo img{width:100%!important;height:340px!important;margin:0!important;padding:0!important;display:block!important}
.tyn-venue-photo img{object-fit:cover!important}
.tyn-venue-map .elementor-widget-google_maps,.tyn-venue-map .elementor-widget-container,.tyn-venue-map iframe{width:100%!important;height:340px!important;min-height:340px!important;margin:0!important;padding:0!important;display:block!important;border:0!important}
.tyn-venue-details{display:grid!important;grid-template-columns:170px 1fr!important;gap:36px!important;align-items:center!important;width:100%!important;margin:0!important;padding:24px 0 0!important;border:0!important;background:transparent!important}
.tyn-venue-details .elementor-widget-heading,.tyn-venue-details .elementor-widget-text-editor{width:auto!important;margin:0!important}
.tyn-venue-details h3{font:600 11px/1.2 "DM Sans",Arial,sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#3c8d59!important;margin:0!important}
.tyn-venue-details p{font:400 14px/1.65 "DM Sans",Arial,sans-serif!important;color:var(--muted)!important;margin:0!important}
.tyn-venue-details strong{color:var(--text)!important;font-weight:600!important}
@media(max-width:850px){.six-thread-grid{margin-top:34px}.tyn-venue-section{width:calc(100% - 32px)!important;margin:52px auto!important}.tyn-venue-heading{grid-template-columns:1fr!important;gap:10px!important;margin-bottom:24px!important}.tyn-venue-heading h2{font-size:36px!important}.tyn-venue-visuals{grid-template-columns:1fr!important;gap:14px!important}.tyn-venue-photo,.tyn-venue-map,.tyn-venue-photo .elementor-widget-image,.tyn-venue-photo .elementor-widget-container,.tyn-venue-photo img,.tyn-venue-map .elementor-widget-google_maps,.tyn-venue-map .elementor-widget-container,.tyn-venue-map iframe{height:260px!important;min-height:260px!important}.tyn-venue-details{grid-template-columns:1fr!important;gap:8px!important;padding-top:20px!important}}

/* Final venue visual lock: image and map must read as one matched pair. */
.tyn-venue-visuals{align-items:stretch!important}
.tyn-venue-visuals>.tyn-venue-photo,.tyn-venue-visuals>.tyn-venue-map{height:340px!important;min-height:340px!important;max-height:340px!important;overflow:hidden!important;position:relative!important}
.tyn-venue-visuals>.tyn-venue-photo .elementor-widget-image,.tyn-venue-visuals>.tyn-venue-photo .elementor-widget-container,.tyn-venue-visuals>.tyn-venue-photo img,.tyn-venue-visuals>.tyn-venue-map .elementor-widget-google_maps,.tyn-venue-visuals>.tyn-venue-map .elementor-widget-container,.tyn-venue-visuals>.tyn-venue-map iframe{position:absolute!important;inset:0!important;width:100%!important;height:340px!important;min-height:340px!important;max-height:340px!important;margin:0!important}
.tyn-venue-visuals>.tyn-venue-photo img{object-fit:cover!important}

/* Location page polish: remove the accidental spacer after the hero. */
.page-id-124 .elementor-element-e8100001,.page-id-126 .elementor-element-f9100001{padding-top:0!important}
/* Existing Elementor venue markup reshaped into: photo | map, then one full-width details strip. */
.page-id-124 .elementor-element-e8100002,.page-id-126 .elementor-element-f9100002{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:0!important;width:min(1160px,calc(100% - 48px))!important;max-width:1160px!important;margin:72px auto!important;padding:0!important;border:1px solid var(--line)!important;border-radius:0!important;background:var(--warm)!important;overflow:hidden!important}
.page-id-124 .elementor-element-e8100003,.page-id-126 .elementor-element-f9100003{display:contents!important}
.page-id-124 .elementor-element-a4100002,.page-id-126 .elementor-element-b5100002{grid-column:1;grid-row:1;height:380px!important;margin:0!important}
.page-id-124 .elementor-element-a4100002 .elementor-widget-container,.page-id-124 .elementor-element-a4100002 img,.page-id-126 .elementor-element-b5100002 .elementor-widget-container,.page-id-126 .elementor-element-b5100002 img{width:100%!important;height:100%!important;object-fit:cover!important;margin:0!important}
.page-id-124 .elementor-element-e8100004,.page-id-126 .elementor-element-f9100004{grid-column:2;grid-row:1;width:100%!important;height:380px!important;padding:0!important;margin:0!important;background:#f3eee4!important}
.page-id-124 .elementor-element-e8100004 .elementor-widget-google_maps,.page-id-124 .elementor-element-e8100004 .elementor-widget-container,.page-id-124 .elementor-element-e8100004 iframe,.page-id-126 .elementor-element-f9100004 .elementor-widget-google_maps,.page-id-126 .elementor-element-f9100004 .elementor-widget-container,.page-id-126 .elementor-element-f9100004 iframe{width:100%!important;height:380px!important;min-height:380px!important;margin:0!important;display:block!important}
.page-id-124 .elementor-element-e8100005,.page-id-126 .elementor-element-f9100005{grid-column:1 / 3;grid-row:2;width:100%!important;padding:32px 38px 36px!important;margin:0!important;border-top:1px solid var(--line)!important;background:#f8fbf6!important;display:grid!important;grid-template-columns:.72fr 1.28fr!important;gap:56px!important;align-items:start!important}
.page-id-124 .elementor-element-a4100006 h2,.page-id-126 .elementor-element-b5100006 h2{font:500 32px/1.08 "Lora",Georgia,serif!important;color:var(--forest)!important;margin:0!important}
.page-id-124 .elementor-element-a4100007,.page-id-124 .elementor-element-a4100007 p,.page-id-126 .elementor-element-b5100007,.page-id-126 .elementor-element-b5100007 p{font:400 15px/1.7 "DM Sans",Arial,sans-serif!important;color:var(--muted)!important;margin:0!important}
@media(max-width:850px){.page-id-124 .elementor-element-e8100002,.page-id-126 .elementor-element-f9100002{grid-template-columns:minmax(0,1fr)!important;width:calc(100% - 32px)!important;max-width:100%!important;margin:44px auto!important}.page-id-124 .elementor-element-a4100002,.page-id-126 .elementor-element-b5100002{grid-column:1;grid-row:1;height:280px!important;min-width:0!important}.page-id-124 .elementor-element-e8100004,.page-id-126 .elementor-element-f9100004{grid-column:1;grid-row:2;height:280px!important;min-width:0!important}.page-id-124 .elementor-element-e8100004 iframe,.page-id-126 .elementor-element-f9100004 iframe{height:280px!important;min-height:280px!important}.page-id-124 .elementor-element-e8100005,.page-id-126 .elementor-element-f9100005{grid-column:1;grid-row:3;grid-template-columns:minmax(0,1fr)!important;gap:18px!important;padding:26px 24px 30px!important;min-width:0!important}}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.person{background:#fff;border:1px solid var(--line);padding:25px}.person-art{aspect-ratio:1;border-radius:50% 50% 44% 56%;background:linear-gradient(145deg,#e9f3e5,#faf7d7);display:grid;place-items:center;margin-bottom:22px}.person-art img{width:65%}.person h3{margin-bottom:6px}

/* Teachers page: keep the Norwich guest team visually connected to the main team. */
.page-id-12 .teacher:has(.tyn-team-count-4){padding-top:36px}
@media(min-width:851px){
 .page-id-12 .tyn-team-count-4>.tyn-team-person:nth-child(4){grid-column:2}
}
.formgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.contactbox{background:var(--forest);color:#fff;padding:38px}.contactbox h2{color:#fff;font-size:50px}.field{display:grid;gap:7px;margin-bottom:18px}label{font-size:13px;font-weight:600}input,select,textarea{width:100%;padding:14px 15px;border:1px solid #ccd8cf;background:#fff;font:400 16px "DM Sans";color:var(--text)}textarea{min-height:160px}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
footer{background:#103d2a;color:#e6f0e9;padding:58px 0 24px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:48px}.footer-logo{width:62px;margin-bottom:16px}.footer-bwy-logo{width:92px;max-height:92px;object-fit:contain;object-position:left center;filter:none}.footer-accreditation p{max-width:300px;color:#d5e5d9;font-size:13px;line-height:1.65}.footer-accreditation strong{color:#fff;font-weight:600}.footer-grid h4{font:600 13px "DM Sans"}.footer-grid a{display:block;text-decoration:none;color:#d5e5d9;font-size:13px;margin:8px 0}.fine{margin-top:45px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);font-size:12px;color:#9eb4a4}
.photo-band{padding:0;background:#fff}.photo-band img{width:100%;height:430px;object-fit:cover;object-position:center}.photo-split{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:46px}.photo-card{min-height:360px;overflow:hidden;background:#eef4ea}.photo-card img{width:100%;height:100%;min-height:360px;object-fit:cover}.photo-caption{font-size:12px;color:#718078;margin-top:9px}.wide-photo{margin-top:48px}.wide-photo img{width:100%;height:460px;object-fit:cover}.location-photo{height:270px;overflow:hidden;margin-bottom:22px}.location-photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:850px){
 .navlinks{display:none}.navlinks.open{display:flex}.hero-grid,.section-head,.approach-grid,.training-grid,.teacher-grid,.locations-top,.pagehero-grid,.content,.formgrid{grid-template-columns:minmax(0,1fr)!important}
 .hero{padding:55px 0 58px}.hero-art{min-height:0}.stats-grid{grid-template-columns:1fr 1fr}.threads{grid-template-columns:1fr}.thread:nth-child(even){padding-left:0;border-left:0}.locations-list,.cards,.team-grid{grid-template-columns:minmax(0,1fr)!important}.footer-grid{grid-template-columns:1fr 1fr}.row{grid-template-columns:1fr}.teacher h2,.cta h2{font-size:50px}
 .hero-grid,.section-head,.approach-grid,.training-grid,.teacher-grid,.locations-top,.pagehero-grid,.content,.formgrid,.locations-list,.cards,.team-grid{gap:34px;min-width:0}
 .hero-grid>*,.section-head>*,.approach-grid>*,.training-grid>*,.teacher-grid>*,.locations-top>*,.pagehero-grid>*,.content>*,.formgrid>*{min-width:0;width:100%}
 section{padding:64px 0}.pagehero{padding:58px 0}.pagehero-grid{gap:26px}.pagehero img{width:min(180px,50vw)}
 .hero h1{font-size:clamp(48px,14vw,68px);line-height:.95}.pagehero h1{font-size:clamp(44px,13vw,64px);overflow-wrap:anywhere}.lead{font-size:18px}.teacher h2,.cta h2,.prose h2{font-size:clamp(38px,11vw,50px)}
 .path,.path-row{grid-template-columns:90px minmax(0,1fr)!important;gap:14px}.path>a,.path-row>a{grid-column:2}.path strong,.path-row>b{font-size:32px}
 .aside{position:static;top:auto}.photo-split{grid-template-columns:1fr}.photo-band img,.wide-photo img{height:auto;max-height:360px}.contactbox{padding:28px 24px}
}
/* Teacher training application */
.tyn-application-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:40px;align-items:end;margin:0 0 44px;padding:30px 32px;background:var(--mint);border:1px solid var(--line)}
.tyn-application-intro h2{font-size:42px;margin:8px 0 10px}.tyn-application-intro p{margin:0;max-width:720px;color:var(--muted)}
.tyn-application-form{display:grid;gap:32px;max-width:900px}.tyn-application-form fieldset{margin:0;padding:28px;border:1px solid var(--line);background:#fff}.tyn-application-form legend{padding:0 10px;font:500 28px/1.1 "Lora",Georgia,serif;color:var(--forest)}
.tyn-application-form textarea{min-height:130px}.tyn-application-form fieldset .field:last-child{margin-bottom:0}.tyn-application-form .row .field{margin-bottom:0}.tyn-application-form .row{margin-bottom:18px}
.tyn-commitment{background:#f8fbf6!important}.tyn-commitment p{color:var(--muted)}.tyn-check{display:flex;gap:12px;align-items:flex-start;margin-top:16px;font-weight:500}.tyn-check input{width:auto;margin-top:6px}.tyn-check span{flex:1}
.tyn-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-notice{max-width:900px;margin:0 0 28px;padding:16px 18px;border:1px solid var(--line)}.form-notice.success{background:#eef7eb;color:var(--forest)}.form-notice.error{background:#fff4f0;color:#7b2f22}
@media(max-width:850px){.tyn-application-intro{grid-template-columns:1fr;gap:22px}.tyn-application-intro .btn{justify-self:start}.tyn-application-form fieldset{padding:22px}.tyn-application-form .row{grid-template-columns:1fr!important;gap:0}.tyn-application-form .row .field{margin-bottom:18px}}

@media(max-width:560px){
 .wrap{width:calc(100% - 32px)}
 .nav{height:68px;gap:12px}.brand{gap:9px;font-size:14px;min-width:0}.brand img{width:36px;height:36px;flex:0 0 36px}.brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .stats-grid{grid-template-columns:1fr 1fr}.stat{padding:20px 14px}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--line)}
 .footer-grid{grid-template-columns:1fr;gap:28px}.footer-grid>div{min-width:0}
 .actions{align-items:stretch;gap:12px}.actions .btn{width:100%}
 .credentials{gap:12px 16px}.egg{min-height:0}
}

/* Cat feedback: mobile navigation */
.mobile-nav-toggle{display:none;border:1px solid #c8d5cb;background:#fff;color:var(--forest);width:46px;height:42px;border-radius:4px;font-size:22px;line-height:1;cursor:pointer;align-items:center;justify-content:center}
@media(max-width:850px){
 header .wrap{position:relative}
 .mobile-nav-toggle{display:flex;margin-left:auto}
 .navlinks.open{position:absolute;z-index:50;left:20px;right:20px;top:calc(100% + 8px);margin:0;background:#fff;border:1px solid #d7e1da;padding:10px;box-shadow:0 14px 35px rgba(23,58,43,.12);flex-direction:column;align-items:stretch;gap:0}
 .navlinks.open>li{display:block;width:100%;height:auto}
 .navlinks.open>li>a{display:flex;height:auto;min-height:44px;padding:12px 10px;border-bottom:1px solid #edf1ed;line-height:1.4}
 .navlinks.open>li.menu-item-has-children>a{justify-content:space-between}
 .navlinks.open>li.menu-item-has-children>a:after{margin-left:auto;margin-right:5px}
 .navlinks .sub-menu,.navlinks>li.menu-item-has-children:hover>.sub-menu,.navlinks>li.menu-item-has-children:focus-within>.sub-menu{position:static;display:block;visibility:visible;opacity:1;transform:none;pointer-events:auto;min-width:0;margin:0;padding:4px 0 4px 16px;border:0;box-shadow:none;background:#f8fbf6}
 .navlinks .sub-menu a{font-size:12px;padding:10px;line-height:1.4}
 .navlinks>li.menu-item-has-children:hover>a,.navlinks>li.menu-item-has-children:focus-within>a{box-shadow:none}
 .header-cta{display:none}
}


/* Cat feedback: logo caption no longer obscures the logo */
.hero-art .logo-caption,.logo-caption{
 position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;
 margin:18px 22px 0!important;
}
/* Cat feedback: softer large CTA surface for easier reading */
.cta,.final-cta,.open-day,.open-day-cta,.cta-band{
 background:#f1f6ea!important;color:var(--forest)!important;
}


/* Cat feedback v2: keep the entire logo unobscured */
.hero-art{
  min-height:0!important;
  padding:36px 28px 24px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:stretch!important;
  box-sizing:border-box!important;
}
.hero-art>img{
  position:relative!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
}
.hero-art .hero-caption{
  position:relative!important;
  inset:auto!important;
  width:auto!important;
  margin:24px 0 0!important;
  padding:17px 20px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  z-index:1!important;
}
@media(max-width:850px){
  .hero-art{padding:26px 20px 22px!important}
  .hero-art .hero-caption{margin-top:18px!important}
}


/* Mobile menu alignment: keep hamburger pinned to far right */
@media(max-width:850px){
  header .wrap.nav{display:flex!important;align-items:center!important;justify-content:space-between!important}
  .mobile-nav-toggle{margin-left:auto!important;flex:0 0 46px!important}
}



/* === WordPress + Elementor bridge === */
body{overflow-x:hidden}
.site-main,.tyn-elementor-page{margin:0;padding:0}
.elementor-page .site-main > .elementor,
.tyn-elementor-page > .elementor{margin:0!important;padding:0!important}
.elementor-widget-tyn_home_hero,
.elementor-widget-tyn_stats,
.elementor-widget-tyn_approach_feature,
.elementor-widget-tyn_photo_band,
.elementor-widget-tyn_training_pathway,
.elementor-widget-tyn_teacher_feature,
.elementor-widget-tyn_locations_summary,
.elementor-widget-tyn_cta,
.elementor-widget-tyn_page_hero,
.elementor-widget-tyn_six_threads,
.elementor-widget-tyn_team_grid,
.elementor-widget-tyn_location_details,
.elementor-widget-tyn_contact{
  margin:0!important;
  padding:0!important;
}
.elementor-widget-container{margin:0!important}
.elementor-element.elementor-widget{--kit-widget-spacing:0px}
.navlinks{list-style:none;padding:0}
.navlinks li{margin:0}
.navlinks a{display:block}
.green{color:var(--leaf)}
.pathway{border-top:1px solid #cddbcf}
.path-row{display:grid;grid-template-columns:125px 1fr auto;gap:20px;align-items:center;padding:27px 0;border-bottom:1px solid #cddbcf}
.path-row>b{font:500 39px "Lora",Georgia,serif;color:var(--forest)}
.path-row h3{font-family:"DM Sans";font-weight:600;font-size:20px;margin:0 0 3px}
.path-row p{margin:0;color:#69796f;font-size:14px}
.path-row a{text-decoration:none;font-size:20px}
.contact-section{padding:96px 0;background:var(--cream)}
.contactbox .eyebrow{color:#b9e57a}
.contactbox a{color:#fff}
.contactbox p{margin:0 0 22px}
.contactbox strong{font-weight:700}
.location-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.location-detail-grid .place{border-top:2px solid var(--forest);padding-top:24px}
.location-detail-grid .place h3{margin:0 0 8px}
.team-grid .person img{width:100%;aspect-ratio:1;object-fit:contain;background:linear-gradient(145deg,#e9f3e5,#faf7d7);padding:22px;margin-bottom:22px;border-radius:50% 50% 44% 56%}
.cards.six-thread-grid{grid-template-columns:repeat(3,1fr)}
.cards.six-thread-grid .card{min-height:208px}
.form-notice{padding:12px 14px;margin-bottom:18px;border:1px solid var(--line);background:#fff}
.form-notice.success{border-color:#7bae75}
.form-notice.error{border-color:#bc7777}

/* Elementor editor: give each custom design widget a clear outline/name without altering front end. */
.elementor-editor-active .elementor-widget[class*="elementor-widget-tyn_"]{
  outline:1px dashed rgba(60,141,89,.22);
}

/* The approved mockup's final Cat-requested CTA treatment is pale, except the contact Open Day band. */
.cta:not(.contact-open-day){background:#f1f6ea!important;color:var(--forest)!important}
.cta.contact-open-day{background:#f1f6ea!important;color:var(--forest)!important}

@media(max-width:850px){
  .location-detail-grid{grid-template-columns:1fr}
  .cards.six-thread-grid{grid-template-columns:1fr}
}

/* v2.2 Teachers parity */
.elementor-widget-tyn_annie_feature > .elementor-widget-container > section{
  padding:96px 0;
  background:#fff;
}
.elementor-widget-tyn_annie_feature .teacher-grid{
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:80px;
  align-items:center;
}
.elementor-widget-tyn_team_grid .person img{
  width:65%;
  aspect-ratio:auto;
  object-fit:contain;
  background:transparent;
  padding:0;
  margin:0;
  border-radius:0;
}
.elementor-widget-tyn_team_grid .person{
  background:#fff;
  border:1px solid var(--line);
  padding:25px;
}
.elementor-widget-tyn_team_grid .person::before{
  content:"";
  display:block;
  aspect-ratio:1;
  border-radius:50% 50% 44% 56%;
  background:linear-gradient(145deg,#e9f3e5,#faf7d7);
  position:absolute;
  inset:25px 25px auto 25px;
  z-index:0;
}
.elementor-widget-tyn_team_grid .person{position:relative}
.elementor-widget-tyn_team_grid .person img{
  display:block;
  position:relative;
  z-index:1;
  margin:calc((100% - 50px) * .175) auto calc((100% - 50px) * .175 + 22px);
}
@media(max-width:850px){
  .elementor-widget-tyn_annie_feature .teacher-grid{grid-template-columns:minmax(0,1fr)!important;gap:40px!important;width:calc(100% - 32px)!important;max-width:100%!important;margin-inline:auto!important}
  .elementor-widget-tyn_annie_feature .teacher-grid>*{min-width:0!important;width:100%!important}
  .elementor-widget-tyn_annie_feature > .elementor-widget-container > section{padding:64px 0}
}

/* v2.3 dynamic Wider Team repeater */
.elementor-widget-tyn_team_grid .team-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
@media(min-width:851px){
  .elementor-widget-tyn_team_grid .team-grid.tyn-team-count-1{
    grid-template-columns:minmax(0,1fr);
    max-width:380px;
  }
  .elementor-widget-tyn_team_grid .team-grid.tyn-team-count-2{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:850px){
  .elementor-widget-tyn_team_grid .team-grid{
    grid-template-columns:1fr;
  }
}

/* Keep the original approved breathing room around the portrait column. */
.elementor-widget-tyn_annie_feature .teacher-grid{
  align-items:center;
}

/* Tablet/mobile: slightly less tall egg so portraits don't dominate. */
@media(max-width:850px){
  .elementor-widget-tyn_annie_feature .egg{
    max-width:360px;
  }
}

/* Turn the existing decorative pseudo-element into the visible portrait frame. */
.elementor-widget-tyn_team_grid .person::before{
  content:"";
  display:block;
  width:calc(100% - 50px);
  aspect-ratio:1;
  border-radius:50% 50% 44% 56% / 44% 44% 56% 56%;
  background:linear-gradient(145deg,#e9f3e5,#faf7d7);
  position:relative;
  inset:auto;
  margin:0 auto 22px;
  z-index:0;
}

/* Place the actual uploaded image directly over that frame and crop it to match. */
.elementor-widget-tyn_team_grid .person img{
  position:absolute!important;
  z-index:1!important;
  top:25px;
  left:25px;
  width:calc(100% - 50px)!important;
  height:auto!important;
  aspect-ratio:1;
  object-fit:cover!important;
  object-position:center center;
  border-radius:50% 50% 44% 56% / 44% 44% 56% 56%!important;
  margin:0!important;
  padding:0!important;
  display:block;
}

/* Keep headings/content in normal flow below the portrait. */
.elementor-widget-tyn_team_grid .person h3,
.elementor-widget-tyn_team_grid .person p{
  position:relative;
  z-index:2;
}

/* v2.6 Wider Team: circular portrait inside the existing organic egg */
.elementor-widget-tyn_team_grid .person{
  position:relative;
  background:#fff;
  border:1px solid var(--line);
  padding:25px 25px 44px!important;
}

/* Keep the approved pale green/yellow egg as a separate background shape. */
.elementor-widget-tyn_team_grid .person::before{
  content:"";
  display:block;
  width:calc(100% - 50px);
  aspect-ratio:1;
  border-radius:50% 50% 44% 56% / 44% 44% 56% 56%;
  background:linear-gradient(145deg,#e9f3e5,#faf7d7);
  margin:0 auto 22px;
  position:relative;
  z-index:0;
}

/* Real teacher photos sit as a clean circle inside the egg, like the logo treatment. */
.elementor-widget-tyn_team_grid .person img{
  position:absolute!important;
  z-index:1!important;
  top:calc(25px + 8.5%);
  left:50%;
  transform:translateX(-50%);
  width:58%!important;
  aspect-ratio:1;
  height:auto!important;
  object-fit:cover!important;
  object-position:center center;
  border-radius:50%!important;
  padding:0!important;
  margin:0!important;
  background:#fff;
  box-shadow:0 0 0 5px #fff;
  display:block;
}

/* Headings and copy remain below the egg in normal flow. */
.elementor-widget-tyn_team_grid .person h3,
.elementor-widget-tyn_team_grid .person p{
  position:relative;
  z-index:2;
}

@media(max-width:850px){
  .elementor-widget-tyn_team_grid .person img{
    width:54%!important;
    top:calc(24px + 10%);
  }
}

/* v2.7 Annie portrait: circular image inside the organic egg */
.elementor-widget-tyn_annie_feature .egg{
  position:relative;
  width:100%;
  max-width:440px;
  aspect-ratio:.84;
  overflow:visible!important;
  border-radius:50% 50% 44% 56% / 38% 38% 62% 62%;
  background:linear-gradient(145deg,#e9f3e5,#faf7d7);
  margin:0 auto;
}

/* Keep the egg visible as the outer shape. */
.elementor-widget-tyn_annie_feature .egg::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:inherit;
  z-index:0;
}

/* Portrait becomes a centered circle inside the egg, matching the logo treatment. */
.elementor-widget-tyn_annie_feature .egg img{
  position:absolute!important;
  z-index:1!important;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:66%!important;
  aspect-ratio:1;
  height:auto!important;
  object-fit:cover!important;
  object-position:center center;
  border-radius:50%!important;
  padding:0!important;
  margin:0!important;
  background:#fff;
  box-shadow:0 0 0 6px #fff;
  display:block;
}

/* Keep the original approved alignment. */
.elementor-widget-tyn_annie_feature .teacher-grid{
  align-items:center;
}

@media(max-width:850px){
  .elementor-widget-tyn_annie_feature .egg{
    max-width:360px;
  }
  .elementor-widget-tyn_annie_feature .egg img{
    width:64%!important;
    box-shadow:0 0 0 5px #fff;
  }
}


/* v2.8 adjustable full-width photo band */
.elementor-widget-tyn_photo_band .photo-band.tyn-photo-band-custom{
  height:var(--tyn-photo-height,380px)!important;
  min-height:0!important;
  overflow:hidden!important;
  margin:0!important;
  padding:0!important;
}
.elementor-widget-tyn_photo_band .photo-band.tyn-photo-band-custom img{
  width:100%!important;
  height:100%!important;
  display:block;
  object-fit:cover!important;
  object-position:var(--tyn-photo-position,center center)!important;
}
@media(max-width:850px){
  .elementor-widget-tyn_photo_band .photo-band.tyn-photo-band-custom{
    height:var(--tyn-photo-mobile-height,260px)!important;
  }
}

/* Keep photo bands cinematic on very wide / ultrawide displays.
   A fixed ~380px band becomes a thin, over-enlarged strip at 2K+ widths,
   so cap the image canvas and give it more vertical presence. */
@media(min-width:2000px){
  .elementor-widget-tyn_photo_band{
    overflow:hidden;
  }
  .elementor-widget-tyn_photo_band .photo-band.tyn-photo-band-custom{
    width:min(2200px,calc(100vw - 96px))!important;
    height:clamp(500px,18vw,620px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}


/* v2.9 individual teacher profiles */
.tyn-teacher-profile-hero{
  padding:110px 0 100px;
  background:#fff;
}
.tyn-teacher-profile-grid{
  display:grid;
  grid-template-columns:minmax(360px, .88fr) minmax(0, 1.12fr);
  gap:90px;
  align-items:center;
}
.tyn-teacher-profile-portrait{
  display:flex;
  justify-content:center;
}
.tyn-teacher-profile-egg{
  width:min(100%, 500px);
  aspect-ratio: .82 / 1;
  border-radius:50% 50% 46% 46% / 44% 44% 56% 56%;
  background:linear-gradient(145deg,#edf5e7 0%,#fbf7d8 100%);
  display:grid;
  place-items:center;
  padding:58px;
}
.tyn-teacher-profile-circle{
  width:100%;
  aspect-ratio:1;
  border-radius:50%;
  overflow:hidden;
  background:#fff;
}
.tyn-teacher-profile-circle img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
}
.tyn-teacher-profile-heading h1{
  margin:12px 0 24px;
  font-family:"Lora",serif;
  font-size:clamp(54px,5vw,82px);
  line-height:1.02;
  font-weight:500;
  color:#203a30;
}
.tyn-teacher-profile-heading .lead{
  max-width:760px;
}
.tyn-profile-credentials{
  flex-wrap:wrap;
}
.tyn-teacher-location{
  margin-top:28px;
  color:#465b53;
}
.tyn-teacher-bio-section{
  padding:105px 0 115px;
  background:#f7f7ef;
}
.tyn-teacher-bio-grid{
  display:grid;
  grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);
  gap:100px;
  align-items:start;
}
.tyn-teacher-bio-side{
  position:sticky;
  top:120px;
}
.tyn-teacher-bio-side h2{
  margin-top:12px;
  font-size:clamp(38px,3.6vw,58px);
  line-height:1.08;
}
.tyn-teacher-bio{
  font-size:19px;
  line-height:1.8;
  color:#304a40;
}
.tyn-teacher-bio > *:first-child{margin-top:0}
.tyn-teacher-bio h2,
.tyn-teacher-bio h3{
  color:#203a30;
  margin-top:1.7em;
}
.tyn-specialisms{
  margin-top:38px;
  padding-top:24px;
  border-top:1px solid #cbd8cd;
  display:flex;
  flex-wrap:wrap;
  gap:9px;
}
.tyn-specialisms-title{
  width:100%;
  margin-bottom:5px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:#26834f;
}
.tyn-specialisms span{
  display:inline-block;
  padding:8px 12px;
  border:1px solid #cbd8cd;
  border-radius:999px;
  background:#fff;
  font-size:13px;
}
.tyn-teacher-profile-cta{
  padding:90px 0 100px;
  text-align:center;
  background:#eef5e9;
}
.tyn-teacher-profile-cta .wrap{
  max-width:900px;
}
.tyn-teacher-profile-cta h2{
  margin:10px 0 18px;
  font-size:clamp(46px,5vw,70px);
}
.tyn-teacher-profile-cta p{
  max-width:700px;
  margin:0 auto 30px;
  font-size:18px;
  line-height:1.7;
}
.tyn-teacher-profile-cta .actions{
  justify-content:center;
}

/* Team cards can now link to individual profiles. */
.team-grid .tyn-team-person{
  color:inherit;
  text-decoration:none;
  transition:transform .2s ease, box-shadow .2s ease;
}
.team-grid a.tyn-team-person:hover{
  transform:translateY(-3px);
  box-shadow:0 12px 28px rgba(31,59,48,.08);
}
.tyn-profile-link-label{
  display:inline-block;
  margin-top:14px;
  font-size:13px;
  font-weight:700;
  color:#174d38;
}

@media(max-width:900px){
  .tyn-teacher-profile-hero{padding:70px 0 75px}
  .tyn-teacher-profile-grid{
    grid-template-columns:1fr;
    gap:55px;
  }
  .tyn-teacher-profile-egg{
    width:min(82vw,460px);
    padding:46px;
  }
  .tyn-teacher-profile-heading{text-align:center}
  .tyn-teacher-profile-heading .rule{margin-left:auto;margin-right:auto}
  .tyn-profile-credentials{justify-content:center}
  .tyn-teacher-bio-section{padding:75px 0}
  .tyn-teacher-bio-grid{
    grid-template-columns:1fr;
    gap:45px;
  }
  .tyn-teacher-bio-side{position:static}
}
@media(max-width:560px){
  .tyn-teacher-profile-egg{
    width:92vw;
    padding:34px;
  }
  .tyn-teacher-profile-heading h1{font-size:46px}
  .tyn-teacher-bio{font-size:17px}
}

/* v2.10 tighter teacher profiles */
.tyn-teacher-profile-hero{padding:68px 0 72px!important}
.tyn-teacher-profile-grid{grid-template-columns:minmax(330px,.82fr) minmax(0,1.18fr)!important;gap:68px!important}
.tyn-teacher-profile-egg{width:min(100%,430px)!important;padding:48px!important}
.tyn-teacher-profile-heading h1{margin-bottom:20px!important}
.tyn-teacher-bio-section{padding:82px 0 90px!important}
.tyn-annie-profile-link{display:inline-block;margin-top:24px;color:#174d38;font-size:13px;font-weight:700;text-decoration:none}
.tyn-annie-profile-link:hover{text-decoration:underline}
@media(max-width:900px){
.tyn-teacher-profile-hero{padding:55px 0 60px!important}
.tyn-teacher-profile-grid{grid-template-columns:minmax(0,1fr)!important;gap:42px!important}
.tyn-teacher-profile-grid>*{min-width:0!important;width:100%!important}
.tyn-teacher-profile-egg{width:min(80vw,400px)!important;padding:42px!important}
}
@media(max-width:560px){
.tyn-teacher-profile-egg{width:min(100%,360px)!important;padding:28px!important}
.tyn-teacher-profile-heading h1{font-size:clamp(40px,13vw,50px)!important}
.tyn-teacher-profile-heading .lead{font-size:17px}
.tyn-teacher-profile-cta{padding:62px 0 70px}.tyn-teacher-profile-cta h2{font-size:clamp(38px,11vw,48px)}
}

/* v2.11 Annie profile CTA */
.elementor-widget-tyn_annie_feature .tyn-annie-profile-link{
  display:inline-flex!important;align-items:center;gap:9px;
  margin-top:26px!important;padding:12px 18px;
  border:1px solid #174d38;border-radius:2px;
  background:transparent;color:#174d38!important;
  font-size:12px!important;font-weight:700!important;
  letter-spacing:.04em;line-height:1;text-decoration:none!important;
  transition:background-color .18s ease,color .18s ease;
}
.elementor-widget-tyn_annie_feature .tyn-annie-profile-link:hover{
  background:#174d38;color:#fff!important;text-decoration:none!important;
}

/* v2.12 mobile rhythm: keep sections distinct without desktop-sized voids. */
@media(max-width:850px){
  section{padding:52px 0}
  .pagehero{padding:50px 0}
  .tyn-teacher-bio-section{padding:52px 0!important}
  .tyn-teacher-profile-cta{padding:52px 0 56px!important}
}
@media(max-width:560px){
  section{padding:46px 0}
  .pagehero{padding:46px 0}
  .tyn-teacher-profile-hero{padding:46px 0 50px!important}
  .tyn-teacher-bio-section{padding:46px 0!important}
  .tyn-teacher-bio-grid{gap:30px}
  .tyn-teacher-profile-cta{padding:46px 0 50px!important}
}

/* v2.13 image framing polish for 1080p and split-window desktop widths. */
.elementor-widget-tyn_team_grid .person img,
.elementor-widget-tyn_annie_feature .egg img,
.tyn-teacher-profile-circle img{
  object-position:50% 28%!important;
}

/* Full-width people photography needs a little more vertical room on desktop.
   This reduces aggressive head/shoulder cropping on 1920px and half-screen layouts. */
@media(min-width:851px) and (max-width:1999px){
  .elementor-widget-tyn_photo_band .photo-band.tyn-photo-band-custom{
    height:clamp(420px,30vw,520px)!important;
  }
}

/* Half-screen desktop: two teacher cards are calmer than three squeezed columns. */
@media(min-width:851px) and (max-width:1100px){
  .elementor-widget-tyn_team_grid .team-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .elementor-widget-tyn_annie_feature .teacher-grid{
    grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr)!important;
    gap:48px!important;
  }
}

/* Teacher profiles should stack before they become cramped in a split browser. */
@media(max-width:1050px){
  .tyn-teacher-profile-grid{
    grid-template-columns:minmax(0,1fr)!important;
    gap:44px!important;
  }
  .tyn-teacher-profile-egg{
    width:min(72vw,420px)!important;
    margin-inline:auto!important;
  }
  .tyn-teacher-profile-heading{
    text-align:center;
  }
  .tyn-teacher-profile-heading .rule{
    margin-left:auto;
    margin-right:auto;
  }
  .tyn-profile-credentials{
    justify-content:center;
  }
}

/* Final QA: keep responsive photo bands stable and improve text/link clarity. */
.elementor-widget-tyn_photo_band .photo-band picture{display:block;width:100%;height:100%}
.elementor-widget-tyn_photo_band .photo-band picture img{width:100%;height:100%;object-fit:cover;object-position:var(--tyn-photo-position,center center)}
.stat small{color:#5f6e65}
.tag{color:#526259}
.entry-content p a,.prose p a,.tyn-venue-copy a,.contactbox p a{text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
