:root{
  --cream:#f4eee3; --cream-2:#efe7d8; --panel:#faf6ee;
  --blue:#5e7488; --blue-deep:#4c6070; --blue-soft:#8ea0ad;
  --line:rgba(92,115,131,.28); --line-soft:rgba(92,115,131,.16);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--blue);
  font-family:"EB Garamond",Georgia,"Times New Roman",serif; font-size:19px; line-height:1.7;}
.display{font-family:"Cormorant Garamond",Georgia,serif;}
a{color:var(--blue-deep); text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%; display:block;}

.topbar{text-align:center; padding:40px 20px 8px;}
.brand{font-family:"Cormorant Garamond",Georgia,serif; color:var(--blue-deep);
  font-size:clamp(30px,5.5vw,58px); font-weight:500; letter-spacing:.14em; margin:0; text-transform:uppercase;}
.nav{margin:22px 0 6px; display:flex; flex-wrap:wrap; gap:8px 34px; justify-content:center; font-family:"Cormorant Garamond",Georgia,serif;}
.nav a{color:var(--blue); font-size:22px; letter-spacing:.04em; padding-bottom:4px; border-bottom:2px solid transparent;}
.nav a:hover{text-decoration:none; color:var(--blue-deep);}
.nav a.active{color:var(--blue-deep); border-bottom-color:var(--blue-deep);}
.rule-c{width:60px; height:1px; background:var(--line); margin:22px auto 0;}

.hero{position:relative; width:100%; height:60vh; min-height:380px; overflow:hidden; margin-top:14px;
  background:linear-gradient(160deg,#eae2d3,#d7dde1 60%,#c3ccd2);}
.hero img{width:100%; height:100%; object-fit:cover;}
.hero .veil{position:absolute; inset:0; background:linear-gradient(180deg,rgba(30,45,58,.12),rgba(30,45,58,.42));}
.hero .cap{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; color:#fff; text-shadow:0 2px 20px rgba(15,28,40,.55);}
.hero .cap .ic{color:#fff;} .hero .cap .ic svg{width:54px; height:54px; margin:0 auto 6px;}
.hero .cap .k{font-family:"Cormorant Garamond",serif; font-size:clamp(32px,5.4vw,64px); letter-spacing:.08em; margin:0; font-weight:500;}
.hero .cap .s{letter-spacing:.24em; text-transform:uppercase; font-size:14px; margin-top:14px;}
.cbanner{height:44vh; min-height:300px;}

.wrap{max-width:1020px; margin:0 auto; padding:44px 22px 20px;}
.lede{max-width:720px; margin:0 auto 8px; text-align:center; font-size:21px; color:var(--blue);}

.cats{display:grid; grid-template-columns:repeat(3,1fr); gap:0; margin:40px auto 8px; max-width:940px;}
.cat{padding:14px 26px; text-align:center; position:relative;}
.cat + .cat::before{content:""; position:absolute; left:0; top:12%; height:76%; width:1px; background:var(--line);}
.cat .ic{color:var(--blue-deep);} .cat .ic svg{width:56px; height:56px; margin:0 auto;}
.cat h2{font-family:"Cormorant Garamond",serif; font-weight:500; letter-spacing:.06em; text-transform:uppercase; font-size:27px; color:var(--blue-deep); margin:14px 0 8px;}
.cat p{margin:0 0 14px; font-size:18px; color:var(--blue);}
.cat .go{font-family:"Cormorant Garamond",serif; font-size:20px; letter-spacing:.08em; color:var(--blue-deep); border-bottom:1px solid var(--blue-soft); padding-bottom:2px;}
.cat a.block{display:block; color:inherit;}
.cat a.block:hover{text-decoration:none;} .cat a.block:hover .go{border-bottom-color:var(--blue-deep);}

.pagehead{text-align:center; padding:26px 20px 0;}
.pagehead .ic{color:var(--blue-deep);} .pagehead .ic svg{width:52px; height:52px; margin:0 auto;}
.pagehead h1{font-family:"Cormorant Garamond",serif; font-weight:500; letter-spacing:.12em; text-transform:uppercase; font-size:clamp(30px,5vw,46px); color:var(--blue-deep); margin:12px 0 6px;}
.pagehead .intro{max-width:640px; margin:0 auto; color:var(--blue); font-size:20px;}
.introwrap{text-align:center; padding:34px 20px 0;}
.introwrap .intro{max-width:640px; margin:0 auto; color:var(--blue); font-size:20px;}

.section{margin:46px auto 0;}
.subhead{display:flex; align-items:center; gap:20px; justify-content:center; margin-bottom:26px;}
.subhead h2{font-family:"Cormorant Garamond",serif; font-weight:500; letter-spacing:.18em; text-transform:uppercase; font-size:24px; color:var(--blue-deep); margin:0; white-space:nowrap;}
.subhead::before,.subhead::after{content:""; height:1px; width:90px; background:var(--line);}
.items{display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:30px 38px;}
.item{border-top:1px solid var(--line); padding-top:16px;}
.item h3{font-family:"Cormorant Garamond",serif; font-weight:600; font-size:25px; color:var(--blue-deep); margin:0;}
.item h3 a{color:var(--blue-deep);}
.item .town{font-style:italic; color:var(--blue-soft); font-size:17px; margin:2px 0 8px;}
.item p{margin:0 0 12px; font-size:18px; color:var(--blue);}
.item .visit{font-family:"Cormorant Garamond",serif; font-size:19px; letter-spacing:.06em; color:var(--blue-deep); border-bottom:1px solid var(--blue-soft); padding-bottom:1px;}
.item .visit:hover{text-decoration:none; border-bottom-color:var(--blue-deep);}
.item .nolink{font-style:italic; color:var(--blue-soft); font-size:17px;}

footer{text-align:center; padding:56px 20px 60px; margin-top:40px; border-top:1px solid var(--line-soft);}
footer .m{color:var(--blue-deep);} footer .m svg{width:40px; height:40px; margin:0 auto 10px; opacity:.8;}
footer .names{font-family:"Cormorant Garamond",serif; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-deep); font-size:22px;}
footer .meta{font-style:italic; color:var(--blue); font-size:18px; margin-top:4px;}

@media (max-width:720px){
  .cats{grid-template-columns:1fr;}
  .cat + .cat::before{display:none;}
  .cat{border-top:1px solid var(--line-soft); padding-top:26px;}
}
