/* Story-led home page. The portrait is the only hero image. */
.hero#home {
  display: grid;
  grid-template-columns: minmax(0, 47%) minmax(0, 53%);
  align-items: stretch;
  min-height: min(790px, 100vh);
  padding: 0;
  text-align: left;
  background: #0b0d11;
  overflow: hidden;
}
.hero-portrait { position: relative; min-height: 620px; }
.hero-portrait img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: grayscale(1); }
.hero-portrait::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 67%, #0b0d11 100%); pointer-events: none; }
.hero#home .hero-content { max-width: 760px; align-self: center; padding: 8.5rem clamp(1.75rem, 5vw, 5.5rem) 5.5rem clamp(1.5rem, 4vw, 4rem); }
.hero-kicker { display: block; margin-bottom: 1.4rem; color: #a9d2ff; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hero#home h1 { font-size: clamp(2.5rem, 4.35vw, 4.6rem); line-height: 1.08; letter-spacing: -.045em; margin-bottom: 1.25rem; }
.hero#home .tagline { font-size: 1rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .65rem; }
.hero#home .subhead { color: #fff; font-size: clamp(1.42rem, 2.15vw, 1.85rem); font-weight: 800; line-height: 1.3; letter-spacing: -.015em; margin: 0 0 1.25rem; }
.hero#home p:not(.tagline):not(.subhead) { margin: 0 0 1.9rem; max-width: 600px; color: #c4c9d1; font-size: 1.01rem; }
.hero#home .btn-group { justify-content: flex-start; }
.hero-proof { display: flex; flex-wrap: wrap; gap: .7rem; margin: 0 0 1.75rem; }
.hero-proof span { border: 1px solid #35495d; border-radius: 100px; background: #12202e; color: #c8d9e9; padding: .43rem .75rem; font-size: .76rem; }
.hero-proof b { color: #fff; }
.hero-quick-links { display: flex; flex-wrap: wrap; gap: .55rem 1.35rem; border-top: 1px solid #353b45; margin-top: 2rem; padding-top: 1.2rem; }
.hero-quick-links a { color: #c0dbfa; font-size: .87rem; font-weight: 600; text-underline-offset: 4px; }
.hero-quick-links a:hover { color: white; }

.media-section { background: #111720; border-block: 1px solid #273447; scroll-margin-top: 70px; }
.media-section .section-header { max-width: 750px; margin-inline: auto; }
.media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; max-width: 1060px; margin: 2.3rem auto 0; }
.media-card { display: flex; flex-direction: column; min-height: 225px; padding: clamp(1.3rem, 2.5vw, 2rem); border: 1px solid #354357; border-radius: 12px; background: #171f2b; text-decoration: none; color: #e9eef5; transition: border-color .2s, transform .2s; }
.media-card:hover, .media-card:focus-visible { border-color: #81baff; transform: translateY(-2px); }
.media-feature { border-top: 3px solid #498bd5; }
.media-type { color: #9ec7fb; font-size: .74rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.media-card h3 { font-family: 'Montserrat',sans-serif; font-size: clamp(1.15rem, 2vw, 1.5rem); margin: .9rem 0 .6rem; }
.media-card p { color: #b7c1cd; font-size: .96rem; line-height: 1.55; }
.media-card strong { display: block; color: #b2d5ff; font-size: .88rem; margin-top: auto; padding-top: 1.3rem; }
.media-note { max-width: 1060px; margin: 1.35rem auto 0; font-size: .83rem; color: #b7c1cd; }
.media-note a { color: #b2d5ff; }
.media-more { font-weight: 750; }

/* Consistent heading rhythm across home sections. */
.section-header { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3rem); }
.section-header .section-label, .pathway-head .section-label { margin-bottom: .65rem; }
.section-header h2, .pathway-head h2, .home-check h2 { line-height: 1.16; letter-spacing: -.025em; margin: 0 0 .9rem; text-wrap: balance; }
.section-header p, .pathway-head p { line-height: 1.65; }
.featured-section { background: #0d141b; border-bottom: 1px solid #2b3a49; scroll-margin-top: 70px; }
.featured-grid, .teaser-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.featured-card, .teaser-grid a { display: flex; flex-direction: column; padding: clamp(1.35rem, 3vw, 2rem); background: #151f29; border: 1px solid #314256; border-radius: 13px; color: #fff; text-decoration: none; transition: border-color .2s, transform .2s; }
.featured-card:hover, .featured-card:focus-visible, .teaser-grid a:hover, .teaser-grid a:focus-visible { transform: translateY(-2px); border-color: #7ec0ff; }
.featured-card span, .teaser-grid span { color: #9cc9fa; text-transform: uppercase; font-weight: 800; font-size: .72rem; letter-spacing: .12em; }
.featured-card h3, .teaser-grid h3 { font-family: 'Montserrat',sans-serif; font-size: clamp(1.1rem, 2vw, 1.45rem); line-height: 1.25; margin: .7rem 0 .85rem; }
.featured-card p { color: #b8c5d2; font-size: .96rem; line-height: 1.6; }
.featured-card strong, .teaser-grid strong { margin-top: auto; padding-top: 1.5rem; color: #a9d2ff; font-size: .88rem; }
.article-teasers { background: #0e151e; }
.teaser-grid a { min-height: 190px; }
.article-all { margin-top: 1.35rem; text-align: center; }
.article-all a { color: #acd2fd; font-weight: 700; text-underline-offset: 4px; }

.home-check-inner { display: block; }
.home-check-inner > div:first-child { max-width: 720px; }
.featured-course-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; margin: 2rem 0 1.2rem; }
.featured-course { display: block; padding: clamp(1.3rem, 3vw, 2rem); background: #111d28; border: 1px solid #2d4a62; border-radius: 12px; text-decoration: none; color: #fff; }
.featured-course:hover, .featured-course:focus-visible { border-color: #7ec0ff; }
.featured-course span { color: #9dccf6; font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.featured-course h3 { font-family: 'Montserrat',sans-serif; font-size: clamp(1.2rem, 2.2vw, 1.65rem); margin: .55rem 0; }
.featured-course p { color: #bbc9d4; margin-bottom: 1.2rem; }
.featured-course strong, .all-courses-link { color: #9dccf6; font-weight: 700; }
.all-courses-link { text-underline-offset: 4px; }

@media (max-width: 950px) {
  .hero#home { grid-template-columns: 1fr; min-height: auto; }
  .hero-portrait { height: clamp(340px, 53vw, 570px); min-height: 0; }
  .hero-portrait img { object-position: center 25%; }
  .hero-portrait::after { background: linear-gradient(0deg, #0b0d11 0%, transparent 46%); }
  .hero#home .hero-content { max-width: 760px; padding: 0 2rem 4.5rem; margin: -2rem auto 0; position: relative; }
}
@media (max-width: 620px) {
  .hero-portrait { height: 390px; }
  .hero#home .hero-content { padding: 0 1.35rem 3.6rem; }
  .hero#home h1 { font-size: clamp(2.15rem, 9vw, 3.35rem); }
  .hero-kicker { font-size: .7rem; }
  .media-grid { grid-template-columns: 1fr; }
  .media-card { min-height: 0; }
  .featured-course-grid { grid-template-columns: 1fr; }
  .featured-grid, .teaser-grid { grid-template-columns: 1fr; }
  .teaser-grid a { min-height: 0; }
}
@media (min-width: 621px) and (max-width: 900px) {
  .featured-grid, .teaser-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Photographs and course artwork added in the media update. */
.featured-course { overflow:hidden; }
.featured-course > img { display:block; width:calc(100% + 2*clamp(1.3rem, 3vw, 2rem)); max-width:none; aspect-ratio:16/9; object-fit:cover; margin:calc(-1*clamp(1.3rem, 3vw, 2rem)) calc(-1*clamp(1.3rem, 3vw, 2rem)) 1.25rem; }
.media-card { overflow:hidden; }
.media-art { position:relative; display:grid; place-items:center; width:calc(100% + 2*clamp(1.3rem, 2.5vw, 2rem)); margin:calc(-1*clamp(1.3rem, 2.5vw, 2rem)) calc(-1*clamp(1.3rem, 2.5vw, 2rem)) 1.4rem; aspect-ratio:16/9; overflow:hidden; background:#09233a; }
.media-video { display:block; background:#09233a; }
.media-video img { display:block; width:100%; height:100%; object-fit:cover; }
.media-play { display:grid; place-items:center; width:3.25rem; height:3.25rem; border-radius:50%; background:#f3f7ff; color:#0b213a; font-size:1.1rem; padding-left:.2rem; box-shadow:0 8px 24px #0008; }
.media-art-label { position:absolute; bottom:.8rem; left:1rem; color:#fff; font-size:.72rem; letter-spacing:.12em; font-weight:800; }
.media-podcast { display:block; aspect-ratio:1/1; background:#103550; }
.media-podcast img { display:block; width:100%; height:100%; max-width:none; object-fit:contain; }
.media-editorial { background:linear-gradient(120deg,#082f44,#06121e); border-bottom:1px solid #397ea8; color:#fff; text-align:center; font:800 clamp(1.8rem,4vw,3rem)/.92 Montserrat,Inter,sans-serif; letter-spacing:-.05em; }
.media-editorial > span { display:block; }
.media-art-small { display:block; padding-top:.8rem; color:#9bd3ff; font:700 .72rem/1.3 Inter,sans-serif; letter-spacing:.24em; }
.media-spotify { background:linear-gradient(120deg,#10432e,#071b23); }
.speaking-photo { width:min(740px,100%); margin:0 auto 2rem; }
.speaking-photo img { display:block; width:100%; max-height:460px; object-fit:cover; object-position:center 38%; border-radius:14px; border:1px solid #354357; }
.speaking-photo figcaption { margin:.6rem .2rem 0; color:#bbc9d4; font-size:.82rem; text-align:left; }

/* New photography and app artwork. */
.featured-app > img { display:block; width:100%; height:180px; object-fit:contain; margin:0 0 1.3rem; border-radius:9px; background:#0d2236; }
.featured-grid:has(> .featured-app:only-child) { grid-template-columns:minmax(0,720px); justify-content:center; }
@media(max-width:620px){.featured-app > img { height:200px; }}

/* Put organisational speaking enquiries in view after the hero. */
.speaking-priority { background:#0d1720; border-bottom:1px solid #2b3e52; scroll-margin-top:85px; }
.speaking-intro { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(1.5rem,4vw,4rem); align-items:center; margin-bottom:2.7rem; }
.speaking-intro .speaking-photo { width:100%; margin:0; }
.speaking-intro .speaking-photo img { max-height:520px; aspect-ratio:4/3; object-fit:cover; object-position:center 20%; }
.speaking-copy h2 { font-family:Montserrat,Inter,sans-serif; font-size:clamp(2rem,4vw,3.25rem); line-height:1.12; letter-spacing:-.03em; margin:.25rem 0 1.15rem; color:#fff; text-wrap:balance; }
.speaking-copy p { color:#c6d2dc; font-size:1.03rem; line-height:1.72; margin-bottom:1rem; }
.speaking-copy .btn { margin-top:.75rem; display:inline-flex; }
.speaking-options-heading { margin-bottom:1.2rem; }
.speaking-options-heading h3 { color:#fff; font-family:Montserrat,Inter,sans-serif; font-size:clamp(1.35rem,2.5vw,1.8rem); margin:0 0 .25rem; }
.speaking-options-heading p { color:#b7c8d4; margin:0; }
@media(max-width:780px){.speaking-intro { grid-template-columns:1fr; }.speaking-intro .speaking-photo img { max-height:400px; aspect-ratio:4/3; }.speaking-copy .btn { width:100%; justify-content:center; text-align:center; }}

.speaking-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem 1.4rem; margin-top:1.2rem; }
.speaking-actions .btn { margin-top:0; }
.speaking-detail-link { color:#acd6ff; font-weight:750; text-underline-offset:4px; }
.speaking-detail-link:hover,.speaking-detail-link:focus-visible { color:#fff; }
@media(max-width:780px){.speaking-actions { align-items:stretch; flex-direction:column; }.speaking-detail-link { text-align:center; }}

/* Anthony's signature RESPOND and Four Pillars frameworks. */
.framework-section { padding:clamp(4rem,8vw,6.5rem) 1.5rem; background:radial-gradient(circle at 85% 15%,rgba(27,145,235,.16),transparent 28rem),#090f15; border-bottom:1px solid #293b4d; }
.framework-intro { max-width:820px; margin:0 auto 2rem; text-align:center; }
.framework-intro h2 { color:#fff; font-family:Montserrat,Inter,sans-serif; font-size:clamp(2rem,4.5vw,3.35rem); line-height:1.12; letter-spacing:-.035em; margin:.35rem 0 1rem; text-wrap:balance; }
.framework-intro p { color:#c3d0da; font-size:1.04rem; line-height:1.7; }
.framework-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; max-width:1080px; margin:0 auto; }
.framework-card { padding:clamp(1.5rem,3vw,2.25rem); border:1px solid #36516a; border-radius:16px; background:linear-gradient(145deg,#111f2b,#0c141c); }
.framework-label { color:#76c4ff; font-size:.72rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.framework-card h3 { color:#fff; font-family:Montserrat,Inter,sans-serif; font-size:clamp(1.7rem,3vw,2.25rem); margin:.6rem 0 .8rem; }
.framework-card p { color:#c2ced7; line-height:1.65; }
.framework-card .framework-sequence { color:#fff; font-weight:750; line-height:1.8; margin-bottom:1rem; }
.framework-sequence b { color:#55b7ff; padding:0 .12rem; }
.framework-actions { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:1rem 1.4rem; margin:2rem auto 0; }
.framework-enquiry { color:#acd6ff; font-weight:750; text-underline-offset:4px; }
.framework-note { max-width:780px; margin:1.5rem auto 0; color:#93a6b5; font-size:.8rem; text-align:center; }
@media(max-width:700px){.framework-grid{grid-template-columns:1fr}.framework-actions{align-items:stretch;flex-direction:column}.framework-actions .btn{width:100%;text-align:center}.framework-enquiry{text-align:center}}

/* Direct route to the free early warning check, placed beside the app offer. */
.featured-check-action { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.75rem 1.2rem; margin:-.3rem 0 1.5rem; }
.featured-check-action a { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:.8rem 1.2rem; border-radius:9px; background:#168fea; color:#fff; font-weight:800; text-decoration:none; }
.featured-check-action a:hover,.featured-check-action a:focus-visible { background:#0d73bf; outline-offset:3px; }
.featured-check-action > span { color:#b8c5d2; font-size:.86rem; }
@media(max-width:620px){.featured-check-action a { width:100%; }.featured-check-action > span { width:100%; text-align:center; }}

/* Keep the brand separate from navigation at laptop widths. */
@media (min-width:900px) and (max-width:1699px) {
  .nav-container > .nav-links { display:none; }
  .nav-container > .mobile-menu-btn { display:block; }
}
.nav-container { gap:1.25rem; }
.nav-container > .nav-logo { flex:none; }
.nav-container > .nav-links { min-width:0; justify-content:flex-end; gap:clamp(.65rem,1vw,1.1rem); }
.nav-container > .nav-links a { font-size:.8rem; }
@media (min-width:1700px) { .nav-container > .nav-logo span { font-size:.76rem; } }
