@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--ink:#262b32;--muted:#69717d;--rose:#c65c82;--blush:#faedf1;--cream:#fffaf6;--line:#ece4e3;--white:#fff;--shadow:0 18px 50px #462e3014}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--cream);font:16px/1.75 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}h1,h2,h3{line-height:1.18;margin:0 0 22px}h1,h2{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.035em}h1{font-size:clamp(2.8rem,5.2vw,5.6rem)}h2{font-size:clamp(2.1rem,3.4vw,3.5rem)}h3{font-size:1.25rem}p{margin:0 0 18px}.eyebrow{letter-spacing:.19em;font-size:.75rem;font-weight:700;color:var(--rose);text-transform:uppercase}.container{max-width:1200px;margin:auto;padding:0 28px}.narrow{max-width:850px}.site-header{position:sticky;top:0;z-index:20;background:#fffdfaf0;backdrop-filter:blur(16px);border-bottom:1px solid #e9e2df}.nav{display:flex;align-items:center;justify-content:space-between;min-height:79px;gap:20px}.logo{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.65rem;white-space:nowrap}.logo span{color:var(--rose)}.navlinks{display:flex;gap:29px;align-items:center}.navlinks a{font-size:.9rem;font-weight:700;color:#4c5359}.navlinks a:hover,.navlinks a.active{color:var(--rose)}.menu-toggle{display:none;background:none;border:0;font-size:1.5rem;cursor:pointer}.hero{position:relative;min-height:clamp(430px,42vw,620px);background:linear-gradient(90deg,#151515b0 0%,#1815154b 38%,#00000000 68%),url('assets/hero.jpg') center 43%/cover no-repeat;display:flex;align-items:center;color:white}.hero .container{width:100%}.hero-inner{max-width:550px;padding:70px 0}.hero h1{margin:10px 0 14px;text-shadow:0 3px 14px #0003}.hero p{max-width:460px;font-size:1.12rem;color:#fffdf4}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:35px;background:var(--rose);color:white;font-size:.92rem;font-weight:700;padding:13px 24px;gap:8px;transition:transform .2s,background .2s;cursor:pointer}.btn:hover{transform:translateY(-2px);background:#ae426b}.btn.outline{background:transparent;border-color:#ffffffbd;color:white}.btn.light{background:white;color:var(--rose);border-color:#eddde0}.btnrow{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.noticebar{background:#322e36;color:#f5ebec;text-align:center;padding:11px 20px;font-size:.8rem}.section{padding:92px 0}.section.soft{background:#f7eff0}.intro{font-size:1.16rem;color:#545960;max-width:800px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px}.split img{height:550px;width:100%;object-fit:cover;border-radius:180px 180px 12px 12px;box-shadow:var(--shadow)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:35px}.card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 8px 20px #31212708}.card img{width:100%;height:290px;object-fit:cover}.card-body{padding:23px}.card-body h3{margin-bottom:9px}.card-body p{color:var(--muted);font-size:.94rem}.text-link{color:#a84266;font-weight:700;font-size:.92rem}.quote{border-left:4px solid var(--rose);padding:10px 0 10px 28px;margin:32px 0;font:italic 1.5rem/1.5 'Playfair Display',Georgia,serif}.pagehead{background:linear-gradient(115deg,#f9e6ec,#fff6ec);padding:86px 0 70px}.pagehead h1{margin:10px 0}.pagehead .intro{margin-bottom:0}.prose h2{margin-top:48px;font-size:2.25rem}.prose h3{margin-top:30px}.prose p,.prose li{color:#4e555e}.prose ul{padding-left:23px}.prose strong{color:#272d34}.pill{display:inline-block;background:#f9e5ed;color:#983857;border-radius:50px;font-size:.76rem;font-weight:700;padding:5px 13px;margin-bottom:16px}.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:30px}.gallery figure{margin:0;position:relative;border-radius:12px;overflow:hidden;background:#eee;cursor:pointer}.gallery img{height:370px;width:100%;object-fit:cover;transition:transform .3s}.gallery figure:hover img{transform:scale(1.04)}.gallery figcaption{font-size:.76rem;position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#171217b9);color:white;padding:38px 12px 12px}.disclosure{background:#fff;border:1px solid #ead9de;border-radius:14px;padding:24px 28px;margin:32px 0}.disclosure h3{color:#9d3c60;margin-bottom:8px}.disclosure p:last-child{margin-bottom:0}.song-list{display:grid;grid-template-columns:repeat(2,1fr);gap:17px;margin-top:30px}.song{background:white;padding:28px;border-radius:12px;border:1px solid var(--line)}.song .number{color:var(--rose);font-weight:700;letter-spacing:.2em;font-size:.72rem}.song p{color:var(--muted);font-size:.91rem}.small{font-size:.84rem;color:var(--muted)}.footer{background:#292831;color:#e9e6e8;padding:54px 0 22px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:35px}.footer a{display:block;margin:7px 0;color:#e8dadd;font-size:.9rem}.footer h3{font-family:'Playfair Display';margin-bottom:12px}.footer p{max-width:450px;color:#c4bec6;font-size:.88rem}.footer-bottom{border-top:1px solid #59515c;padding-top:18px;margin-top:38px;font-size:.77rem;color:#b9b2bb}.footer-bottom p{margin:0}.law-note{border:1px solid #e8d8cf;background:#fff7ee;border-radius:12px;padding:20px 24px;margin:25px 0}.legal p{font-size:.95rem}.legal h2{font-size:1.8rem}.lightbox{display:none;position:fixed;inset:0;z-index:40;background:#000e;align-items:center;justify-content:center;padding:35px}.lightbox.open{display:flex}.lightbox img{max-height:86vh;max-width:90vw;object-fit:contain}.lightbox button{position:absolute;right:25px;top:18px;color:#fff;border:0;background:transparent;font-size:2.3rem;cursor:pointer}.callout{background:#34303c;color:white;border-radius:16px;padding:45px;margin:30px 0}.callout p{color:#f4e8ee}.callout .eyebrow{color:#ffb9d2}.coloured{color:var(--rose)}@media(max-width:850px){.split{grid-template-columns:1fr;gap:35px}.split img{height:420px;max-width:460px;margin:auto}.cards{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.hero{background-position:58% center}.hero-inner{max-width:460px}}@media(max-width:600px){.container{padding:0 20px}.nav{min-height:65px}.menu-toggle{display:block}.navlinks{display:none;position:absolute;top:65px;left:0;right:0;background:white;padding:15px 25px 24px;flex-direction:column;align-items:stretch;gap:12px;box-shadow:0 14px 22px #0001}.navlinks.open{display:flex}.hero{min-height:610px;background:linear-gradient(0deg,#171217d4 0%,#17121755 50%,#0000 100%),url('assets/hero.jpg') 39% center/cover}.hero{align-items:flex-end}.hero-inner{padding:40px 0 45px}.section{padding:60px 0}.cards{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr);gap:9px}.gallery img{height:260px}.song-list{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.pagehead{padding:55px 0}.card img{height:300px}.callout{padding:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* v2: preserve facial framing in the homepage photographs */
@media (min-width:851px){
 .hero{background:linear-gradient(270deg,rgba(20,16,22,.78) 0%,rgba(20,16,22,.52) 31%,rgba(20,16,22,.06) 60%,transparent 85%),url('assets/hero.jpg') center 43%/cover no-repeat}
 .hero .container{display:flex;justify-content:flex-end}
 .hero-inner{width:min(43%,520px);max-width:520px;padding:70px 0 70px 15px}
}
.split img{object-position:center 13%}
.card img{object-position:center 12%}
@media (min-width:601px) and (max-width:850px){
 .hero{background:linear-gradient(270deg,rgba(20,16,22,.78),rgba(20,16,22,.17) 67%,transparent),url('assets/hero.jpg') center 43%/cover no-repeat}
 .hero .container{display:flex;justify-content:flex-end}
 .hero-inner{max-width:43%;padding:55px 0}
 .hero h1{font-size:clamp(2.3rem,5.3vw,4.5rem)}
 .hero p{font-size:1rem}
}
@media(max-width:600px){
 .hero{background:linear-gradient(0deg,rgba(23,18,23,.93) 0%,rgba(23,18,23,.6) 36%,transparent 77%),url('assets/hero.jpg') 39% center/cover no-repeat}
 .split img{object-position:center 10%}
 .card img{object-position:center 9%}
}

/* v3: preserve clean portrait captions and visible focus */
.gallery figcaption{font-size:.84rem;font-weight:600}
.gallery figure:focus-within{outline:3px solid var(--rose);outline-offset:3px}
