/* Green Lake Lodge: brand and page composition over Pico CSS 2.1.1. */
:root[data-theme="light"] {
  --pico-font-family: Arial, Helvetica, sans-serif;
  --pico-font-size: 106.25%;
  --pico-line-height: 1.7;
  --pico-background-color: #f7f5ee;
  --pico-color: #203d35;
  --pico-muted-color: #58685f;
  --pico-primary: #183b31;
  --pico-primary-background: #183b31;
  --pico-primary-border: #183b31;
  --pico-primary-hover: #295b49;
  --pico-primary-hover-background: #295b49;
  --pico-primary-hover-border: #295b49;
  --pico-primary-focus: #c4a77780;
  --pico-border-radius: .15rem;
  --pico-h1-color: #203d35;
  --pico-h2-color: #203d35;
  --pico-h3-color: #203d35;
}
h1, h2 { font-family: Georgia, serif; font-weight: 400; line-height: 1.12; letter-spacing: -.035em; }
h1 { font-size: clamp(2.7rem, 5vw, 4.25rem); }
h2 { font-size: clamp(2rem, 3.6vw, 2.9rem); }
h3 { font-size: 1.1rem; }
main { padding-block: 0; }
section { margin-bottom: 0; padding-block: 4rem; }
figure { margin: 0; }
figure img { width: 100%; object-fit: cover; }
figcaption { font-size: .75rem; }
.eyebrow { font-size: .65rem; letter-spacing: .17em; font-weight: 700; }
.header-inner, footer { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
.site-header {
  background: #183b31;
  border-bottom: 3px solid #c4a777;
  padding-block: 1.5rem;
  --pico-color: #f7f5ee;
  --pico-primary: #f7f5ee;
  --pico-primary-hover: #e3c99e;
  --pico-primary-focus: #c4a77780;
}
.site-header .brand small { color: #e3c99e; }
.brand { display: flex; align-items: center; gap: .8rem; text-decoration: none; font-weight: 600; letter-spacing: .09em; line-height: 1.4; }
.brand small { display: block; font-size: .55rem; margin-top: .3rem; }
nav { font-size: .85rem; }
.hero, .intro, .section-heading, .membership, .visit-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 4rem; align-items: center; }
.hero-copy > p:not(.eyebrow), .intro p:not(.eyebrow), .membership p:not(.eyebrow) { color: var(--pico-muted-color); }
.hero-photo img { aspect-ratio: .91; border-radius: 10rem 10rem .15rem .15rem; }
.hero .text-link { display: block; margin-top: 1rem; }
.text-link { font-size: .85rem; }
.intro { grid-template-columns: 1fr 2fr; align-items: start; border-top: 1px solid #d9ded4; }
.history { background: #e9ede4; }
.timeline { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; padding: 1rem 0 0; margin: 0; }
.timeline li { list-style: none; border-top: 1px solid #a5b3a3; padding-top: 1.3rem; }
.timeline li > span { display: block; font: 2.6rem Georgia, serif; color: #61775b; margin-bottom: 1rem; }
.timeline p, .steps p { font-size: .9rem; }
.membership img { aspect-ratio: .86; }
.steps { padding-left: 1.4rem; }
.steps li { padding-left: .5rem; margin-bottom: 1rem; }
.steps li::marker { color: #61775b; }
.steps h3 { margin-bottom: .3rem; }
.steps p { margin-bottom: 0; }
.visit { --pico-color: #f7f5ee; background: #183b31; color: #f7f5ee; --pico-h2-color: #f7f5ee; --pico-h3-color: #f7f5ee; }
.visit .eyebrow { color: #d5bd94; }
.visit p { color: #d4ded6; }
.dinner { border-left: 1px solid #496156; padding-left: 2.5rem; }
.dinner dl { display: flex; gap: 3rem; }
.dinner dt, .dinner-note { font-size: .8rem; }
.dinner dd { margin: 0; font: 2.3rem Georgia, serif; }
.dinner dd small { font: .75rem Arial, sans-serif; }
footer p, footer > a:last-child { font-size: .7rem; margin: 0; }
.footer-brand { font: .8rem Georgia, serif; letter-spacing: 0; }
.skip { position: absolute; top: -5rem; left: 1rem; padding: .6rem; background: white; z-index: 10; }
.skip:focus { top: 1rem; }
@media (max-width: 991px) {
  .header-inner, footer { flex-wrap: wrap; }
  .hero, .membership, .visit-grid, .section-heading { gap: 2rem; }
}
@media (max-width: 767px) {
  section { padding-block: 2.5rem; }
  .hero, .intro, .section-heading, .timeline, .membership, .visit-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .site-header nav { width: 100%; }
  .site-header nav ul { width: 100%; justify-content: space-between; }
  .hero-photo img, .membership img { aspect-ratio: 1; }
  .dinner { border-left: 0; border-top: 1px solid #496156; padding: 1.5rem 0 0; }
}

/* A simple typographic lodge identity. */
.site-header .brand { font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; font-weight: 400; letter-spacing: -.02em; }
.site-header .brand small { font-family: var(--pico-font-family); font-size: .6rem; font-weight: 600; letter-spacing: .12em; }

/* Review refinements: clearer navigation and a quieter footer. */
.site-header nav a { font-weight: 600; }


/* Consistent reading rhythm and compact screens. */
h1, h2, h3 { text-wrap: balance; }
h3 { line-height: 1.35; }
section[id] { scroll-margin-top: 1.5rem; }
.hero-copy > p, .intro > div, .membership > div > p { max-width: 62ch; }
.eyebrow { margin-bottom: .75rem; }
.intro > div > p:last-child, .timeline p, .section-heading > p,
.visit-grid > div > p:last-child, .dinner-note { margin-bottom: 0; }
.section-heading { margin-bottom: 1.5rem; }
.visit-address { font-style: normal; line-height: 1.65; margin-top: 1.5rem; }
.dinner dl { margin-block: 1.5rem; flex-wrap: wrap; gap: 1rem 3rem; }
footer { padding-block: 1.5rem; gap: .75rem 1.5rem; }
@media (max-width: 767px) {
  h1 { font-size: clamp(2.2rem, 8vw, 3.3rem); }
  .header-inner { gap: 1rem; }
  .site-header .brand { font-size: clamp(1.5rem, 6vw, 1.8rem); }
  .site-header nav ul { margin-inline: 0; gap: .25rem; flex-wrap: wrap; }
  .site-header nav li { padding: 0; }
  .site-header nav a { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: .45rem .25rem; }
  .section-heading { margin-bottom: .5rem; }
  footer { align-items: flex-start; flex-direction: column; }
}

/* Scope Pico's link palette to the dark visiting section, including focus states. */
.visit {
  --pico-primary: #f7f5ee;
  --pico-primary-hover: #e3c99e;
  --pico-primary-underline: #c4a777;
  --pico-primary-hover-underline: #e3c99e;
  --pico-primary-focus: #c4a77780;
}
.visit .visit-address a,
.visit .visit-address a:visited {
  display: inline-block;
  color: #f7f5ee;
  text-decoration-color: #c4a777;
  text-underline-offset: .2em;
}
.visit .visit-address a:is(:hover, :active, :focus) { color: #e3c99e; }
.visit .visit-address a:focus-visible { outline: 2px solid #e3c99e; outline-offset: 4px; }

.history-continuation { max-width: 70ch; margin-top: 2rem; }
.history-continuation p { margin-bottom: 0; }

.history-continuation { padding-top: 1rem; font-size: .9rem; }
.history-records { margin-top: 2.5rem; border-top: 1px solid #a5b3a3; padding-top: 1.5rem; }
.history-records summary { font-weight: 600; line-height: 1.5; }
.past-masters, .honorary-masters { columns: 3 16rem; column-gap: 2rem; padding: 0; margin-top: 1.5rem; }
.past-masters li, .honorary-masters li { list-style: none; break-inside: avoid; padding-block: .3rem; font-size: .9rem; }
.master-year { display: inline-block; width: 3.2em; font-variant-numeric: tabular-nums; color: var(--pico-muted-color); }
