:root{--ink:#102d28;--bg:#fbf7ed;--gold:#ffce52;--green:#154a39;--muted:#577064}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #e58513;outline-offset:4px}header,footer,.wrap{padding-inline:clamp(18px,5vw,90px)}header{background:white;display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px;border-bottom:1px solid #d7dacc}header img{height:54px;display:block}nav{display:flex;gap:24px;align-items:center;font-size:.91rem;font-weight:650}.btn{display:inline-flex;gap:18px;align-items:center;background:var(--gold);border:0;border-radius:100px;padding:11px 20px;color:#1d3022;font-weight:720;cursor:pointer}.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--green);color:white;position:relative}.hero-copy{padding:clamp(40px,5vw,86px);align-self:center}.micro{font-size:.71rem;font-weight:780;letter-spacing:.15em;text-transform:uppercase}.hero .micro{color:#f9dc8b}.star{font-size:1.3rem;vertical-align:middle;color:#d49a18}.display,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:500;letter-spacing:-.048em;line-height:1.05;margin:0}.display{font-size:clamp(3rem,5.4vw,6rem);margin:18px 0}.display i,h2 i{font-weight:400;color:var(--gold)}.hero p{max-width:42ch;color:#eef0e6;margin:0 0 24px}.slide{position:relative;min-height:380px;background:#193645}.slide img{position:absolute;width:100%;height:100%;object-fit:cover}.controls{position:absolute;bottom:17px;right:16px;display:flex;align-items:center;gap:8px;background:#0e241fe6;color:white;border-radius:50px;padding:5px 8px;font-size:12px}.controls button{border:0;background:none;color:white;cursor:pointer;padding:5px 8px}.stripe{height:10px;background:repeating-linear-gradient(118deg,#f3cb6b 0 12px,#fbf7ed 12px 24px)}section.wrap{padding-block:clamp(38px,5vw,76px)}h2{font-size:clamp(2.15rem,3.5vw,3.7rem);margin:8px 0 24px}h3{font-size:1.6rem}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.card{display:block}.card img,.gallery img{width:100%;height:auto;aspect-ratio:1.6;object-fit:cover;display:block;border-radius:8px}.card img{transition:filter .2s}.card:hover img{filter:brightness(1.08)}.cardline{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid #b6c6b8}.arrow{border:1px solid #a2b09e;border-radius:50%;width:32px;height:32px;display:grid;place-items:center;flex:none}.winter{background:#e1ebe4}.winter .grid{grid-template-columns:1fr 1fr}.story{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(20px,6vw,90px)}.story img{width:100%;border-radius:8px}.story p,.intro{max-width:58ch}.contact{background:var(--ink);color:white}.contact .wrap{padding-block:48px}.contact .micro{color:var(--gold)}footer{padding-block:20px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:.84rem}footer a{text-decoration:underline}.back{display:inline-block;margin-bottom:15px;text-decoration:underline}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery button{padding:0;background:none;border:0;cursor:zoom-in}.gallery img{aspect-ratio:1.35}.gallery video{width:100%;border-radius:8px}.detail{padding-block:34px}.detail h1{max-width:18ch}dialog{background:#102d28;color:white;border:0;border-radius:9px;max-width:min(95vw,1000px);padding:12px}dialog::backdrop{background:#091612d9}dialog img{max-width:100%;max-height:76vh;display:block;margin:auto}dialog button{margin:8px 0 0;cursor:pointer}.form{display:grid;gap:14px;max-width:640px}.form label{font-weight:bold}.form :is(input,select,textarea){display:block;width:100%;padding:10px;margin-top:4px;border:1px solid #a5afa5;border-radius:5px;background:white;color:var(--ink)}.form .btn{justify-self:start}.navmobile{display:none}details{position:relative}summary{cursor:pointer}.navdrop{position:absolute;top:30px;background:white;color:var(--ink);padding:12px;box-shadow:0 4px 15px #0002;z-index:5;min-width:180px}.navdrop a{display:block;padding:7px}.intro{font-size:1.1rem}.subtle{font-size:.9rem;color:var(--muted)}@media(max-width:760px){header{height:auto;min-height:64px;flex-wrap:wrap;gap:0;padding-block:8px}header img{height:42px}.navmobile{display:block;border:0;background:#edf1e8;color:var(--ink);padding:8px 15px;border-radius:24px}nav{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:13px;padding:15px 0}nav.open{display:flex}.navdrop{position:static;box-shadow:none}.hero{grid-template-columns:1fr}.hero-copy{padding:30px 20px}.slide{min-height:265px}.display{font-size:3.25rem}.grid,.winter .grid{grid-template-columns:1fr 1fr;gap:12px}.gallery{grid-template-columns:1fr 1fr}.story{grid-template-columns:1fr}.cardline h3{font-size:1.35rem}.arrow{width:24px;height:24px}.card img{aspect-ratio:1.25}}@media(max-width:380px){.grid,.winter .grid{grid-template-columns:1fr}}

/* Complete gallery rows: distribute the final four items in two pairs. */
@media (min-width:761px){
  .gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
  .gallery>*{grid-column:span 2;min-width:0}
  .gallery:has(>:last-child:nth-child(3n+1))>:nth-last-child(-n+4),
  .gallery:has(>:last-child:nth-child(3n+2))>:nth-last-child(-n+2){grid-column:span 3}
  .gallery>:only-child{grid-column:1/-1}
}
/* For odd collections, use a single-column sequence on narrow screens. */
@media (max-width:760px){
  :is(.grid,.gallery):has(>:last-child:nth-child(odd)){grid-template-columns:minmax(0,1fr)}
  .gallery:has(>:last-child:nth-child(odd)) img{aspect-ratio:1.85}
}

/* The family colours, from the evening lights to the paper of a fairground ticket. */
:root{--bg:#faf5e9;--ink:#193b2d;--green:#194936;--gold:#eed180}
header{background:#fffdf7;border-bottom-color:#ded6bd;height:68px}
.hero{background:#f6efdf;color:var(--ink);grid-template-columns: .88fr 1.12fr;padding:clamp(18px,2.6vw,42px) clamp(18px,5vw,90px);gap:clamp(20px,4vw,72px);align-items:center}
.hero-copy{padding:18px 0}.hero .micro{color:#536444}.hero p{color:#354c3e}.hero .display{font-size:clamp(2.9rem,4.8vw,5rem);line-height:1.02}.display i{color:#236342}
.hero .slide{min-height:0;height:clamp(300px,29vw,440px);overflow:hidden;border-radius:120px 10px 10px 10px;border:1px solid #c3ac73}
.hero .slide img{object-position:50% 70%}.stripe{height:5px;background:repeating-linear-gradient(115deg,#809677 0 9px,#f5eccf 9px 18px,#d5b969 18px 27px,#f5eccf 27px 36px)}
.btn{background:var(--green);color:#fffcf1}.contact .btn{background:var(--gold);color:var(--ink)}
section.wrap{padding-block:clamp(28px,3.5vw,52px)}h2{font-size:clamp(2rem,3.1vw,3rem);margin-bottom:18px}
.card{border-radius:8px;background:#fffdf6;border:1px solid #ddd4bc;overflow:hidden}.card img{border-radius:0}.cardline{padding:11px 14px;border:0}.arrow{background:#f4ecd6;border-color:#dac78f}
.winter{background:#e6ece1}.story img{border:7px solid #fffdf7;outline:1px solid #ddd4bc}
.detail .display{font-size:clamp(2.5rem,4vw,4rem)}.contact{background:#214335}.contact .wrap{padding-block:36px}
@media(max-width:760px){
 header{height:auto}.hero{grid-template-columns:1fr;gap:16px;padding-block:16px 20px}.hero-copy{padding:5px 0}.hero .slide{height:clamp(220px,53vw,300px);border-radius:65px 8px 8px 8px}.hero .display{font-size:clamp(2.55rem,8vw,3.25rem);margin:10px 0}.hero p{margin-bottom:14px}.grid:has(>:last-child:nth-child(odd)) .card{display:grid;grid-template-columns:43% 1fr}.grid:has(>:last-child:nth-child(odd)) .card img{height:100%;aspect-ratio:1.7}.cardline{padding:10px}
}
