@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Playfair+Display:ital,wght@0,600;0,700;0,800;1,600&display=swap');
:root{--red:#a7080a;--wine:#620305;--gold:#c78e1c;--cream:#fbf6eb;--ink:#21180f;--line:#e6d9bd}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 6vw;background:#fffdf8;border-bottom:1px solid #e9dfcc}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#17110c;font-family:'Playfair Display',serif;font-weight:800;font-size:22px;line-height:.9}.brand small{display:block;font:700 8px 'DM Sans';letter-spacing:.08em;margin-bottom:5px}.brand i,h1 em{font-style:normal;color:var(--gold)}.cross{color:var(--red);font-size:36px}nav{display:flex;align-items:center;gap:28px}nav a,.back{color:var(--ink);text-decoration:none;font-weight:700;font-size:14px}.nav-button,.gold-button{display:inline-flex;align-items:center;gap:22px;background:linear-gradient(110deg,#9d650c,#edc85e,#9f680e);color:#fff!important;padding:13px 19px;text-decoration:none;border:0;font-weight:700;cursor:pointer;box-shadow:0 4px 13px #7d51042b}.gold-button span{font-size:19px}.hero{min-height:570px;padding:86px 11vw;display:flex;justify-content:space-between;align-items:center;gap:60px;position:relative;overflow:hidden;color:white;background:radial-gradient(circle at 68% 22%,#fff0b3 0 2%,#f0bd51 3%,transparent 22%),linear-gradient(115deg,#420304 0%,#9e070b 41%,#701104 100%)}.hero:after{content:'♫  ♪  ♫';font:130px serif;position:absolute;right:20%;bottom:-28px;color:#edc56555;transform:rotate(-11deg)}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:11px;letter-spacing:.17em;font-weight:700;margin:0 0 13px}.eyebrow.red{color:var(--red)}h1,h2{font-family:'Playfair Display',serif;margin:.15em 0}h1{font-size:clamp(52px,7vw,88px);line-height:.83;letter-spacing:-.045em}h2{font-size:31px;line-height:1.05}.ribbon{display:inline-block;margin:19px 0 7px;padding:5px 26px;background:linear-gradient(90deg,#a60408,#db2c19,#9c0306);font-family:'Playfair Display';font-size:21px;font-weight:700;letter-spacing:.03em}.tagline{font:italic 20px 'Playfair Display',serif}.hero-card{position:relative;z-index:1;background:#fffdf5;color:var(--red);padding:32px 36px;text-align:center;width:245px;box-shadow:0 12px 35px #21000055;border:7px solid #e6bd54}.hero-card span,.amount-card span,.ticket aside small{font-size:11px;font-weight:700;letter-spacing:.12em}.hero-card strong{display:block;font:bold 58px 'Playfair Display';line-height:1}.hero-card b{font-size:13px}.hero-card h2{font-size:54px;line-height:.8}.hero-card sup{font-size:16px}.hero-card p{font-size:11px;font-weight:700;margin:9px 0}.hero-card hr{border:0;border-top:1px solid #dfc27c;margin:21px 0}.event-panel,.how{padding:85px 10vw;display:flex;justify-content:space-between;gap:55px;align-items:center;background:#fff}.event-panel h2,.how h2{font-size:39px}.muted{color:#766d63;line-height:1.6}.details{display:flex;border-left:1px solid var(--line)}.details article{padding:8px 22px;display:flex;gap:10px;align-items:center;border-right:1px solid var(--line)}.details b{font:700 38px 'Playfair Display';color:var(--red)}.details span{font-size:11px;font-weight:700}.choirs{background:linear-gradient(115deg,#faf1dc,#fff);padding:72px 15vw}.choirs ol{columns:2;max-width:700px;margin:20px 0;padding-left:25px;font-weight:700;line-height:2}.choirs li::marker{color:var(--red);font-family:'Playfair Display';font-size:20px}.how{background:#21140e;color:#fff}.how .eyebrow{color:#ebc24c}.steps{width:min(520px,100%)}.steps p{padding:15px 0;border-bottom:1px solid #ffffff29}.steps b{color:#edc85e;margin-right:18px}.booking-shell{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - 155px)}.booking-intro{padding:11vw;background:linear-gradient(145deg,#610405,#bb1110);color:white}.booking-intro>p:last-child{max-width:430px;line-height:1.7}.booking-form{padding:72px max(8vw,40px);background:#fff;display:flex;flex-direction:column;align-items:stretch}.booking-form h2{margin-bottom:25px}.booking-form label,.proof-form label,.login-card label,.reject-form label{font-size:13px;font-weight:700;margin-top:14px}.booking-form input,.booking-form select,.login-card input,.reject-form input{padding:13px;border:1px solid #cfbf9e;margin-top:6px;font:inherit;background:#fffdf8}.booking-form span.field-validation-error{font-size:12px;color:var(--red);margin-top:4px}.booking-form .gold-button{margin-top:26px;justify-content:space-between}.booking-form small{margin-top:16px;color:#786f66;font-size:11px;line-height:1.5}.payment-shell,.ticket-page,.validation-page,.admin-page{max-width:1120px;margin:0 auto;padding:70px 30px;min-height:calc(100vh - 155px)}.payment-grid,.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:31px 0}.amount-card,.bank-card,.proof-form,.review-card,.action-box,.login-card{background:white;border:1px solid var(--line);padding:30px}.amount-card{background:linear-gradient(155deg,#9d070a,#500103);color:white}.amount-card strong{display:block;font:700 60px 'Playfair Display';color:#f8d269}.amount-card code{display:block;margin-top:8px;font-size:21px;color:#f8d269;font-weight:700}.amount-card hr{border:0;border-top:1px solid #ffffff42;margin:23px 0}.bank-card p{line-height:1.6}.proof-form{display:flex;gap:15px;align-items:center;flex-wrap:wrap}.proof-form h2{width:100%;margin:0}.proof-form p{font-size:13px;color:#766d63}.proof-form input{flex:1}.notice{padding:14px 17px;margin:20px 0;font-size:14px}.success{background:#e6f4e7;color:#276837;border-left:4px solid #3a8b4c}.error,.validation{background:#fbe9e7;color:#a52218;border-left:4px solid #b92b1d;padding:12px}.ticket{background:#fff;border:1px solid #d7c398;display:grid;grid-template-columns:1fr 260px;box-shadow:0 10px 30px #49290520}.ticket-main{padding:50px;background:radial-gradient(circle at 55% 15%,#fff4c9,#fff 45%,#f4e2bd);border-right:2px dashed #b99b61}.ticket-main h1{color:#1b1110;font-size:64px}.church{font-weight:700;font-size:11px}.ticket-meta{margin-top:36px;border-top:1px solid #d6bb7e;padding-top:17px;display:flex;gap:35px;font-size:11px}.ticket aside{text-align:center;padding:24px 15px;background:#fffdf8}.ticket aside p{font-weight:800;font-size:20px;margin:0 0 12px}.ticket aside img{width:175px;image-rendering:pixelated}.ticket aside small,.ticket aside strong,.ticket aside>b{display:block;margin-top:10px}.ticket aside strong{color:var(--red);font-size:16px}.ticket-actions{margin-top:20px;display:flex;gap:13px}.ticket-actions button,.reject-form button,.text-button{border:1px solid #a7884b;background:white;padding:12px 16px;cursor:pointer;font:700 13px 'DM Sans'}.validation-page{max-width:640px}.login-page{min-height:calc(100vh - 155px);display:grid;place-items:center;background:linear-gradient(135deg,#fff7e5,#ead3a1)}.login-card{width:min(440px,90vw);display:flex;flex-direction:column}.login-card .gold-button{margin-top:25px;justify-content:space-between}.admin-top{display:flex;justify-content:space-between;align-items:center}.filters{display:flex;gap:13px;flex-wrap:wrap;margin:26px 0}.filters a{background:#eee5d5;padding:7px 11px;color:#3c2e20;text-decoration:none;font-size:12px}.table-wrap{overflow:auto;background:white;border:1px solid var(--line)}table{border-collapse:collapse;width:100%;min-width:820px}th,td{text-align:left;padding:15px;border-bottom:1px solid #eee5d6;font-size:13px}th{font-size:11px;letter-spacing:.08em;color:#766d63}td a{color:var(--red);font-weight:700;text-decoration:none}.status{font-size:11px;font-weight:700;padding:5px 8px;border-radius:999px}.awaitingproof{background:#eee8de}.underreview{background:#fff0c8;color:#875e00}.approved{background:#e1f2e3;color:#23713b}.rejected{background:#f9dfdf;color:#a31313}.back{display:inline-block;margin-bottom:25px}.review-card h2{font-size:22px}.action-box{margin:20px 0;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.action-box h2{width:100%;font-size:24px}.action-box label{font-size:13px;flex:1}.reject-form{margin-top:40px;display:flex;gap:10px;align-items:end}.reject-form input{flex:1}footer{background:#650307;color:#fff0c8;padding:27px 7vw;display:flex;justify-content:space-between;font-size:12px}footer strong{display:block;font:700 18px 'Playfair Display'}footer span{display:block;margin-top:4px}@media print{header,footer,.ticket-actions,.eyebrow{display:none!important}.ticket-page{padding:0}.ticket{box-shadow:none;border:0}}@media(max-width:760px){header{height:auto;padding:16px 6vw}.brand{font-size:16px}.brand small,nav a:first-child{display:none}nav{gap:10px}.hero{padding:65px 8vw;min-height:690px;align-items:flex-start;flex-direction:column}.hero-card{width:100%;max-width:300px}.event-panel,.how{padding:55px 8vw;display:block}.details{margin-top:30px;display:block}.details article{border-left:1px solid var(--line);padding:13px}.choirs{padding:50px 10vw}.choirs ol{columns:1}.booking-shell,.payment-grid,.review-grid{grid-template-columns:1fr}.booking-intro{padding:70px 9vw}.booking-form{padding:50px 9vw}.payment-shell,.ticket-page,.validation-page,.admin-page{padding:48px 20px}.proof-form{align-items:stretch}.ticket{grid-template-columns:1fr}.ticket-main{border-right:0;border-bottom:2px dashed #b99b61;padding:30px}.ticket-main h1{font-size:50px}.ticket aside img{width:150px}.ticket-actions{flex-direction:column}.reject-form{display:flex;flex-direction:column;align-items:stretch}footer{display:block;gap:15px}}
