:root{--paper:#f3ecdc;--paper2:#ebe2cd;--ink:#1a1814;--mut:#5b554a;--red:#8c2a1f;--blue:#1f3a4d;--rule:#1a1814;--hair:#b9ae94}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Poppins',system-ui,'Segoe UI',Arial,sans-serif;font-size:15px;color:var(--ink);background:var(--paper);line-height:1.7}
h1,h2,h3,h4,.serif{font-family:'Times New Roman',Times,serif;color:var(--ink);font-weight:700;line-height:1.15}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 22px}
svg.i{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:square;stroke-linejoin:miter;vertical-align:-.2em;flex:none}
/* masthead */
.strip{border-bottom:1px solid var(--rule);font-size:.78rem;letter-spacing:.04em;color:var(--mut)}
.strip .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px 24px;padding-top:7px;padding-bottom:7px}
.strip span{display:inline-flex;align-items:center;gap:6px;margin-right:18px}
.strip a:hover{color:var(--red)}
.mast{text-align:center;padding:22px 0 14px}
.mast .kicker{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;color:var(--red);font-weight:600}
.mast h1{font-size:clamp(1.55rem,3.6vw,2.7rem);margin:8px auto 4px;max-width:900px;letter-spacing:-.005em}
.mast .sub{font-family:'Times New Roman',serif;font-style:italic;color:var(--mut);font-size:1.05rem}
.mast .mk{display:inline-grid;place-items:center;width:58px;height:58px;border:2px solid var(--ink);margin-bottom:10px;position:relative}
.mast .mk:after{content:"";position:absolute;inset:4px;border:1px solid var(--ink)}
.mast .mk b{font:700 1rem 'Times New Roman',serif;letter-spacing:.04em}
.dateline{border-top:3px double var(--rule);border-bottom:1px solid var(--rule);font-size:.76rem;letter-spacing:.14em;text-transform:uppercase}
.dateline .wrap{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
nav{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:3px solid var(--rule)}
nav ul{list-style:none;display:flex;justify-content:center;flex-wrap:wrap}
nav li+li{border-left:1px solid var(--hair)}
nav a{display:block;padding:11px 17px;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600}
nav a:hover,nav a.on{color:var(--red);box-shadow:inset 0 -3px 0 var(--red)}
nav a.btn{background:var(--ink);color:var(--paper);display:flex;gap:7px;align-items:center}
nav a.btn:hover{background:var(--red);color:var(--paper);box-shadow:none}
.burger{display:none;position:absolute;right:16px;top:20px;background:none;border:1px solid var(--ink);padding:5px 10px;font:600 .8rem 'Poppins',sans-serif;cursor:pointer;letter-spacing:.1em}
.notice{background:var(--ink);color:var(--paper);overflow:hidden;white-space:nowrap;font-size:.82rem;display:flex}
.notice b{background:var(--red);padding:7px 16px;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;flex:none;z-index:1;display:flex;align-items:center}
.notice div{overflow:hidden;flex:1}
.notice p{display:inline-block;padding:7px 0 7px 100%;animation:tick 40s linear infinite}
.notice:hover p{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-100%)}}
/* front page */
.front{display:grid;grid-template-columns:2.1fr 1fr;gap:0;margin-top:30px;border-bottom:1px solid var(--rule);padding-bottom:34px}
.lead{padding-right:34px;border-right:1px solid var(--rule)}
.lead .cat{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--red);font-weight:600;border-bottom:1px solid var(--rule);padding-bottom:6px;margin-bottom:14px}
.lead h2{font-size:clamp(2rem,4.4vw,3.4rem);letter-spacing:-.01em}
.lead .by{color:var(--mut);font-size:.8rem;margin:12px 0 16px;font-style:italic;font-family:'Times New Roman',serif}
.cols{column-count:2;column-gap:28px;column-rule:1px solid var(--hair);text-align:left}
.cols p{margin-bottom:12px}
.cols p:first-child:first-letter{font:700 3.6rem/.8 'Times New Roman',serif;float:left;padding:6px 8px 0 0;color:var(--red)}
.btn2{display:inline-block;margin-top:10px;padding:10px 24px;border:2px solid var(--ink);font-weight:600;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;background:transparent;cursor:pointer;font-family:inherit;color:var(--ink);transition:.15s}
.btn2:hover{background:var(--ink);color:var(--paper)}
.btn2.red{background:var(--red);border-color:var(--red);color:var(--paper)}
.btn2.red:hover{background:var(--ink);border-color:var(--ink)}
.side{padding-left:30px}
.box{border:1px solid var(--rule);padding:6px;margin-bottom:24px}
.box>div{border:1px solid var(--rule);padding:18px 20px}
.box h3{font-size:1.25rem;text-align:center;border-bottom:1px solid var(--rule);padding-bottom:8px;margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em;font-size:1rem}
.box li{list-style:none;padding:7px 0;border-bottom:1px dotted var(--hair);display:flex;gap:10px;align-items:flex-start;font-size:.88rem}
.box li:last-child{border:0}
.box li svg{color:var(--red);margin-top:4px}
.reg{text-align:center;font-family:'Times New Roman',serif}
.reg b{display:block;font-size:1.5rem;color:var(--red)}
/* sections row */
.rowhead{display:flex;align-items:center;gap:16px;margin:38px 0 22px}
.rowhead h2{font-size:1.5rem;text-transform:uppercase;letter-spacing:.12em;white-space:nowrap}
.rowhead:before,.rowhead:after{content:"";height:3px;flex:1;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.four{display:grid;grid-template-columns:repeat(4,1fr)}
.item{padding:4px 22px;border-left:1px solid var(--rule)}
.item:first-child{border-left:0;padding-left:0}
.item:last-child{padding-right:0}
.item .ico{width:54px;height:54px;border:1.5px solid var(--ink);display:grid;place-items:center;font-size:1.7rem;margin-bottom:12px;color:var(--red)}
.item h3{font-size:1.35rem;margin-bottom:6px}
.item p{font-size:.88rem;color:var(--mut);margin-bottom:10px}
.item a.rm{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--red);border-bottom:1px solid var(--red)}
/* photo page */
.photos{background:var(--paper2);border-top:3px double var(--rule);border-bottom:3px double var(--rule);padding:34px 0 40px;margin-top:44px}
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.fig{margin:0}
.fig .ph1{aspect-ratio:4/3;border:1px solid var(--rule);background:repeating-linear-gradient(135deg,#d9cfb6 0 2px,#e7dec8 2px 9px);display:grid;place-items:center;color:var(--mut);font-size:2rem}
.fig figcaption{font-family:'Times New Roman',serif;font-style:italic;font-size:.92rem;margin-top:6px;border-top:1px solid var(--rule);padding-top:4px;color:var(--mut)}
/* inner pages */
.ph{border-bottom:1px solid var(--rule);padding:44px 0 26px;text-align:left}
.ph .cat{font-size:.72rem;letter-spacing:.26em;text-transform:uppercase;color:var(--red);font-weight:600}
.ph h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:6px 0}
.ph p{font-family:'Times New Roman',serif;font-style:italic;font-size:1.15rem;color:var(--mut)}
section.pg{padding:38px 0}
.two{display:grid;grid-template-columns:1.6fr 1fr;gap:0}
.two>div:first-child{padding-right:34px;border-right:1px solid var(--rule)}
.two>div+div{padding-left:30px}
.two h2,.pg h2{font-size:1.9rem;margin-bottom:12px}
.two p,.pg p.t{margin-bottom:12px;text-align:justify}
.list{list-style:none;margin:10px 0}
.list li{padding:8px 0 8px 26px;border-bottom:1px dotted var(--hair);position:relative}
.list li:before{content:"";position:absolute;left:2px;top:17px;width:9px;height:9px;background:var(--red);transform:rotate(45deg)}
ol{margin-left:20px}ol li{padding:5px 0}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);margin:6px 0 10px}
.cards3 .item{padding-top:0}
.formbox{border:1px solid var(--rule);padding:7px}
.formbox>*{}
.formin{border:1px solid var(--rule);padding:26px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px}
.fg .full{grid-column:1/-1}
label{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:4px}
input,select,textarea{width:100%;padding:10px 12px;border:0;border-bottom:1.5px solid var(--ink);background:rgba(255,255,255,.45);font:inherit;color:var(--ink);border-radius:0}
input:focus,select:focus,textarea:focus{outline:0;background:#fff;border-bottom-color:var(--red)}
.note{border-left:4px solid var(--red);background:var(--paper2);padding:12px 16px;font-size:.86rem;margin-top:18px}
.calc{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:10px}
.res{border:1px solid var(--ink);padding:6px}
.res>div{border:1px solid var(--ink);padding:30px 20px;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:center}
.res small{letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--mut)}
.res b{font:700 2.6rem 'Times New Roman',serif;color:var(--red);display:block;margin:4px 0}
.cinfo{list-style:none}
.cinfo li{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--hair)}
.cinfo li svg{font-size:1.4rem;color:var(--red);margin-top:3px}
.cinfo b{display:block;font:700 .72rem 'Poppins',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.mapw{margin-top:30px;border:1px solid var(--ink);padding:6px}
.map{width:100%;height:320px;border:0;filter:sepia(.35) saturate(.8);display:block}
.empty{border:1px dashed var(--ink);padding:40px;text-align:center;color:var(--mut);font-family:'Times New Roman',serif;font-style:italic;font-size:1.1rem}
/* footer */
footer{background:var(--ink);color:#d9d0ba;margin-top:50px;font-size:.88rem;border-top:6px double var(--paper)}
.fgrid{display:grid;grid-template-columns:1.5fr .8fr 1.4fr;gap:0;padding:38px 0}
.fgrid>div{padding:0 26px;border-left:1px solid #4a443a}
.fgrid>div:first-child{border:0;padding-left:0}
footer h4{color:var(--paper);font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;margin-bottom:12px;font-family:'Poppins',sans-serif;font-weight:600;border-bottom:1px solid #4a443a;padding-bottom:8px}
footer li{list-style:none;margin:7px 0;display:flex;gap:9px}
footer li svg{margin-top:5px;color:#d9a07a}
footer a:hover{color:#fff;text-decoration:underline}
.copy{border-top:1px solid #4a443a;text-align:center;padding:14px 0;font-size:.76rem;letter-spacing:.06em;color:#9a917c}
.totop{position:fixed;right:18px;bottom:18px;width:42px;height:42px;background:var(--red);color:var(--paper);border:0;font-size:1.1rem;cursor:pointer;display:none;z-index:60}
@media(max-width:900px){
 .burger{display:block}
 nav{display:none}nav.open{display:block}
 nav ul{flex-direction:column}nav li+li{border-left:0;border-top:1px solid var(--hair)}
 .mast{position:relative;padding-right:70px;padding-left:70px}
 .front,.two,.calc,.fg{grid-template-columns:1fr}
 .lead{padding-right:0;border-right:0;border-bottom:1px solid var(--rule);padding-bottom:26px}
 .side{padding-left:0;padding-top:26px}
 .two>div:first-child{padding-right:0;border-right:0;padding-bottom:20px}.two>div+div{padding-left:0}
 .cols{column-count:1}
 .four,.pgrid{grid-template-columns:1fr 1fr;gap:26px 0}
 .item:nth-child(3){border-left:0;padding-left:0}
 .cards3,.fgrid{grid-template-columns:1fr}
 .fgrid>div{border-left:0;padding:0 0 20px}
}
@media(max-width:520px){.four,.pgrid{grid-template-columns:1fr}.item{border-left:0;padding:0 0 18px;border-bottom:1px solid var(--hair)}}
@media print{.strip,.mast,.dateline,nav,.notice,footer,.ph,.noprint,.totop{display:none!important}body{background:#fff}}
/* ---- vibrant spot-colour pass ---- */
:root{--paper:#fff6e2;--paper2:#ffe9b8;--red:#e23b2e;--blue:#1d4fd8;--teal:#00a08a;--gold:#ffb81c;--pink:#e5388c;--navy:#10216b;--violet:#6a3fc4}
body{background:var(--paper)}
.strip{background:var(--gold);border-bottom:2px solid var(--ink);color:var(--ink)}
.strip a:hover{color:var(--red)}
.mast .kicker{color:#fff;background:var(--pink);display:inline-block;padding:3px 14px}
.mast h1{color:var(--navy)}
.mast .mk{background:var(--blue);border-color:var(--ink);box-shadow:4px 4px 0 var(--gold)}
.mast .mk b{color:#fff}.mast .mk:after{border-color:#fff}
.dateline{background:var(--navy);color:#fff;border-color:var(--ink)}
nav{background:#fff;border-bottom:4px solid var(--ink)}
nav li:nth-child(1) a:hover,nav li:nth-child(1) a.on{box-shadow:inset 0 -4px 0 var(--red);color:var(--red)}
nav li:nth-child(2) a:hover,nav li:nth-child(2) a.on{box-shadow:inset 0 -4px 0 var(--blue);color:var(--blue)}
nav li:nth-child(3) a:hover,nav li:nth-child(3) a.on{box-shadow:inset 0 -4px 0 var(--teal);color:var(--teal)}
nav li:nth-child(4) a:hover,nav li:nth-child(4) a.on{box-shadow:inset 0 -4px 0 var(--pink);color:var(--pink)}
nav li:nth-child(5) a:hover,nav li:nth-child(5) a.on{box-shadow:inset 0 -4px 0 var(--violet);color:var(--violet)}
nav li:nth-child(6) a:hover,nav li:nth-child(6) a.on{box-shadow:inset 0 -4px 0 var(--red);color:var(--red)}
nav li:nth-child(7) a:hover,nav li:nth-child(7) a.on{box-shadow:inset 0 -4px 0 var(--blue);color:var(--blue)}
nav li:nth-child(8) a:hover,nav li:nth-child(8) a.on{box-shadow:inset 0 -4px 0 var(--teal);color:var(--teal)}
nav li:nth-child(9) a:hover,nav li:nth-child(9) a.on{box-shadow:inset 0 -4px 0 var(--pink);color:var(--pink)}
nav a.btn{background:var(--red);color:#fff}nav a.btn:hover{background:var(--navy);color:#fff}
.notice{background:var(--blue)}.notice b{background:var(--gold);color:var(--ink)}
.lead .cat{color:var(--blue);border-bottom:3px solid var(--blue)}
.lead h2{color:var(--ink)}
.cols p:first-child:first-letter{color:#fff;background:var(--red);padding:8px 10px 4px;margin-right:8px}
.btn2{border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.btn2:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink);background:var(--gold);color:var(--ink)}
.btn2.red{background:var(--red);border-color:var(--ink);color:#fff}
.btn2.red:hover{background:var(--gold);color:var(--ink)}
.box{border:2px solid var(--ink);padding:0;background:#fff;box-shadow:5px 5px 0 var(--ink)}
.box>div{border:0;padding:0 20px 14px}
.box h3{margin:0 -20px 12px;padding:9px;border:0;color:#fff;background:var(--blue)}
.side .box:nth-child(2) h3{background:var(--teal)}
.two .box h3{background:var(--pink)}
.box li svg{color:var(--blue)}.side .box:nth-child(2) li svg{color:var(--teal)}
.reg b{color:var(--red)}
.rowhead h2{color:var(--navy)}
.rowhead:before,.rowhead:after{border-color:var(--navy);border-top-width:2px;border-bottom-width:2px}
.item{border-left-color:var(--ink)}
.item .ico{border:2px solid var(--ink);color:#fff;background:var(--c,var(--red));box-shadow:4px 4px 0 var(--ink)}
.four .item:nth-child(1),.cards3 .item:nth-child(1){--c:var(--red)}
.four .item:nth-child(2),.cards3 .item:nth-child(2){--c:var(--blue)}
.four .item:nth-child(3),.cards3 .item:nth-child(3){--c:var(--teal)}
.four .item:nth-child(4){--c:var(--pink)}
.item h3{color:var(--c,var(--ink))}
.item a.rm{color:var(--c,var(--red));border-color:var(--c,var(--red))}
.item p{color:#3d3a33}
.photos{background:var(--navy);border-color:var(--ink);color:#fff}
.photos .rowhead h2{color:var(--gold)}
.photos .rowhead:before,.photos .rowhead:after{border-color:var(--gold)}
.fig .ph1{border:2px solid #fff;color:#fff;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 2px,transparent 2px 10px),var(--cc,var(--blue))}
.pgrid .fig:nth-child(4n+1){--cc:var(--red)}.pgrid .fig:nth-child(4n+2){--cc:var(--teal)}.pgrid .fig:nth-child(4n+3){--cc:var(--pink)}.pgrid .fig:nth-child(4n+4){--cc:var(--violet)}
.photos .fig figcaption{color:#ffe9b8;border-color:var(--gold)}
.photos .btn2{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.ph{background:var(--c0,var(--blue));color:#fff;border-bottom:4px solid var(--ink)}
.ph h1,.ph p{color:#fff}
.ph .cat{background:var(--gold);color:var(--ink);display:inline-block;padding:2px 12px}
section.pg h2,.two h2{color:var(--navy)}
.list li:before{background:var(--teal)}
.formbox{border:2px solid var(--ink);background:#fff;padding:0;box-shadow:5px 5px 0 var(--ink)}
.formin{border:0}
input,select,textarea{background:#fff6e2;border-bottom-color:var(--blue)}
.note{background:var(--gold);border-left-color:var(--ink)}
.res{background:var(--teal);border:2px solid var(--ink);padding:0;box-shadow:5px 5px 0 var(--ink)}
.res>div{border:0;color:#fff}.res small{color:#e6fffa}.res b{color:#fff}
.cinfo li svg{color:var(--pink)}
.mapw{border:2px solid var(--ink);padding:0;box-shadow:5px 5px 0 var(--ink)}
.empty{background:#fff;border:2px dashed var(--pink)}
footer{background:var(--navy);border-top:6px solid var(--gold)}
footer h4{color:var(--gold);border-color:rgba(255,255,255,.25)}
footer li svg{color:var(--gold)}
.fgrid>div{border-color:rgba(255,255,255,.2)}
.totop{background:var(--pink);border:2px solid var(--ink)}
@media(max-width:900px){.two>div:first-child{border-color:var(--ink)}}
/* ---- spacing, extra sections, hover animation ---- */
footer{margin-top:0}
.fgrid{grid-template-columns:1.4fr .7fr 1.3fr 1.2fr}
.fmap{width:100%;height:190px;max-width:none;border-radius:0;border:2px solid #fff!important;filter:none}
.cband{background:var(--gold);border-top:4px solid var(--ink);margin-top:0}
.cband .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:30px;padding-bottom:30px}
.cband h2{font-size:1.7rem;color:var(--ink)}
.cband p{max-width:560px}
.cband .btn2:hover{background:var(--navy);color:#fff}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-bottom:10px}
.st{background:#fff;border:2px solid var(--ink);padding:22px 20px;position:relative;box-shadow:5px 5px 0 var(--c)}
.st b{position:absolute;top:-18px;left:16px;width:38px;height:38px;background:var(--c);color:#fff;border:2px solid var(--ink);display:grid;place-items:center;font:700 1.3rem 'Times New Roman',serif}
.st h3{margin:10px 0 6px;font-size:1.2rem}
.st p{font-size:.86rem;color:#3d3a33}
.photos{margin-top:44px}
/* hover animations */
.item,.st,.box,.fig,.formbox,.res{transition:transform .25s ease,box-shadow .25s ease}
.item{transition:transform .25s ease,background .25s}
.item:hover{transform:translateY(-8px)}
.item .ico{transition:transform .35s cubic-bezier(.3,1.6,.5,1),box-shadow .25s}
.item:hover .ico{transform:rotate(-8deg) scale(1.12);box-shadow:7px 7px 0 var(--ink)}
.item a.rm{transition:letter-spacing .2s}
.item:hover a.rm{letter-spacing:.24em}
.st:hover{transform:translate(-4px,-6px);box-shadow:10px 12px 0 var(--c)}
.box:hover{transform:translate(-3px,-3px);box-shadow:8px 8px 0 var(--ink)}
.formbox:hover,.res:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}
.fig .ph1{overflow:hidden;transition:transform .3s,box-shadow .3s}
.fig:hover .ph1{transform:scale(1.04) rotate(-1.2deg);box-shadow:0 0 0 4px var(--gold)}
.fig .ph1 svg{transition:transform .35s}
.fig:hover .ph1 svg{transform:scale(1.5) rotate(8deg)}
.box li{transition:padding-left .2s,background .2s}
.box li:hover{padding-left:8px;background:var(--paper)}
.list li{transition:padding-left .2s}.list li:hover{padding-left:34px}
.cinfo li{transition:transform .2s}.cinfo li:hover{transform:translateX(6px)}
footer li a{transition:padding-left .2s}footer li a:hover{padding-left:6px}
nav a{transition:color .2s,box-shadow .2s,background .2s}
.btn2{transition:transform .15s,box-shadow .15s,background .15s}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media(max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:30px 22px}.fgrid{grid-template-columns:1fr}.cband .wrap{display:block}.cb{margin-top:14px}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}
/* ---- mobile fixes ---- */
html,body{overflow-x:hidden;max-width:100%}
@media(max-width:900px){
 .rowhead h2{white-space:normal;text-align:center;font-size:1.2rem;letter-spacing:.06em}
 .rowhead{gap:10px}
 .strip .wrap{justify-content:center;text-align:center}
 .strip span{margin-right:10px}
 .mast h1{font-size:1.3rem}
 .mast{padding-left:16px;padding-right:16px}
 .burger{position:static;display:block;margin:10px auto 0}
 .dateline .wrap{justify-content:center;text-align:center;font-size:.68rem}
 .lead h2{font-size:1.9rem}
 .formin{padding:18px}
 .ph h1{font-size:2rem}
 .res b{font-size:2rem}
 .fmap,.map{height:240px}
}
@media(max-width:520px){.fig .ph1{aspect-ratio:16/10}.btn2{display:block;text-align:center;margin-bottom:10px}.lead .btn2+*{}.cband .cb .btn2{display:block}.fg{gap:14px}}
