:root {
  --primary: #123C4A;
  --coastal: #2F7E8A;
  --terracotta: #B65A3C;
  --cream: #F6EFE3;
  --ink: #2A2520;
  --white: #fffdf8;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: "Source Sans 3", Arial, sans-serif; font-size: 17px; line-height: 1.7; }
a { color: var(--coastal); text-decoration: underline; text-underline-offset: 3px; transition: color .18s ease, background .18s ease, transform .18s ease; }
h1, h2, h3, .navbar-brand { font-family: "Playfair Display", Georgia, serif; letter-spacing: 0; }
.site-header { position: sticky; top: 0; z-index: 20; min-height: 76px; padding: 0 28px; background: rgba(246,239,227,.97); border-bottom: 3px solid var(--coastal); box-shadow: 0 10px 30px rgba(18,60,74,.12); }
.navbar-brand { color: var(--primary); font-size: 1.45rem; font-weight: 700; text-decoration: none; }
.site-nav { flex-wrap: wrap; gap: 2px; }
.site-nav .site-nav-link { color: var(--coastal); border: 1px solid var(--terracotta); font-weight: 700; text-decoration: none; text-transform: uppercase; font-size: .76rem; padding: .35rem .45rem; display: inline-flex; align-items: center; min-height: 1.75rem; }
.site-nav .site-nav-link:hover, .site-nav .site-nav-link:focus { background: rgba(47,126,138,.12); color: var(--terracotta); }
.site-nav .nav-cta { border: 1px solid var(--terracotta); color: var(--terracotta) !important; border-radius: 4px; }
.nav-group { position: relative; display: inline-flex; align-items: center; }
.nav-dropdown { display: inline-flex; flex-wrap: wrap; gap: 2px; }
.nav-dropdown .site-nav-link { color: var(--terracotta); }
.seafood-hero { min-height: 650px; display: flex; align-items: center; background: linear-gradient(90deg, rgba(18,60,74,.9), rgba(18,60,74,.45)), url("../images/img_a1e54fef84a2.png") center/cover; color: var(--white); }
.seafood-hero h1 { max-width: 820px; margin: 0 0 18px; color: var(--white); font-size: 56px; line-height: 1.04; }
.seafood-hero p { max-width: 760px; }
.eyebrow { color: #f5d2bb; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.btn.btn-primary { background: var(--terracotta); border-color: var(--terracotta); color: white; text-decoration: none; }
.btn.btn-primary:hover { background: #98472f; border-color: #98472f; }
.page-hero { background: var(--primary); color: var(--white); padding: 68px 0 46px; border-bottom: 5px solid var(--terracotta); }
.page-hero h1 { margin: 0; color: var(--white); font-size: 44px; }
.section-pad { padding: 54px 16px 76px; }
.prose-card, .side-card, .route-card, .menu-card, .content-card { background: var(--white); border: 1px solid rgba(18,60,74,.14); border-radius: 8px; box-shadow: 0 20px 50px rgba(42,37,32,.08); }
.prose-card { padding: 34px; }
.prose-card p { margin: 0 0 1.15rem; }
.prose-card h2, .prose-card h3 { color: var(--primary); }
.side-card { padding: 24px; border-top: 4px solid var(--terracotta); }
.side-card h3 { color: var(--primary); margin-top: 0; }
.nav .nav-item a { color: var(--primary); font-weight: 700; text-decoration: none; }
.route-grid, .menu-grid, .category-grid { margin-top: 30px; }
.route-card, .menu-card { display: block; min-height: 118px; padding: 24px; text-decoration: none; color: var(--primary); border-top: 5px solid var(--terracotta); }
.route-card:hover, .menu-card:hover, .content-card:hover { transform: translateY(-2px); }
.route-card span, .menu-card span { font-family: "Playfair Display", Georgia, serif; font-size: 1.35rem; font-weight: 700; }
.media-figure img, .gallery-prose img, .main-image, .card-image img { max-width: 100%; height: auto; border-radius: 6px; }
.gallery-prose .media-figure img { width: 100%; max-height: 340px; object-fit: cover; }
.table-wrap { overflow-x: auto; margin: 22px 0; }
.table-wrap table { width: 100%; max-width: 100%; table-layout: fixed; }
.table-wrap th, .table-wrap td { white-space: normal; overflow-wrap: anywhere; word-break: normal; }
blockquote { border-left: 4px solid var(--terracotta); padding-left: 18px; color: var(--primary); }
.toc-box { background: #fff7eb; border-left: 4px solid var(--terracotta); padding: 18px 22px; margin: 22px 0; }
.article-head { margin-bottom: 28px; }
.article-meta { color: #6c6259; font-size: .95rem; }
.main-image { width: 100%; max-height: 420px; object-fit: cover; margin: 22px 0; }
.contact-card { border-top: 5px solid var(--coastal); }
.site-footer { background: var(--primary); color: var(--cream); padding: 42px 16px; }
.site-footer strong { display: block; font-family: "Playfair Display", Georgia, serif; font-size: 1.7rem; margin-bottom: 8px; }
.footer-links { display: flex; flex-wrap: wrap; gap: 10px 22px; align-content: flex-start; justify-content: flex-end; }
.footer-links a { color: var(--cream); text-decoration-color: rgba(246,239,227,.45); }
@media (max-width: 840px) {
  .site-header { align-items: flex-start; padding: 16px; }
  .brand-section, .site-nav { width: 100%; }
  .site-nav { justify-content: flex-start; }
  .seafood-hero { min-height: 560px; }
  .seafood-hero h1 { font-size: 40px; }
  .page-hero h1 { font-size: 34px; }
  .prose-card { padding: 24px; }
  .footer-links { justify-content: flex-start; }
}
