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

:root {
  --paper: #f7f8f2;
  --ink: #18241b;
  --sage: #e9eee2;
  --green: #264432;
  --red: #264432;
  --cream: #f7f8f2;
  --black: #18241b;
  --muted: #505b51;
  --line: #d6ddd0;
  --display: 'Instrument Serif', Georgia, serif;
  --sans: 'DM Sans', system-ui, sans-serif;
}

body { background: var(--paper); color: var(--ink); font: 16px/1.55 var(--sans); }
h1, h2, h3 { font-family: var(--display); font-weight: 400; letter-spacing: -.025em; }
h1 { font-size: clamp(48px, 7vw, 94px); line-height: .99; }
h2 { font-size: clamp(37px, 5vw, 62px); line-height: 1; }
h3 { font-size: clamp(28px, 3vw, 36px); line-height: 1.08; }
p { color: var(--muted); }
button, .button, .textlink, .eyebrow, nav { font-family: var(--sans); }
.button {
  background: var(--green); border: 1px solid var(--green); color: #fff;
  min-height: 47px; padding: 12px 19px; border-radius: 5px;
  font-size: 14px; font-weight: 700; line-height: 1.25; letter-spacing: 0;
}
.button:hover { background: #142d1f; border-color: #142d1f; }
.button.outline { background: transparent; color: var(--green); border-color: #9cae9e; }
.button.outline:hover { background: var(--sage); border-color: var(--green); }
.textlink, .golf-textlink { color: var(--green); font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.textlink { border-color: currentColor; }
.golf-textlink:hover { color: #506b51; }

body > .reference-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 17px max(28px, calc((100% - 1200px) / 2));
  background: var(--paper); border-bottom: 1px solid var(--line);
}
.reference-header .brand { width: 176px; }
.reference-header .menubutton { display: none; color: var(--ink); border-color: var(--line); border-radius: 5px; }
body > .reference-header nav {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 6px 24px; color: var(--ink); font: 600 14px/1.3 var(--sans); letter-spacing: 0;
}
.reference-header nav a:hover, .reference-header nav .active-nav { color: #47664a; text-decoration: underline; }
.reference-header .nav-book { background: var(--green); color: #fff; padding: 10px 15px; border-radius: 5px; }
.reference-header .nav-book:hover { color: #fff; background: #142d1f; }
#mobile-menu { background: var(--paper); color: var(--ink); border-bottom: 1px solid var(--line); }
#mobile-menu a { padding: 9px 0; font: 600 15px var(--sans); }

.golf-wrap, .reference-wrap { width: min(1200px, calc(100% - 56px)); margin-inline: auto; }
.golf-hero {
  display: grid; grid-template-columns: .84fr 1.16fr;
  gap: clamp(24px, 5vw, 72px); align-items: center; padding-block: 48px 60px;
}
.golf-hero-copy { padding-block: 22px; }
.golf-kicker {
  margin-bottom: 13px; color: var(--green); font-size: 11px;
  font-weight: 700; letter-spacing: .15em; line-height: 1.4;
}
.golf-lead { margin-top: 22px; max-width: 435px; font-size: 17px; }
.golf-hero .actions { gap: 9px; margin-top: 26px; }
.golf-hero-note { margin-top: 13px; font-size: 13px; }
.golf-hero-photo { overflow: hidden; border-radius: 7px; background: #cdd8c4; }
.golf-hero-photo img { width: 100%; height: clamp(365px, 41vw, 540px); object-fit: cover; object-position: center; }

.golf-section { padding-block: 48px 60px; }
.golf-section-head { display: flex; justify-content: space-between; align-items: end; gap: 15px; margin-bottom: 23px; }
.golf-programmes, .golf-guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.golf-programmes article, .golf-guide-grid article {
  overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 7px;
}
.golf-programmes article > a, .golf-guide-grid article > a { display: block; height: 100%; }
.golf-programmes img, .golf-guide-grid img { width: 100%; height: auto; aspect-ratio: 1.8; object-fit: cover; }
.golf-programmes article > a > div, .golf-guide-grid article > a > div { padding: 19px 21px 22px; }
.golf-programmes article h3, .golf-guide-grid article h3 { margin-bottom: 8px; }
.golf-programmes article p:not(.golf-kicker) { margin-bottom: 13px; }
.golf-programmes article .golf-kicker { margin-bottom: 7px; }
.golf-programmes article:hover, .golf-guide-grid article:hover { border-color: #899b8c; }
.golf-guide-grid h3 { font-size: clamp(24px, 3vw, 32px); }
.golf-coach { background: var(--sage); padding-block: 56px; }
.golf-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(22px, 6vw, 74px); }
.golf-split img { width: 100%; height: auto; aspect-ratio: 1.45; object-fit: cover; border-radius: 7px; }
.golf-split p:not(.golf-kicker) { margin-block: 13px; }
.golf-venue { padding-block: 16px; }
.golf-questions { max-width: 800px; }
.reference-faq h3 { font-size: clamp(34px, 5vw, 48px); margin-bottom: 15px; }
.reference-faq details { border-bottom: 1px solid var(--line); padding: 13px 0; }
.reference-faq summary { font-weight: 600; }
.reference-faq details p { margin: 9px 0 3px; }
.reference-faq p a { text-decoration: underline; }
.golf-cta { background: var(--sage); text-align: center; padding-block: 48px; }
.golf-cta p { margin-top: 11px; }
.golf-cta .actions { justify-content: center; margin-top: 18px; }

body > .reference-footer { display: block; background: #182b1e; color: #eef1e8; padding: 39px 0 17px; }
.reference-footer-content { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 34px; }
.reference-footer .footerbrand { display: block; width: min(190px, 100%); background: #f8faf4; padding: 7px; border-radius: 4px; }
.reference-footer p { color: #d5dfd1; font-size: 14px; margin-top: 11px; }
.reference-footer h3 { color: #fff; font-size: 28px; margin-bottom: 10px; }
.reference-footer-links { display: grid; gap: 5px; font-size: 14px; }
.reference-footer a:hover { text-decoration: underline; }
.reference-copyright { padding-top: 20px; text-align: center; }

.programme-intro { background: var(--sage); color: var(--ink); }
.programme-intro-inner { display: flex; align-items: center; gap: 42px; padding-block: 50px; }
.programme-intro-inner > div { flex: 1; }
.programme-intro-inner h1 { font-size: clamp(42px, 6vw, 76px); margin-bottom: 15px; }
.programme-intro-inner p { max-width: 620px; }
.programme-intro-inner img { width: min(43%, 490px); aspect-ratio: 1.5; object-fit: cover; border-radius: 7px; height: auto; }
.programme-intro-inner img[src$="coach-edmund-ai.png"] { object-fit: contain; }
.programme-content { margin-block: 30px 50px; }
.programme-block, .programme-grid article { background: #fff; padding: clamp(18px, 3vw, 32px); border: 1px solid var(--line); border-radius: 7px; }
.programme-block + .programme-block { margin-top: 16px; }
.programme-block h2 { font-size: clamp(30px, 4vw, 45px); margin-bottom: 14px; }
.programme-block p + p { margin-top: 8px; }
.programme-block p a, .programme-table a { color: var(--green); text-decoration: underline; }
.programme-block .button { margin-top: 12px; }
.programme-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.programme-grid article { padding: 0; overflow: hidden; }
.programme-grid article img { width: 100%; aspect-ratio: 1.8; object-fit: cover; }
.programme-grid article > div { padding: 18px; }
.programme-grid h3 { font-size: 32px; margin-bottom: 9px; }
.programme-grid .button { margin-top: 14px; }
.programme-syllabus { margin: 0; padding-left: 1.5rem; }
.programme-syllabus li { padding: 9px 4px; border-bottom: 1px solid var(--line); }
.programme-table { overflow-x: auto; margin-bottom: 14px; }
.programme-table table { width: 100%; border-collapse: collapse; text-align: left; }
.programme-table th, .programme-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.programme-table thead { background: var(--sage); }
.programme-table td:last-child { white-space: nowrap; }

.blog-title, .student-intro, .booking-intro { background: var(--sage); color: var(--ink); }
.blog-title h1, .student-intro h1, .booking-intro h1, .post-header h1, .ai-page-hero h1 { font-family: var(--display); }
.blog-title h1, .student-intro h1, .booking-intro h1, .ai-page-hero h1 { font-size: clamp(46px, 7vw, 78px); }
.student-intro p, .booking-intro p, .blog-title p { color: var(--muted); }
.student-intro .textlink, .booking-intro .textlink { color: var(--green); }
.blog-title { padding-block: 38px; }
.blogcard { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 7px; margin-bottom: 18px; }
.blogcard > div { padding: 19px 23px; }
.blogcard h2 { font-size: clamp(28px, 4vw, 42px); }
.blog-cover img { object-fit: cover; }
.post-header, .full-post { background: #fff; }
.whatsapp-float { background: #315740; }

@media (max-width: 900px) {
  body > .reference-header { display: block; padding: 13px 22px; }
  .reference-header .brandrow { justify-content: space-between; }
  .reference-header .menubutton { display: block; }
  body > .reference-header nav { display: none; }
  .golf-programmes, .golf-guide-grid, .programme-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .golf-wrap, .reference-wrap { width: calc(100% - 34px); }
  .golf-hero, .golf-split { grid-template-columns: 1fr; gap: 21px; }
  .golf-hero { padding-block: 20px 27px; }
  .golf-hero-copy { padding-block: 0; }
  .golf-lead { margin-top: 13px; }
  .golf-hero .actions { margin-top: 17px; }
  .golf-hero-photo img { height: auto; aspect-ratio: 1.35; }
  .golf-section, .golf-coach { padding-block: 28px; }
  .golf-section-head { align-items: start; flex-direction: column; }
  .golf-programmes, .golf-guide-grid, .programme-grid, .reference-footer-content { grid-template-columns: 1fr; gap: 15px; }
  .programme-intro-inner { flex-direction: column; align-items: flex-start; gap: 21px; padding-block: 28px; }
  .programme-intro-inner img { width: 100%; max-height: 235px; }
  .programme-table th, .programme-table td { padding: 8px 6px; font-size: 14px; }
  .whatsapp-float { bottom: 18px; }
  body:has(.mobilecta) .whatsapp-float { bottom: calc(88px + env(safe-area-inset-bottom)); }
}

.reference-faq h2 { font-size: clamp(34px, 5vw, 48px); margin-bottom: 15px; }
.golf-review { background: var(--sage); padding: 36px 0; text-align: center; }
.golf-review blockquote { font: 400 clamp(28px, 4vw, 44px)/1.12 var(--display); margin: 0 auto 10px; max-width: 750px; }
.golf-review p { margin-bottom: 11px; }
.student-welcome, .golf-record, .booking-account { background: #fff; border-radius: 7px; }
.booking-intro h1, .student-intro h1 { color: var(--ink); }
body:has(.golf-hero) .golf-hero h1 { text-wrap: balance; }
