:root{--ink:#0e3536;--ink2:#14494a;--sand:#f3ead6;--paper:#faf5ea;--brass:#b8924a;--brass2:#d4b373;--coral:#b9502e;--txt:#24302f;--mute:#5d6966}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--txt);font:400 18px/1.65 "Cormorant Garamond",Georgia,serif;font-size:1.15rem}
img{max-width:100%;display:block}a{color:inherit}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
h1,h2,h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;line-height:1.1;margin:0 0 .5em;color:var(--ink)}
h2{font-size:clamp(2.1rem,5vw,3.3rem)}
.kicker{font:700 .72rem/1 "Josefin Sans",sans-serif;letter-spacing:.32em;text-transform:uppercase;color:var(--coral);margin:0 0 1rem}
.kicker.light{color:var(--brass2)}
.btn{display:inline-block;font:700 .8rem/1 "Josefin Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;padding:1rem 1.4rem;border:1.5px solid var(--brass);margin:.3rem .4rem .3rem 0}
.btn-brass{background:var(--brass);color:#1c1a12}.btn-brass:hover{background:var(--brass2)}
.btn-ghost{color:var(--sand)}.btn-ghost:hover{background:rgba(255,255,255,.08)}
/* masthead */
.mast{position:sticky;top:0;z-index:20;background:var(--ink);color:var(--sand);border-bottom:3px double var(--brass)}
.mast-in{max-width:1240px;margin:auto;display:flex;align-items:center;gap:1.5rem;padding:.6rem 1.2rem}
.brand{text-decoration:none;display:flex;flex-direction:column;line-height:1}
.brand-k{font:italic 600 2rem/1 "Cormorant Garamond",serif;color:var(--brass2)}
.brand-sub{font:700 .58rem/1.4 "Josefin Sans",sans-serif;letter-spacing:.3em;text-transform:uppercase}
.nav{margin-left:auto;display:none;gap:1.6rem}
.nav a{font:600 .74rem "Josefin Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;opacity:.85}.nav a:hover{opacity:1;color:var(--brass2)}
.mast-call{margin-left:auto;font:700 .8rem "Josefin Sans",sans-serif;letter-spacing:.12em;text-decoration:none;border:1px solid var(--brass);padding:.55rem .8rem;color:var(--brass2)}
@media(min-width:960px){.nav{display:flex}.mast-call{margin-left:1rem}}
/* hero */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;background:var(--ink)}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.05)}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,53,54,.1) 20%,rgba(14,53,54,.55) 50%,rgba(14,53,54,.95))}
.hero-plaque{position:relative;z-index:2;color:var(--sand);padding:2rem 1.3rem 3rem;max-width:760px}
.est{font:400 1.1rem "IM Fell English SC",serif;letter-spacing:.2em;color:var(--brass2);margin:0 0 .6rem;display:flex;align-items:center;gap:.7rem}
.est::before,.est::after{content:"";height:1px;width:42px;background:var(--brass)}
.hero h1{color:#fff;font-size:clamp(2.5rem,7.5vw,5rem);font-weight:600;text-shadow:0 2px 20px rgba(0,0,0,.35)}
.lede{font-size:1.3rem;max-width:34ch;margin:0 0 1.5rem}
@media(min-width:900px){.hero-plaque{margin-left:6vw;padding-bottom:5rem}}
.ribbon{background:var(--coral);color:#fff;font:600 .72rem/1.6 "Josefin Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1rem;padding:.9rem 1rem;text-align:center}
.ribbon .dot{color:var(--brass2)}
/* story */
.story{max-width:1180px;margin:auto;padding:5rem 1.3rem}
.story-cols{display:grid;gap:3rem;align-items:center}
.postcard{margin:0;background:#fff;padding:12px 12px 0;box-shadow:0 18px 40px rgba(14,53,54,.18);transform:rotate(-2.5deg);max-width:520px}
.postcard figcaption{font:italic 500 1rem "Cormorant Garamond",serif;text-align:center;padding:.7rem;color:var(--mute)}
.story-text p{margin:0 0 1rem}
.drop::first-letter{float:left;font:600 4.6rem/.8 "Cormorant Garamond",serif;color:var(--coral);padding:.35rem .5rem 0 0}
.sig{font-style:italic;color:var(--coral);font-size:1.3rem}
.facts{list-style:none;padding:0;margin:4rem 0 0;display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--brass);border-bottom:1px solid var(--brass)}
.facts li{padding:1.4rem .5rem;text-align:center;border-right:1px solid rgba(184,146,74,.4)}
.facts li:nth-child(2n){border-right:0}
.facts b{display:block;font:600 2rem/1.1 "Cormorant Garamond",serif;color:var(--ink)}
.facts span{font:600 .66rem "Josefin Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
@media(min-width:900px){.story-cols{grid-template-columns:5fr 6fr}.facts{grid-template-columns:repeat(4,1fr)}.facts li:nth-child(2n){border-right:1px solid rgba(184,146,74,.4)}.facts li:last-child{border-right:0}}
/* crabs */
.crabs{background:var(--ink);color:var(--sand);padding:5rem 1.3rem;background-image:radial-gradient(circle at 85% 10%,rgba(184,146,74,.16),transparent 45%)}
.crabs-in{max-width:1180px;margin:auto;display:grid;gap:3rem}
.crabs h2{color:#fff}.crabs h2 em{color:var(--brass2);font-weight:500}
.grades{width:100%;border-collapse:collapse;margin:1.6rem 0 .6rem;font-size:1.2rem}
.grades caption{text-align:left;font:700 .7rem "Josefin Sans",sans-serif;letter-spacing:.3em;text-transform:uppercase;color:var(--brass2);padding-bottom:.6rem}
.grades th,.grades td{padding:.7rem .3rem;border-bottom:1px dashed rgba(212,179,115,.45);text-align:left}
.grades th{font-weight:600;color:#fff}.grades .mp{text-align:right;font-style:italic;color:var(--brass2)}
.fine{font-size:.95rem;color:var(--mute);font-style:italic}.fine.light{color:#c8d3cf}
.crabs .fine{color:#c8d3cf}
.crabs-pics{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.crabs-pics img{width:100%;height:100%;object-fit:cover;border:1px solid var(--brass)}
.crabs-pics img:first-child{grid-row:span 2;aspect-ratio:3/5}
.crabs-pics img:not(:first-child){aspect-ratio:1}
@media(min-width:900px){.crabs-in{grid-template-columns:1fr 1fr;align-items:center}}
/* menu */
.menu{padding:5rem 1rem;background:var(--sand)}
.bill{max-width:1180px;margin:auto;background:var(--paper);padding:3rem 1.3rem;border:1px solid var(--brass);outline:6px double var(--brass);outline-offset:-14px;text-align:center}
.bill-note{max-width:60ch;margin:0 auto 2.5rem;font-style:italic;color:var(--mute)}
.bill-note span{display:inline-block;margin-top:.5rem;font:700 .7rem "Josefin Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--coral);font-style:normal}
.bill-grid{display:grid;gap:2.5rem;text-align:left}
.course h3{font:400 1.5rem "IM Fell English SC",serif;color:var(--coral);text-align:center;border-bottom:1px solid var(--brass);padding-bottom:.5rem;margin-bottom:1rem}
.course h3 small{font-size:.9rem;color:var(--mute)}
.course h3.mt{margin-top:2rem}
.course dl{margin:0}
.course dt{font-weight:700;font-size:1.18rem;color:var(--ink);display:flex;gap:.5rem;align-items:baseline;margin-top:.9rem}
.course dt::after{content:"";flex:1;border-bottom:1.5px dotted var(--brass);transform:translateY(-4px)}

.course dd{margin:0;font-style:italic;color:var(--mute);font-size:1.02rem;line-height:1.4}

.kids{font-style:italic;color:var(--mute);text-align:center}
.gift{margin:2.5rem 0 0;font:700 .72rem "Josefin Sans",sans-serif;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}
@media(min-width:900px){.bill{padding:4rem 3.5rem}.bill-grid{grid-template-columns:repeat(3,1fr)}}
/* reviews */
.reviews{max-width:1180px;margin:auto;padding:5rem 1.3rem;text-align:center}
.rv-grid{display:grid;gap:1.5rem;margin-top:2rem;text-align:left}
.reviews blockquote{margin:0;padding:2rem 1.6rem;background:#fff;border-left:4px solid var(--coral);box-shadow:0 8px 24px rgba(14,53,54,.08)}
.reviews blockquote p{margin:0 0 1rem;font-size:1.25rem;font-style:italic;color:var(--ink)}
.reviews blockquote.big{background:var(--ink);border-left-color:var(--brass)}
.reviews blockquote.big p{color:#fff;font-size:1.5rem}
.reviews blockquote.big cite{color:var(--brass2)}
.reviews cite{font:700 .66rem "Josefin Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);font-style:normal}
.ratings{margin-top:2rem;color:var(--mute);font-style:italic}
@media(min-width:900px){.rv-grid{grid-template-columns:1fr 1.3fr 1fr;align-items:center}}
/* gallery */
.gallery{max-width:1240px;margin:auto;padding:2rem 1.3rem 5rem;text-align:center}
.masonry{columns:2 160px;column-gap:10px;margin-top:2rem}
.masonry figure{margin:0 0 10px;break-inside:avoid}
.masonry img{width:100%;border:1px solid rgba(184,146,74,.6);filter:sepia(.08)}
@media(min-width:900px){.masonry{columns:4}}
.photo-note{font-size:.9rem;font-style:italic;color:var(--mute);margin-top:1.2rem}
/* visit */
.visit{display:grid;background:var(--ink);color:var(--sand)}
.visit-card{padding:4rem 1.5rem}
.visit h2{color:#fff}
.visit address{font-style:normal;font-size:1.35rem;margin-bottom:1.5rem}
.hours{border-collapse:collapse;margin-bottom:.6rem;font-size:1.2rem;width:100%;max-width:420px}
.hours th,.hours td{text-align:left;padding:.6rem 0;border-bottom:1px dashed rgba(212,179,115,.45)}
.hours td{text-align:right;color:var(--brass2)}
.map iframe{width:100%;height:100%;min-height:380px;border:0;display:block;filter:sepia(.25) saturate(.85)}
@media(min-width:900px){.visit{grid-template-columns:1fr 1.2fr}.visit-card{padding:5rem 4rem 5rem 8vw}}
.foot{background:#08201f;color:#b9c6c2;text-align:center;padding:3rem 1rem 6.5rem;font-size:1rem}
.foot p{margin:.3rem 0}.foot-brand{font:italic 600 1.6rem "Cormorant Garamond",serif;color:var(--brass2)}
.credit{margin-top:1.2rem!important;font:600 .7rem "Josefin Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase}
.sticky-call{position:fixed;left:12px;right:12px;bottom:12px;z-index:30;background:var(--coral);color:#fff;text-align:center;text-decoration:none;font:700 .85rem/1 "Josefin Sans",sans-serif;letter-spacing:.2em;text-transform:uppercase;padding:1.1rem;border:2px solid var(--brass2);box-shadow:0 8px 24px rgba(0,0,0,.3)}
@media(min-width:900px){.sticky-call{left:auto;right:24px;bottom:24px;padding:1rem 1.5rem}.foot{padding-bottom:3rem}}
.map{background:#1a4344 url(img/exterior-river.jpg) center/cover}
.est{text-shadow:0 1px 8px rgba(0,0,0,.8);font-size:1.25rem;color:#e6c98c}

/* real logo in header */
.brand-logo{display:block;height:40px;width:auto}
@media(min-width:700px){.brand-logo{height:58px}}
@media(min-width:960px) and (max-width:1180px){.brand-logo{height:46px}}
