/* Buena Ola Journal: an editorial system independent of commercial page layouts. */
.journal-page { margin: 0; color: #173246; background: #fbfaf6; font-family: Inter, system-ui, sans-serif; line-height: 1.7; }
.journal-page *, .journal-page *::before, .journal-page *::after { box-sizing: border-box; }
.journal-shell { width: min(1120px, calc(100% - 2rem)); margin-inline: auto; }
.journal-header { position: relative; z-index: 5; background: #092f4b; color: #fff; }
.journal-header__inner { min-height: 82px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.journal-brand img { display: block; object-fit: contain; }
.journal-header nav { display: flex; flex-wrap: wrap; gap: clamp(.75rem, 2vw, 1.75rem); }
.journal-header nav a, .journal-footer a { color: inherit; font-weight: 750; text-decoration: none; }
.journal-header nav a[aria-current] { color: #f2bd73; }
.journal-index-hero { padding: clamp(4rem, 10vw, 8rem) 0; color: #fff; background: linear-gradient(100deg,rgba(5,35,55,.96),rgba(5,35,55,.58)),url('../images/parallax-ocean.jpg') center/cover; }
.journal-kicker, .journal-category { color: #bf642f; font-size: .76rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.journal-index-hero .journal-kicker, .article-cta .journal-kicker { color: #f2bd73; }
.journal-page h1, .journal-page h2, .journal-page h3 { line-height: 1.12; color: #092f4b; }
.journal-index-hero h1 { max-width: 760px; margin: .3rem 0 1rem; color: #fff; font-size: clamp(3rem, 8vw, 6.5rem); }
.journal-index-hero p:last-child { max-width: 720px; font-size: 1.15rem; }
.journal-breadcrumb { display: flex; gap: .65rem; align-items: center; padding: 1rem 0; overflow: hidden; font-size: .84rem; }
.journal-breadcrumb a { color: #24688e; }
.journal-breadcrumb > * + *::before { content: '/'; margin-right: .65rem; color: #8798a2; }
.journal-breadcrumb span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.journal-collection { padding: clamp(3rem, 7vw, 6rem) 0; }
.journal-collection__head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.journal-collection__head h2 { margin: 0; font-size: clamp(2rem,5vw,3.5rem); }
.journal-collection__head label { display: grid; gap: .3rem; font-size: .8rem; font-weight: 750; }
.journal-collection select { border: 1px solid #bdc8cd; border-radius: 4px; padding: .65rem; background: white; }
.journal-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,310px),1fr)); gap: 1.5rem; }
.journal-card { overflow: hidden; background: #fff; border: 1px solid #e2ded4; box-shadow: 0 12px 34px rgba(9,47,75,.08); }
.journal-card > a { display: block; color: inherit; text-decoration: none; }
.journal-card img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; }
.journal-card__body { padding: 1.4rem; }
.journal-card h2 { margin: .45rem 0 .65rem; font-size: 1.65rem; }
.journal-byline { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .45rem 1rem; color: #667985; font-size: .82rem; }
.journal-pagination { margin-top: 2rem; }
.article-hero__text { max-width: 900px; padding-top: clamp(2rem,6vw,5rem); padding-bottom: 2rem; text-align: center; }
.article-hero h1 { margin: .6rem auto 1rem; font-size: clamp(2.6rem,7vw,5.2rem); }
.article-subtitle { max-width: 780px; margin: 0 auto 1.5rem; font-size: 1.2rem; }
.article-hero .journal-byline { justify-content: center; }
.article-hero > figure { width: min(1320px,100%); margin: 0 auto; }
.article-hero > figure img { display:block; width:100%; max-height: 700px; object-fit:cover; }
.article-hero figcaption, .article-content figcaption { padding: .5rem; color:#667985; font-size:.82rem; text-align:center; }
.article-layout { display:grid; grid-template-columns: 230px minmax(0,760px); gap: clamp(2rem,6vw,5rem); justify-content:center; padding: clamp(3rem,8vw,7rem) 0; }
.article-toc { position:sticky; top:2rem; align-self:start; padding:1.25rem; border-left:3px solid #bf642f; background:#f3eee3; }
.article-toc ol { margin:.75rem 0 0; padding-left:1.25rem; }
.article-toc a { color:#185b7c; }
.article-content { font-family: Georgia,serif; font-size:1.08rem; }
.article-content section { scroll-margin-top: 2rem; margin-bottom:3.5rem; }
.article-content h2 { font-family:Inter,system-ui,sans-serif; font-size:clamp(1.8rem,4vw,2.6rem); }
.article-content a { color:#12658e; font-weight:700; }
.journal-callout { display:block; margin:2rem 0; padding:1.25rem 1.5rem; border-left:5px solid #bf642f; background:#f5ead8; }
.journal-callout--safety { border-color:#1a7180; background:#e4f0ef; }
.table-wrap { overflow-x:auto; margin:2rem 0; }
.article-content table { width:100%; min-width:620px; border-collapse:collapse; font-family:Inter,system-ui,sans-serif; font-size:.92rem; }
.article-content th,.article-content td { padding:.8rem; border:1px solid #ccd3d5; text-align:left; vertical-align:top; }
.article-content th { background:#092f4b; color:#fff; }
.article-content figure { margin:2rem 0; }
.article-content figure img { width:100%; height:auto; }
.seo-faq details { border-top:1px solid #ccd3d5; padding:1rem 0; }
.seo-faq summary { cursor:pointer; color:#092f4b; font-family:Inter,system-ui,sans-serif; font-weight:800; }
.related-services { padding:clamp(3rem,6vw,5rem) 0; background:#e7f0f0; }
.service-link-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; }
.service-link-grid a { display:grid; gap:.35rem; padding:1.3rem; color:#092f4b; text-decoration:none; background:#fff; border-bottom:3px solid #bf642f; }
.service-link-grid span { color:#526c7a; }
.related-reading { padding:clamp(3rem,7vw,6rem) 0; }
.article-sequence { display:flex; justify-content:space-between; gap:1rem; margin-top:2rem; border-top:1px solid #ccd3d5; padding-top:1rem; }
.article-cta { padding:clamp(3rem,7vw,6rem) 0; color:#fff; text-align:center; background:#092f4b; }
.article-cta h2 { max-width:750px; margin-inline:auto; color:#fff; }
.journal-button { display:inline-block; margin-top:1rem; padding:.8rem 1.25rem; color:#092f4b; background:#f2bd73; font-weight:850; text-decoration:none; border-radius:3px; }
.journal-footer { padding:3rem 0; color:#fff; background:#061f31; text-align:center; }
@media(max-width:760px){.journal-header__inner{align-items:flex-start;padding-block:.75rem}.journal-header nav{justify-content:flex-end;font-size:.82rem}.article-layout{display:block}.article-toc{position:static;margin-bottom:3rem}.journal-collection__head{align-items:start;flex-direction:column}}
