/* Cheshire Photo Courses v1.4.2 — Modern Editorial Workshop */
:root {
  --paper: #f4f1e9;
  --white: #fffdf8;
  --ink: #25382e;
  --muted: #5c665d;
  --line: #d8dace;
  --green: #294d3b;
  --green-dark: #1e382c;
  --pale: #e7ebdf;
  --accent: #8f482b;
  --accent-decorative: #ba5b36;
  --focus: #8f482b;
  --error: #8a321f;
  --success: #286342;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: 'Segoe UI', Arial, sans-serif;
}

html { scroll-padding-top: 98px; }
body { font-size: 17px; line-height: 1.62; }
.container { width: min(1240px, calc(100% - 48px)); }
.section { padding-block: clamp(68px, 7vw, 96px); }
h1 { font-size: clamp(3.75rem, 5.4vw, 4.75rem); line-height: .98; letter-spacing: -.045em; }
h2 { font-size: clamp(2.4rem, 4vw, 3.35rem); line-height: 1.02; letter-spacing: -.035em; }
h3 { font-size: clamp(1.55rem, 2.3vw, 2rem); letter-spacing: -.025em; }
em { color: inherit; }
.eyebrow { margin-bottom: 17px; color: var(--green); font-size: .72rem; line-height: 1.45; letter-spacing: .14em; }
.lead { font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.45; }
.button { min-height: 50px; padding: 12px 21px; border-radius: 7px; font-size: 1rem; gap: 22px; transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.button:hover { background: var(--green-dark); transform: translateY(-1px); }
.button-outline { background: transparent; border-color: #7d8b7e; color: var(--green); }
.button-outline:hover { background: var(--green); border-color: var(--green); color: var(--white); }
.text-link { min-height: 44px; padding: 10px 0 5px; color: var(--green); border-color: #7e897c; font-size: .95rem; }
.text-link:hover { color: var(--accent); border-color: var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline-color: var(--focus); outline-offset: 4px; }

.site-header { position: sticky; top: 0; z-index: 20; background: rgb(244 241 233 / 96%); border-color: var(--line); backdrop-filter: blur(12px); }
.header-inner { height: 84px; }
.brand img { width: 218px; }
.main-nav { gap: 27px; font-size: .82rem; }
.main-nav > a:not(.button) { min-height: 44px; display: inline-flex; align-items: center; }
.main-nav > a:hover:not(.button), .main-nav > [aria-current]:not(.button) { color: var(--accent); }
.button-small { min-height: 46px; padding-inline: 17px; font-size: .88rem; }
.language-switch { color: var(--muted); font-size: .72rem; }
.language-switch a[aria-current=page] { color: var(--accent); }

/* Font Awesome Free 7.3.1 replaces the previous hand-drawn SVG set. */
.icon { display: inline-flex; align-items: center; justify-content: center; width: 1em; height: 1em; font-size: 1.22rem; line-height: 1; }
.button .icon, .text-link .icon { font-size: 1rem; }
.facts-grid .icon { font-size: 1.5rem; }
.image-label .icon, .course-topics .icon, .footer-location .icon, .footer-contact .icon { font-size: .86rem; }
.contact-facts .icon { font-size: 1.15rem; }

.hero { min-height: 0; padding-block: clamp(54px, 6vw, 82px); grid-template-columns: minmax(0, .88fr) minmax(480px, 1.12fr); gap: clamp(48px, 7vw, 96px); }
.hero-copy { align-self: center; }
.hero .eyebrow { margin-bottom: 22px; color: var(--green); font-size: .72rem; letter-spacing: .14em; }
.hero h1 { max-width: 690px; font-size: clamp(3.8rem, 5.25vw, 4.7rem); line-height: .98; letter-spacing: -.052em; }
.hero-lead { max-width: 610px; margin-top: 27px; font: 1.25rem/1.5 var(--sans); color: #3f4a42; }
.hero-description { max-width: 570px; margin-top: 11px; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.hero-offer { display: flex; flex-wrap: wrap; gap: 8px 17px; max-width: none; margin-top: 24px; padding: 0; border: 0; background: transparent; color: var(--ink); font-size: .96rem; }
.hero-offer strong { font-weight: 700; }
.hero-copy .button-row { margin-top: 24px; gap: 24px; }
.hero-status { margin-top: 13px; color: var(--muted); font-size: .78rem; }
.hero-art { min-height: 0; height: auto; padding: 0; }
.hero-photo { position: relative; padding: 0; border-radius: 10px; background: transparent; box-shadow: none; transform: none; overflow: visible; }
.hero-photo picture { display: block; overflow: hidden; border-radius: 10px; }
.hero-photo img { aspect-ratio: 16 / 10; object-fit: cover; object-position: 50% 48%; }
.hero-photo figcaption { padding: 11px 4px 0; color: var(--muted); font: .76rem/1.45 var(--sans); }
.hero-photo figcaption span:first-child { font-family: var(--serif); font-style: italic; }
.hero-photo figcaption span:last-child { font-size: .68rem; letter-spacing: .05em; }
.editorial-frame::before, .editorial-frame::after { content: ''; position: absolute; z-index: 2; width: 26px; height: 26px; pointer-events: none; }
.editorial-frame::before { top: -10px; left: -10px; border-top: 2px solid var(--green); border-left: 2px solid var(--green); }
.editorial-frame::after { right: -10px; bottom: 23px; border-right: 2px solid var(--green); border-bottom: 2px solid var(--green); }

.home-tutor-strip { border-block: 1px solid var(--line); }
.home-tutor-strip > .container { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.home-tutor-person { display: flex; align-items: center; gap: 13px; }
.home-tutor-person picture, .home-tutor-person img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.home-tutor-person p { margin: 0; line-height: 1.35; }
.home-tutor-person strong, .home-tutor-person span { display: block; }
.home-tutor-person strong { font-size: .78rem; }
.home-tutor-person span, .home-tutor-facts { color: var(--muted); font-size: .72rem; }
.home-tutor-facts { margin: 0; text-align: right; }

.facts-band { border-top: 0; }
.facts-label { padding-top: 17px; color: var(--muted); font-size: .68rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.facts-grid { min-height: 104px; }
.facts-grid > div { justify-content: flex-start; padding-inline: 24px; }
.facts-grid > div:first-child { padding-left: 0; }
.facts-grid .icon { color: var(--green); }
.facts-grid p strong { font-size: .86rem; }
.facts-grid p span, .price-fact span { margin-top: 2px; font-size: .72rem; }
.price-fact strong { font-size: 2.15rem; }
.starting-price-fact strong { max-width: 150px; font-size: 1.22rem; line-height: 1.18; text-align: center; }

.section-heading { margin-bottom: 35px; align-items: end; }
.section-heading h2 { max-width: 760px; }
.section-heading > p { max-width: 480px; padding: 0; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.course-choice { padding-bottom: clamp(72px, 8vw, 108px); }
.course-grid { gap: 28px; }
.course-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; border-radius: 10px; border-color: var(--line); box-shadow: 0 10px 32px rgb(37 56 46 / 4%); }
.course-image { aspect-ratio: 16 / 9; background: var(--pale); }
.course-image > picture > img { aspect-ratio: 16 / 9; }
.course-image > img, .course-image > picture > img { transition: transform .2s ease; }
.course-card:hover .course-image > picture > img { transform: scale(1.015); }
.course-image-comparison { display: grid; grid-template-columns: 1fr 1fr; height: 100%; }
.course-image-comparison > span { position: relative; min-width: 0; overflow: hidden; }
.course-image-comparison > span + span { border-left: 2px solid var(--white); }
.course-image-comparison picture, .course-image-comparison img { width: 100%; height: 100%; }
.course-image-comparison img { aspect-ratio: 8 / 4.5; object-fit: cover; object-position: center 52%; }
.course-image-comparison small { position: absolute; left: 12px; bottom: 12px; padding: 5px 8px; border-radius: 4px; background: rgb(255 253 248 / 92%); color: var(--ink); font-size: .7rem; }
.image-label { top: 14px; bottom: auto; left: 14px; border-radius: 5px; font-size: .68rem; font-weight: 700; }
.course-card-copy { display: flex; flex: 1; flex-direction: column; padding: 30px 31px 25px; }
.course-overline { margin-bottom: 17px; color: var(--muted); font-size: .67rem; font-weight: 700; letter-spacing: .12em; }
.course-card h3 { max-width: 470px; font-size: clamp(1.8rem, 2.8vw, 2.35rem); line-height: 1.08; }
.course-card-copy > p { max-width: 510px; margin-top: 15px; color: var(--muted); font-size: .98rem; line-height: 1.6; }
.course-summary-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 23px 0 24px; padding: 0; list-style: none; }
.course-summary-chips li { padding: 6px 9px; border: 1px solid var(--line); border-radius: 5px; color: #465148; font-size: .78rem; }
.course-card-bottom { margin-top: auto; padding-top: 21px; gap: 20px; }
.course-card-bottom > div { display: flex; flex-direction: column; gap: 0; }
.course-card-bottom strong { font-size: 2rem; line-height: 1; }
.course-card-bottom span { margin-top: 5px; font-size: .7rem; }
.course-card-bottom .button { min-height: 47px; padding: 9px 15px; font-size: .84rem; text-align: center; }
.course-card-status { margin-top: 14px !important; font-size: .72rem !important; line-height: 1.5 !important; }
.portrait-feature { grid-template-columns: minmax(250px, .58fr) minmax(0, 1.42fr); margin-top: 28px; border-radius: 10px; overflow: hidden; }
.portrait-feature-image img { height: 100%; aspect-ratio: auto; object-fit: cover; object-position: center 34%; }
.portrait-feature-copy { padding: 32px 38px; display: grid; grid-template-columns: 1fr auto; grid-template-areas: 'eyebrow action' 'title action' 'copy action'; align-items: center; column-gap: 38px; }
.portrait-feature-copy .eyebrow { grid-area: eyebrow; margin: 0 0 9px; color: #c9d7cb; }
.portrait-feature-copy h3 { grid-area: title; font-size: 2.05rem; }
.portrait-feature-copy > p:not(.eyebrow) { grid-area: copy; max-width: 620px; margin-top: 9px; color: #d9e1da; font-size: .91rem; }
.portrait-feature-copy .button { grid-area: action; white-space: nowrap; }

.teaching-demo { padding-block: clamp(70px, 7vw, 94px); background: var(--pale); }
.teaching-demo-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(350px, .76fr); gap: clamp(60px, 9vw, 120px); align-items: center; }
.teaching-demo-copy { max-width: 510px; }
.teaching-demo-copy p:not(.eyebrow) { margin-top: 22px; color: var(--muted); }
.teaching-demo-copy .text-link { margin-top: 18px; }
.teaching-demo-copy small { display: block; max-width: 480px; margin-top: 17px; color: var(--muted); font-size: .72rem; line-height: 1.55; }
.home-before-after { max-width: 490px; justify-self: end; border-radius: 9px; overflow: hidden; }
.home-before-after .before-after-frame { aspect-ratio: 4 / 5; }
.before-after-frame { border-radius: 8px 8px 0 0; }
.comparison-preset-controls { display: none; }
.js .comparison-preset-controls { display: flex; justify-content: center; gap: 9px; padding: 13px; background: var(--paper); }
.comparison-preset-controls button { min-height: 44px; padding: 8px 14px; border: 1px solid #99a399; border-radius: 5px; background: transparent; color: var(--green); font: 700 .78rem/1 var(--sans); }
.comparison-preset-controls button:hover, .comparison-preset-controls button[aria-pressed=true] { background: var(--green); color: var(--white); }
.before-after figcaption { background: var(--green); font-size: .72rem; }

.teaching-intro > h2 { max-width: 850px; }
.teaching-intro-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 28px; margin-top: 35px; }
.tutor-card { display: grid; grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr); overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: var(--white); }
.tutor-card > picture, .tutor-card > picture img { width: 100%; height: 100%; }
.tutor-card > picture img { min-height: 330px; object-fit: cover; object-position: 73% center; }
.tutor-card > div { padding: 29px; align-self: center; }
.tutor-card h3 { font-size: 2.1rem; }
.tutor-card > div > p:not(.eyebrow) { margin-top: 15px; color: var(--muted); font-size: .9rem; }
.tutor-card .button { margin-top: 20px; font-size: .82rem; }
.studio-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.studio-notes article { padding: 27px; border: 1px solid var(--line); border-radius: 9px; background: var(--pale); }
.studio-notes article > strong { display: block; margin-bottom: 8px; font: 2.1rem/1 var(--serif); }
.studio-notes h3 { font-size: 1.3rem; }
.studio-notes p { margin-top: 8px; color: var(--muted); font-size: .8rem; }
.studio-notes .studio-note-wide { grid-column: 1 / -1; display: flex; align-items: center; gap: 26px; background: transparent; }
.studio-note-wide > strong { flex: 0 0 auto; margin: 0 !important; font-size: 1.45rem !important; }
.studio-note-wide p { margin-top: 2px; }

.journey-section { padding-block: 8px 90px; }
.journey-section > h2 { font-size: 1.65rem; }
.journey-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 22px; }
.journey-grid article { padding-top: 20px; border-top: 1px solid #aeb5ac; }
.journey-grid span { color: var(--accent); font-size: .66rem; font-weight: 700; letter-spacing: .12em; }
.journey-grid h3 { margin-top: 14px; font-size: 1.45rem; }
.journey-grid p { margin-top: 7px; color: var(--muted); font-size: .84rem; }

.home-journal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.home-journal-grid article { min-width: 0; }
.home-journal-image { display: block; overflow: hidden; border-radius: 8px; background: var(--pale); }
.home-journal-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .2s ease; }
.home-journal-image:hover img { transform: scale(1.015); }
.home-journal-grid article > p { margin: 16px 0 9px; color: var(--accent); font-size: .67rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.home-journal-grid h3 { font-size: 1.45rem; line-height: 1.15; }
.home-journal-grid h3 a:hover { color: var(--accent); }

.location-section { padding-block: 65px; background: #e9e6dc; }
.location-grid { grid-template-columns: 1fr auto; }
.location-grid h2 { font-size: 2.75rem; }
.location-grid p:not(.eyebrow) { max-width: 720px; font-size: .95rem; }
.faq-section { grid-template-columns: minmax(250px, .72fr) minmax(0, 1.28fr); }
.faq-list summary, .faq-list details p, .faq-section > div > p:not(.eyebrow) { font-size: .96rem; }
.faq-list summary { min-height: 62px; padding-block: 19px; }
.cta-section { padding-block: 66px; }
.cta-inner { display: flex; align-items: center; justify-content: space-between; gap: 42px; text-align: left; }
.cta-inner::before, .cta-inner::after { display: none; }
.cta-section h2 { font-size: clamp(2.5rem, 4vw, 3.5rem); }
.cta-section p:not(.eyebrow) { margin-top: 10px; font-size: .94rem; }
.cta-section .button { flex: 0 0 auto; margin: 0; }

.site-footer { font-size: .78rem; }
.footer-top { padding-block: 54px 42px; }
.footer-top > div:not(:first-child) > a { min-height: 34px; }
.footer-bottom { font-size: .7rem; }
.footer-bottom > div { align-items: center; }

@media (max-width: 1100px) {
  .main-nav { gap: 15px; font-size: .74rem; }
  .brand img { width: 190px; }
  .hero { grid-template-columns: minmax(0, .92fr) minmax(410px, 1.08fr); gap: 48px; }
  .hero h1 { font-size: clamp(3.25rem, 5.4vw, 4rem); }
  .teaching-intro-grid { grid-template-columns: 1fr; }
  .tutor-card { max-width: 720px; }
}

@media (max-width: 850px) {
  html { scroll-padding-top: 80px; }
  .container { width: min(100% - 40px, 720px); }
  .header-inner { height: 74px; }
  .menu-toggle { min-height: 46px; border-radius: 6px; font-size: .88rem; }
  .main-nav { padding: 16px 20px 23px; background: var(--paper); box-shadow: 0 14px 28px rgb(37 56 46 / 10%); }
  .main-nav > a:not(.button) { width: 100%; }
  .hero { grid-template-columns: 1fr; gap: 36px; padding-block: 50px; }
  .hero-copy, .hero h1, .hero-lead, .hero-description { max-width: 700px; }
  .hero-photo { max-width: 720px; }
  .home-tutor-strip > .container { padding-block: 13px; align-items: flex-start; }
  .home-tutor-facts { max-width: 320px; }
  .facts-grid { grid-template-columns: 1fr 1fr; padding-bottom: 17px; }
  .facts-grid > div { min-height: 72px; border-bottom: 1px solid var(--line); }
  .facts-grid > div:nth-child(2) { border-right: 0; }
  .facts-grid > div:nth-last-child(-n+2) { border-bottom: 0; }
  .course-grid { grid-template-columns: 1fr; }
  .portrait-feature { grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); }
  .portrait-feature-copy { display: block; }
  .portrait-feature-copy .button { margin-top: 20px; }
  .teaching-demo-grid { grid-template-columns: 1fr; }
  .teaching-demo-copy { max-width: 680px; }
  .home-before-after { width: min(100%, 560px); justify-self: center; }
  .home-before-after .before-after-frame { aspect-ratio: 4 / 5; }
  .home-journal-grid { grid-template-columns: 1fr 1fr; }
  .home-journal-grid article:first-child { grid-column: 1 / -1; }
  .home-journal-grid article:first-child .home-journal-image img { aspect-ratio: 2 / 1; }
  .faq-section { grid-template-columns: 1fr; gap: 42px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  body { font-size: 16px; }
  .container { width: calc(100% - 40px); }
  .section { padding-block: 58px; }
  .brand img { width: 174px; }
  .hero { padding-block: 34px 39px; gap: 25px; }
  .hero .eyebrow { margin-bottom: 16px; font-size: .65rem; }
  .hero h1 { font-size: clamp(2.6rem, 12vw, 3.15rem); line-height: 1; letter-spacing: -.045em; }
  .hero-lead { margin-top: 18px; font-size: 1.05rem; line-height: 1.45; }
  .hero-description { margin-top: 8px; font-size: .9rem; line-height: 1.5; }
  .hero-offer { margin-top: 17px; gap: 4px 10px; font-size: .88rem; }
  .hero-copy .button-row { margin-top: 18px; gap: 9px 18px; }
  .hero-copy .button { width: auto; min-height: 48px; }
  .hero-copy .text-link { font-size: .86rem; }
  .hero-status { margin-top: 7px; }
  .hero-art { min-height: 0; }
  .hero-photo img { aspect-ratio: 16 / 9; object-position: 50% 48%; }
  .hero-photo figcaption { font-size: .68rem; }
  .editorial-frame::after { bottom: 21px; }
  .home-tutor-strip > .container { display: block; }
  .home-tutor-facts { margin-top: 10px; text-align: left; }
  .facts-label { padding-top: 14px; }
  .facts-grid { display: grid; grid-template-columns: 1fr 1fr; }
  .facts-grid > div { display: block; padding: 15px 12px; }
  .facts-grid > div:first-child { padding-left: 0; }
  .facts-grid .icon { width: 20px; height: 20px; margin-bottom: 7px; }
  .facts-grid p strong { font-size: .8rem; }
  .facts-grid p span { font-size: .68rem; }
  .price-fact { justify-content: center !important; }
  .section-heading { display: block; }
  .section-heading > p { margin-top: 18px; }
  .course-card-copy { padding: 25px 21px 22px; }
  .course-overline { gap: 14px; font-size: .59rem; }
  .course-card h3 { font-size: 2rem; }
  .course-card-copy > p { font-size: .92rem; }
  .course-card-bottom { flex-direction: row; align-items: center; }
  .course-card-bottom .button { flex: 0 1 150px; }
  .course-image-comparison img { aspect-ratio: 1 / 1; }
  .portrait-feature { display: block; }
  .portrait-feature-image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-position: center 30%; }
  .portrait-feature-copy { padding: 28px 22px 30px; }
  .portrait-feature-copy h3 { font-size: 2rem; }
  .portrait-feature-copy .button { width: 100%; }
  .teaching-demo { padding-block: 58px; }
  .teaching-demo-grid { gap: 35px; }
  .teaching-demo-copy small { font-size: .69rem; }
  .home-before-after { width: 100%; }
  .comparison-preset-controls button { flex: 1; padding-inline: 7px; }
  .teaching-intro > h2 { font-size: 2.35rem; }
  .tutor-card { grid-template-columns: 42% 58%; }
  .tutor-card > picture img { min-height: 345px; }
  .tutor-card > div { padding: 21px 18px; }
  .tutor-card h3 { font-size: 1.65rem; }
  .tutor-card > div > p:not(.eyebrow) { font-size: .78rem; }
  .tutor-card .button { min-height: 44px; padding: 8px 10px; gap: 8px; font-size: .72rem; }
  .studio-notes { grid-template-columns: 1fr 1fr; }
  .studio-notes article { padding: 21px 17px; }
  .studio-notes article > strong { font-size: 1.75rem; }
  .studio-notes h3 { font-size: 1.15rem; }
  .studio-notes p { font-size: .74rem; }
  .journey-section { padding-bottom: 61px; }
  .journey-grid { grid-template-columns: 1fr; gap: 18px; }
  .home-journal-grid { grid-template-columns: 1fr; }
  .home-journal-grid article:first-child { grid-column: auto; }
  .home-journal-grid article:first-child .home-journal-image img { aspect-ratio: 16 / 10; }
  .location-section { padding-block: 50px; }
  .location-grid { display: block; }
  .location-grid h2 { font-size: 2.35rem; }
  .location-grid .button { margin-top: 24px; }
  .cta-inner { display: block; }
  .cta-section .button { width: 100%; margin-top: 25px; }
  .footer-top { grid-template-columns: 1fr; gap: 35px; }
  .footer-brand { grid-column: auto; }
}

@media (max-width: 380px) {
  .container { width: calc(100% - 36px); }
  .hero h1 { font-size: 2.5rem; }
  .hero-offer { font-size: .82rem; }
  .course-card-bottom { align-items: flex-start; flex-direction: column; }
  .course-card-bottom .button { width: 100%; flex-basis: auto; }
  .tutor-card { grid-template-columns: 1fr; }
  .tutor-card > picture img { min-height: 250px; aspect-ratio: 16 / 10; object-position: 50% 44%; }
  .studio-notes { grid-template-columns: 1fr; }
  .studio-notes .studio-note-wide { grid-column: auto; }
}

@media (hover: none) {
  .course-card:hover .course-image > picture > img, .home-journal-image:hover img { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Shared decision, journal, profile and practical page system */
.breadcrumb { display: block; padding-top: 26px; color: var(--muted); font-size: .74rem; }
.breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.breadcrumb li { display: inline-flex; min-width: 0; align-items: center; }
.breadcrumb a, .breadcrumb [aria-current=page] { min-height: 40px; display: inline-flex; align-items: center; }
.breadcrumb a:hover { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.breadcrumb [aria-current=page] { color: var(--ink); font-weight: 600; }
.breadcrumb-separator { margin-inline: 11px; color: #929c90; font-size: .5rem; }

.offer-facts dt { color: var(--ink); font-weight: 800; }
.compare-grid { row-gap: 52px; }

.course-hero { grid-template-columns: minmax(0, .88fr) minmax(430px, 1.12fr); gap: clamp(50px, 7vw, 88px); padding-block: 52px 70px; }
.course-hero > div { align-self: center; }
.course-hero h1 { max-width: 690px; font-size: clamp(3.4rem, 5vw, 4.35rem); line-height: 1; letter-spacing: -.045em; }
.course-hero .lead { max-width: 630px; margin-top: 22px; font-size: 1.35rem; }
.course-hero p:not(.eyebrow):not(.lead) { max-width: 640px; color: var(--muted); font-size: 1rem; line-height: 1.62; }
.course-hero .button-row { margin-top: 24px; }
.availability { margin-top: 14px !important; color: var(--muted); font-size: .78rem !important; }
.course-hero-photo { padding: 0; border-radius: 10px; background: transparent; box-shadow: none; transform: none; overflow: hidden; }
.course-hero-photo picture { display: block; }
.course-hero-photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.course-hero-photo figcaption { padding: 10px 3px 0; color: var(--muted); font: italic .76rem/1.45 var(--serif); }
.session-hero .course-hero-photo img { object-position: center 30%; }
.course-content { grid-template-columns: minmax(0, 1.15fr) minmax(310px, .85fr); gap: clamp(55px, 8vw, 96px); }
.course-content > div > h2 { max-width: 650px; }
.lightroom-method .course-content > div > p:not(.eyebrow) { max-width: 720px; margin-top: 22px; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.lightroom-method .course-aside { background: var(--white); }
.outcomes-list article { padding-block: 25px; }
.outcomes-list h3 { font-size: 1.65rem; }
.outcomes-list p { max-width: 690px; margin-top: 9px; color: var(--muted); font-size: .98rem; line-height: 1.62; }
.course-aside { position: sticky; top: 114px; margin-top: 0; padding: 32px; border: 1px solid #c7cec1; border-radius: 9px; background: var(--pale); }
.course-aside h3 { font-size: 2rem; }
.course-aside p:not(.eyebrow) { color: var(--muted); font-size: .95rem; line-height: 1.65; }
.course-aside .text-link { font-size: .86rem; }
.day-section { padding-block: 70px 76px; }
.day-grid { gap: 28px; }
.day-grid article { padding-top: 19px; }
.day-time { color: var(--green); font-size: .7rem; font-weight: 700; }
.day-grid h3 { font-size: 1.5rem; }
.day-grid p { color: var(--muted); font-size: .86rem; line-height: 1.58; }
.practical-grid { gap: clamp(52px, 7vw, 88px); }
.practical-grid > div > p:not(.eyebrow) { max-width: 680px; color: var(--muted); font-size: .98rem; line-height: 1.65; }
.booking-panel { padding: 33px; border-color: #aeb8aa; border-radius: 9px; background: var(--white); }
.booking-panel h3 { font-size: 2rem; }
.booking-panel p { color: var(--muted); font-size: .95rem; }
.booking-panel .button { width: 100%; }
.booking-panel small { font-size: .76rem; line-height: 1.55; }
.related-course { padding-block: 28px 42px; }
.related-course > span { font-size: .78rem; }
.related-course > a { min-height: 44px; font-size: 1.55rem; }

.resource-index-hero { grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); gap: 8%; padding-top: 78px; padding-bottom: 65px; }
.resource-index-hero h1 { max-width: 790px; font-size: clamp(3.4rem, 5.7vw, 4.8rem); line-height: .98; letter-spacing: -.045em; }
.resource-index-hero .lead { margin-bottom: 14px; font-size: 1.35rem; }
.resource-index-hero > div:last-child > p:last-child { max-width: 610px; color: var(--muted); font-size: .96rem; line-height: 1.65; }
.resource-index-section { padding-top: 24px; }
.resource-card-grid { gap: 28px; }
.resource-card { overflow: hidden; border-radius: 9px; box-shadow: 0 9px 28px rgb(37 56 46 / 4%); }
.resource-card-grid > .resource-card:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(360px, .85fr); }
.resource-card-grid > .resource-card:first-child .resource-card-image img { height: 100%; min-height: 380px; aspect-ratio: auto; }
.resource-card-grid > .resource-card:last-child:nth-child(odd) { grid-column: auto; display: block; }
.resource-card-grid > .resource-card:last-child:nth-child(odd) .resource-card-image img { height: auto; aspect-ratio: 16 / 10; }
.resource-card-image img { aspect-ratio: 16 / 10; }
.resource-card-copy { padding: 29px 30px 33px; }
.resource-card-meta { color: var(--accent); font-size: .68rem; }
.resource-card h2 { font-size: clamp(1.7rem, 2.8vw, 2.35rem); line-height: 1.08; }
.resource-card-copy > p:not(.resource-card-meta) { color: var(--muted); font-size: .92rem; line-height: 1.65; }
.resource-author-band { margin-top: 78px; padding-block: 72px; }
.resource-author-inner { grid-template-columns: minmax(260px, .72fr) minmax(0, 1fr); }
.resource-author-inner > picture, .resource-author-inner > picture img { width: 100%; }
.resource-author-inner > picture img { max-height: 480px; object-fit: cover; border-radius: 9px; }
.resource-author-inner h2 { font-size: clamp(2.7rem, 4.8vw, 4rem); }
.resource-author-inner > div > p:not(.eyebrow) { color: var(--muted); font-size: .96rem; line-height: 1.65; }

.resource-article-hero { grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr); gap: 7%; padding-top: 58px; padding-bottom: 82px; }
.resource-article-intro h1 { max-width: 760px; font-size: clamp(3.05rem, 5.1vw, 4.45rem); line-height: .98; letter-spacing: -.04em; }
.resource-article-intro .lead { max-width: 650px; font-size: 1.25rem; line-height: 1.52; }
.resource-byline { font-size: .75rem; }
.resource-cover, .resource-example, .before-after { overflow: hidden; border-radius: 9px; }
.resource-article-layout { grid-template-columns: 210px minmax(0, 720px); gap: 8%; }
.resource-toc { top: 116px; border-top-color: var(--green); border-radius: 0 0 7px 7px; }
.resource-toc > p { font-size: .68rem; }
.resource-toc li { font-size: .78rem; }
.resource-prose > section { padding-block: 45px; }
.resource-prose h2 { max-width: 680px; font-size: clamp(2rem, 3.2vw, 2.8rem); }
.resource-prose > section > p { max-width: 68ch; color: #344139; font-size: 1.08rem; line-height: 1.72; }
.resource-prose > section > ul:not(.resource-takeaways ul) li { color: #344139; font-size: 1.03rem; line-height: 1.68; }
.resource-takeaways { border-radius: 8px; }
.resource-author-note { border-radius: 8px; }
.related-resources { padding-top: 78px; }
.resource-related-grid { border-radius: 8px; overflow: hidden; }
.resource-related-grid article { min-height: 230px; }

.about-hero { grid-template-columns: minmax(360px, .82fr) minmax(0, 1.18fr); gap: clamp(55px, 8vw, 94px); padding-block: 70px 82px; }
.about-hero .tutor-photo { overflow: hidden; border-radius: 9px; }
.about-hero .tutor-photo img { height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 76% center; }
.about-hero h1 { font-size: clamp(3.6rem, 5vw, 4.6rem); }
.about-hero .lead { font-size: 1.3rem; }
.publication-evidence .eyebrow { color: #e7ebdf; font-size: .875rem; font-weight: 700; letter-spacing: .1em; }
.about-hero p:not(.eyebrow):not(.lead) { color: var(--muted); font-size: .96rem; line-height: 1.64; }
.about-statement { max-width: 780px; }
.about-statement > p:not(.eyebrow) { color: var(--muted); font-size: 1rem; line-height: 1.65; }
.gallery-grid { gap: 24px; }
.gallery-grid figure { min-width: 0; }
.gallery-grid img { border-radius: 8px; }
.gallery-grid figcaption { font-size: .84rem; }

.contact-layout { display: block; max-width: 800px; padding-top: 72px; }
.contact-intro { max-width: 720px; }
.contact-intro h1 { font-size: clamp(3.45rem, 5.3vw, 4.5rem); }
.contact-intro .lead { font-size: 1.35rem; }
.contact-intro > p:not(.eyebrow):not(.lead) { max-width: 680px; color: var(--muted); font-size: .98rem; line-height: 1.65; }
.contact-email { min-height: 44px; font-size: 1rem; }
.contact-facts { gap: 34px; }
.contact-facts > div { font-size: .9rem; }
.contact-facts small { max-width: 260px; font-size: .76rem; }
.contact-form-panel { margin-top: 44px; padding: clamp(27px, 5vw, 44px); border-radius: 9px; box-shadow: 0 10px 32px rgb(37 56 46 / 4%); }
.contact-form-panel h2 { font-size: 2.5rem; }
.form-note, .privacy-note, .form-help { font-size: .8rem; line-height: 1.6; }
.field { margin-bottom: 22px; }
.field label { font-size: .9rem; }
.field input, .field select, .field textarea { min-height: 50px; border-color: #7f8b80; border-radius: 6px; font-size: 1rem; }
.field textarea { min-height: 130px; }
.optional-profile { border-radius: 7px; }
.optional-profile > summary { min-height: 58px; font-size: .93rem; }
.consent-choice { border-radius: 6px; }
.form-submit { min-height: 52px; }
.form-errors { border-radius: 0 7px 7px 0; }

.info-hero, .info-heading { max-width: 940px; padding-block: 65px 45px; }
.info-hero h1, .info-heading h1 { font-size: clamp(3.4rem, 5vw, 4.35rem); }
.info-hero .lead, .info-heading .lead { font-size: 1.3rem; }
.info-layout { grid-template-columns: 220px minmax(0, 760px); gap: 75px; }
.info-nav { top: 114px; }
.info-nav a { min-height: 38px; }
.prose h2 { font-size: 2.25rem; }
.prose h3 { font-size: 1.55rem; }
.prose p, .prose li { max-width: 68ch; color: var(--muted); font-size: 1rem; line-height: 1.7; }
.privacy-content { max-width: 780px; }
.privacy-content h1 { font-size: clamp(3.4rem, 5vw, 4.2rem); }
.not-found { min-height: 520px; }

.cookie-banner { width: min(760px, calc(100% - 32px)); padding: 22px; border: 1px solid #aeb6aa; border-radius: 9px; box-shadow: 0 18px 58px rgb(22 39 30 / 22%); }
.cookie-banner h2 { font-size: 1.75rem; }
.cookie-banner-copy > p:last-child { font-size: .82rem; line-height: 1.55; }
.cookie-actions button { min-height: 46px; border-radius: 6px; font-size: .78rem; }

@media (max-width: 1000px) {
  .course-hero { grid-template-columns: 1fr 1fr; gap: 42px; }
  .course-hero h1 { font-size: clamp(3rem, 5.5vw, 3.8rem); }
  .resource-index-hero, .resource-article-hero { grid-template-columns: 1fr; gap: 42px; }
  .resource-card-grid > .resource-card:first-child { grid-template-columns: 1fr 1fr; }
  .resource-article-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 5%; }
  .about-hero { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 46px; }
}

@media (max-width: 850px) {
  .course-hero { grid-template-columns: 1fr; padding-top: 42px; }
  .course-hero > div { max-width: 720px; }
  .course-hero-photo { max-width: 720px; }
  .course-content { grid-template-columns: 1fr; }
  .course-aside { position: static; max-width: 640px; }
  .day-grid { grid-template-columns: 1fr 1fr; }
  .practical-grid { grid-template-columns: 1fr; }
  .resource-card-grid > .resource-card:first-child { display: block; }
  .resource-card-grid > .resource-card:first-child .resource-card-image img { min-height: 0; height: auto; aspect-ratio: 16 / 10; }
  .resource-article-layout { display: block; }
  .resource-toc { position: static; margin-bottom: 22px; }
  .about-hero { grid-template-columns: 1fr; }
  .about-hero .tutor-photo { max-width: 640px; }
  .about-hero .tutor-photo img { max-height: 650px; }
  .info-hero, .info-heading { margin-inline: 20px; }
  .info-layout { grid-template-columns: 1fr; gap: 30px; }
  .info-nav { position: static; flex-flow: row wrap; }
}

@media (max-width: 620px) {
  .breadcrumb { padding-top: 17px; }
  .breadcrumb-separator { margin-inline: 8px; }
  .facts-grid .icon { font-size: 1.2rem; }
  .compare-grid { row-gap: 42px; }
  .course-hero { gap: 28px; padding-block: 32px 46px; }
  .course-hero h1 { font-size: 2.75rem; }
  .course-hero .lead { font-size: 1.13rem; }
  .course-hero p:not(.eyebrow):not(.lead) { font-size: .91rem; }
  .course-hero-photo img { aspect-ratio: 16 / 10; }
  .facts-band + .course-content { padding-top: 58px; }
  .day-grid { grid-template-columns: 1fr; gap: 22px; }
  .booking-panel { padding: 26px 22px; }
  .related-course { align-items: flex-start; flex-direction: column; }
  .resource-index-hero { padding-top: 43px; padding-bottom: 48px; }
  .resource-index-hero h1, .resource-article-intro h1 { font-size: 2.75rem; }
  .resource-card-grid { grid-template-columns: 1fr; }
  .resource-card-copy { padding: 24px 21px 27px; }
  .resource-author-inner { grid-template-columns: 1fr; }
  .resource-author-inner > picture img { max-height: 390px; }
  .resource-article-hero { padding-top: 36px; padding-bottom: 56px; }
  .resource-prose > section { padding-block: 36px; }
  .resource-prose > section > p { font-size: 1rem; }
  .resource-takeaways { padding: 25px 21px !important; }
  .about-hero { gap: 35px; padding-block: 48px 58px; }
  .about-hero h1 { font-size: 3rem; }
  .about-hero .tutor-photo img { max-height: none; }
  .gallery-grid { grid-template-columns: 1fr; }
  .contact-layout { padding-top: 48px; }
  .contact-intro h1 { font-size: 3rem; }
  .contact-facts { flex-direction: column; gap: 18px; }
  .contact-form-panel { margin-top: 34px; padding: 25px 20px; }
  .contact-form-panel h2 { font-size: 2.1rem; }
  .info-hero, .info-heading { padding-block: 48px 32px; }
  .info-hero h1, .info-heading h1, .privacy-content h1 { font-size: 2.75rem; }
  .cookie-banner { bottom: 8px; width: calc(100% - 16px); max-height: calc(100dvh - 16px); padding: 15px; overflow: auto; }
  .cookie-actions { grid-template-columns: 1fr 1fr; gap: 8px; }
  .cookie-actions button { min-height: 44px; padding: 8px; font-size: .7rem; }
}


/* v1.4.2: concise enquiries and clearer course decisions. */
.contact-layout { max-width: 800px; padding-block: 32px 64px; }
.contact-intro h1 { font-size: clamp(2.15rem, 4vw, 3.15rem); line-height: 1.08; }
.contact-intro .eyebrow { margin-bottom: 10px; }
.contact-intro > p:last-child { margin-top: 14px; }
.contact-form-panel { margin-top: 24px; padding: 28px 32px; }
.form-note { margin-bottom: 20px; }
.identity-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.enquiry-options { margin: 12px 0; padding: 0; border: 1px solid var(--line); border-radius: 7px; background: var(--white); }
.enquiry-options > summary { display: list-item; padding: 16px 18px; color: var(--green); font-size: .9rem; font-weight: 650; line-height: 1.5; cursor: pointer; }
.enquiry-options > summary::marker { color: var(--green); }
.enquiry-options[open] > summary { border-bottom: 1px solid var(--line); }
.enquiry-options-body { padding: 22px 18px; }
.enquiry-options-body > :last-child { margin-bottom: 0; }
.enquiry-options .profile-heading h3 { font-size: 1.55rem; }
.enquiry-options .profile-heading > p:not(.eyebrow), .alternative-preferences p { font-size: .9rem; line-height: 1.6; }
.enquiry-options .profile-heading .eyebrow { display: none; }
.enquiry-options.schedule-preferences, .enquiry-options.photo-profile { margin: 12px 0; padding: 0; }
.enquiry-options .effort-note { padding: 18px; margin-block: 20px; }
.enquiry-options .effort-note strong { font-size: 1.4rem; }
.enquiry-options .effort-note p { font-size: .9rem; }
.enquiry-options .choice-fieldset legend, .enquiry-options .date-fieldset legend { font-size: .9rem; }
.choice-fieldset legend [data-days-label] { display: inline; color: inherit; font-size: inherit; font-weight: inherit; }
.date-grid .field label { font-size: .82rem; }
.alternative-preferences { margin-block: 24px; background: var(--paper); }
.enquiry-offer-context p { margin: 0 0 20px; padding: 14px 16px; background: #e7ece4; border-left: 3px solid var(--green); font-size: .9rem; line-height: 1.6; }
.enquiry-offer-context strong, .enquiry-offer-context span { display: block; }
.js .no-js-offer { display: none; }
[data-offer-context][hidden] { display: none; }
#enquiry-form #message { min-height: 100px; }
.privacy-note { margin-block: 22px 16px; }
.enquiry-next-step { margin-top: 14px; font-size: .85rem; line-height: 1.6; color: var(--muted); }
.course-hero .course-at-a-glance { margin-top: 24px; color: var(--green); }
.course-at-a-glance strong { display: block; font-size: 1.35rem; }
.course-at-a-glance span { display: block; margin-top: 4px; font-size: .95rem; }
.course-editing-example { min-width: 0; align-self: center; }
.course-editing-example .before-after { margin: 0; }
.course-editing-example > p { font-size: .95rem; margin-top: 16px; }
.course-editing-example figcaption { font-size: .82rem; line-height: 1.5; }
.courses-overview-hero { padding-block: 38px 28px; }
.courses-overview-hero h1 { font-size: clamp(2.5rem, 4.3vw, 3.6rem); }
.course-quick-choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.course-quick-choices a { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 20px; border: 1px solid #a5b09f; border-radius: 8px; background: #e7ece4; color: var(--green); }
.course-quick-choices a:hover { background: #dce5d7; }
.course-quick-choices span { font-size: 1.1rem; font-weight: 650; }
.course-quick-choices strong { font-size: 1.3rem; }
.course-quick-choices small { grid-column: 1/-1; font-size: .85rem; }
.course-compare { padding-top: 36px; }
.course-compare .section-heading { margin-bottom: 28px; }
.compare-card { scroll-margin-top: 16px; }
.compare-card .compare-price { margin-block: 14px; color: var(--green); font-size: .9rem; }
.compare-price strong { margin-right: 7px; font-size: 1.55rem; }
/* Size the shared frame, so a two-image comparison cannot determine half the height. */
.compare-card-image { position: relative; aspect-ratio: 16 / 9; height: auto; flex: none; }
.compare-card-image > picture, .compare-card-image > .course-image-comparison { position: absolute; inset: 0; width: 100%; height: 100%; }
.compare-card-image picture { display: block; width: 100%; height: 100%; }
.compare-card-image > .course-image-comparison { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.compare-card-image img, .compare-card-image .course-image-comparison img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; }
@media (min-width: 701px) and (max-width: 950px) {
  .compare-card-image { aspect-ratio: auto; height: 100%; }
}
.teaching-proof { margin: 0 0 40px; padding: 18px 0; border-top: 1px solid var(--line); color: var(--muted); font-size: .9rem; }
.teaching-proof a { color: var(--green); text-decoration: underline; text-underline-offset: 4px; }
.home-tutor-strip { border-bottom: 1px solid var(--line); }
.hero-status, .course-card-status, .availability { font-size: .85rem !important; }
.course-overline, .course-card .course-overline span { font-size: .72rem; }
.cookie-banner h2 { font-size: 1.4rem; }
.cookie-eyebrow { display: none; }
.cookie-banner-copy > p:last-child { font-size: .85rem; }
.cookie-actions button { font-size: .8rem; }
@media (max-width: 700px) {
  .contact-layout { padding-top: 24px; }
  .contact-intro h1 { max-width: 100%; }
  .contact-form-panel { margin-top: 20px; padding: 22px 18px; }
  .identity-fields { grid-template-columns: 1fr; gap: 0; }
  .enquiry-options > summary { padding: 14px 12px; font-size: .86rem; }
  .enquiry-options-body { padding: 18px 12px; }
  .form-submit { width: 100%; }
  .course-quick-choices { gap: 10px; }
  .course-quick-choices a { padding: 14px 12px; grid-template-columns: 1fr; gap: 6px; }
  .course-quick-choices strong { grid-row: 2; font-size: 1.25rem; }
  .course-quick-choices span { font-size: 1rem; }
  .course-quick-choices small { font-size: .8rem; }
  .courses-overview-hero { padding-block: 24px; gap: 20px; }
  .courses-overview-hero h1 { font-size: 2.5rem; }
  .course-compare { padding-top: 28px; }
  .course-compare .section-heading h2 { font-size: 2rem; }
  .teaching-proof { margin-bottom: 28px; line-height: 1.65; }
  .cookie-banner { padding: 13px; }
}

.portfolio-more { margin-block: 32px 64px; border-block: 1px solid var(--line); }
.portfolio-more > summary { padding: 24px 0; font-size: 1.25rem; font-weight: 600; color: var(--green); cursor: pointer; }
.portfolio-more .container { width: 100%; }

.course-hero:has(.course-editing-example) > div:first-child { align-self: start; }
.course-editing-example { justify-self: center; width: 100%; max-width: 430px; }
.course-editing-example .before-after { max-width: 300px; margin-inline: auto; }


/* Keep sourced teaching captions readable beside longer photographer credits. */
.resource-example figcaption:has(a[rel="external"]) { grid-template-columns: minmax(0, 1fr); gap: 10px; font-size: .875rem; line-height: 1.6; }
.resource-example figcaption:has(a[rel="external"]) strong { font-size: 1.125rem; white-space: normal; }
.resource-example figcaption:has(a[rel="external"]) > span { grid-column: 1; grid-row: auto; }
.resource-example figcaption:has(a[rel="external"]) small { font-size: .75rem; letter-spacing: .025em; white-space: normal; }
.resource-example figcaption a[rel="external"] { display: inline-block; padding-block: 4px; text-decoration: underline; text-underline-offset: 3px; }
