/* =========================================================
   Ocean Pro Nautic: blog (index, archives, single post)
   ========================================================= */

/* ---------- hero ---------- */
.opn-bhero{position:relative;isolation:isolate;overflow:hidden;background:var(--deep);color:#fff;min-height:52vh;display:flex;align-items:flex-end}
.opn-bhero--post{min-height:66vh}
.opn-bhero__bg{position:absolute;inset:0;z-index:-2;width:100%!important;height:100%!important;max-width:none;object-fit:cover;animation:opnKen 2s var(--ease) both}
.opn-bhero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,rgba(2,11,20,.96) 0%,rgba(2,11,20,.6) 55%,rgba(2,11,20,.4) 100%)}
.opn-bhero__in{width:100%;max-width:var(--wrap);margin:0 auto;padding:170px var(--gut) clamp(52px,7vw,90px);box-sizing:border-box;display:flex;flex-direction:column;gap:18px}
.opn-bhero__in>*{margin:0;animation:opnUp 1s var(--ease) both}
.opn-bhero__in>:nth-child(2){animation-delay:.12s}.opn-bhero__in>:nth-child(3){animation-delay:.22s}.opn-bhero__in>:nth-child(4){animation-delay:.34s}
.opn-bcrumbs{font-size:13px;letter-spacing:.04em;color:rgba(255,255,255,.55)}
.opn-bcrumbs a{color:rgba(255,255,255,.8)!important;text-decoration:none}
.opn-bcrumbs a:hover{color:#fff!important}
.opn-beyebrow{font:700 12px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--coral);display:flex;align-items:center;gap:12px}
.opn-beyebrow::before{content:"";width:28px;height:2px;background:currentColor}
.opn-bhero__title{font:400 clamp(44px,6.4vw,92px)/1 var(--serif);letter-spacing:-.02em;color:#fff;max-width:16ch}
.opn-bhero__title--post{font-size:clamp(34px,4.6vw,64px);line-height:1.06;max-width:22ch}
.opn-bhero__lead{font-size:clamp(16px,1.3vw,19px);line-height:1.65;color:rgba(255,255,255,.75);max-width:620px}
.opn-post__meta{display:flex;flex-wrap:wrap;gap:8px 22px;font:600 14px/1.4 var(--sans);color:rgba(255,255,255,.7)}
.opn-post__meta>*+*::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--coral);margin-right:22px;vertical-align:middle;position:relative;top:-2px}

/* ---------- listing ---------- */
.opn-blog{padding-block:clamp(64px,8vw,120px);background:#fff}
.opn-blog--related{background:var(--sand)}
.opn-blog__wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gut);box-sizing:border-box}
.opn-blog__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:40px;flex-wrap:wrap}
.opn-blog__h{font:500 clamp(30px,3.6vw,48px)/1.08 var(--serif);letter-spacing:-.02em;color:var(--ink);margin:0}
.opn-blog__all{font:700 15px/1 var(--sans);color:var(--red)!important;text-decoration:none}
.opn-blog__all:hover{color:var(--red2)!important}
.opn-blog__empty{color:var(--muted);font-size:17px}
.opn-pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}

.opn-pcard{position:relative;display:flex;flex-direction:column;background:var(--sand);border-radius:22px;overflow:hidden;transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.opn-blog--related .opn-pcard{background:#fff}
.opn-pcard:hover{transform:translateY(-8px);box-shadow:0 34px 60px -24px rgba(7,26,46,.3)}
.opn-pcard__img{display:block;overflow:hidden;aspect-ratio:16/10;background:var(--line)}
.opn-pcard__img img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.opn-pcard:hover .opn-pcard__img img{transform:scale(1.06)}
.opn-pcard__body{display:flex;flex-direction:column;gap:12px;padding:26px 28px 30px;flex:1}
.opn-pcard__meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:0;font:600 13px/1.3 var(--sans);color:var(--muted)}
.opn-pcard__kick{font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.opn-pcard__title{font:500 24px/1.18 var(--serif);letter-spacing:-.015em;margin:0;color:var(--ink)}
.opn-pcard__title a{color:var(--ink)!important;text-decoration:none}
.opn-pcard__title a::after{content:"";position:absolute;inset:0;z-index:1}
.opn-pcard__excerpt{margin:0;font-size:15.5px;line-height:1.65;color:var(--muted)}
.opn-pcard__more{margin-top:auto;padding-top:6px;font:700 14px/1 var(--sans);color:var(--red)}
.opn-pcard__more span{display:inline-block;transition:transform .4s var(--ease)}
.opn-pcard:hover .opn-pcard__more span{transform:translateX(4px)}
.opn-pcard a:focus-visible{outline:none}
.opn-pcard:focus-within{outline:2px solid var(--coral);outline-offset:3px}

/* first card on page 1 runs wide */
.opn-pcard--lead{grid-column:1/-1;display:grid;grid-template-columns:1.25fr 1fr}
.opn-pcard--lead .opn-pcard__img{aspect-ratio:auto;min-height:420px}
.opn-pcard--lead .opn-pcard__body{padding:clamp(28px,4vw,56px);justify-content:center;gap:16px}
.opn-pcard--lead .opn-pcard__title{font-size:clamp(28px,3vw,42px)}
.opn-pcard--lead .opn-pcard__excerpt{font-size:17px}
.opn-pcard--lead .opn-pcard__more{margin-top:8px}

/* pagination */
.opn-pager{margin-top:56px}
.opn-pager .nav-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.opn-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:0 16px;border-radius:999px;border:1.5px solid var(--line);font:700 14px/1 var(--sans);color:var(--ink)!important;text-decoration:none;box-sizing:border-box}
.opn-pager .page-numbers.current,.opn-pager a.page-numbers:hover{background:var(--ink);border-color:var(--ink);color:#fff!important}

/* ---------- single post ---------- */
.opn-post__body{max-width:calc(760px + 2 * var(--gut));margin:0 auto;padding:clamp(56px,7vw,96px) var(--gut) clamp(64px,8vw,110px);box-sizing:border-box}
.opn-prose{font:400 18px/1.8 var(--sans);color:#2B3A4A}
.opn-prose>*{margin:0 0 1.25em}
.opn-prose>:first-child{margin-top:0}
.opn-prose>p:first-child{font-size:21px;line-height:1.7;color:var(--ink)}
.opn-prose h2{font:500 clamp(28px,3vw,38px)/1.15 var(--serif);letter-spacing:-.02em;color:var(--ink);margin:1.9em 0 .6em}
.opn-prose h3{font:700 20px/1.35 var(--sans);color:var(--ink);margin:1.6em 0 .5em}
.opn-prose a{color:var(--red);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.opn-prose a:hover{color:var(--red2)}
.opn-prose strong{color:var(--ink);font-weight:700}
.opn-prose ul,.opn-prose ol{padding-left:0;list-style:none}
.opn-prose li{position:relative;padding-left:30px;margin-bottom:.6em}
.opn-prose ul>li::before{content:"";position:absolute;left:4px;top:.72em;width:9px;height:9px;border-radius:50%;background:var(--red)}
.opn-prose ol{counter-reset:opn}
.opn-prose ol>li{counter-increment:opn}
.opn-prose ol>li::before{content:counter(opn);position:absolute;left:0;top:.2em;width:22px;height:22px;border-radius:50%;background:var(--ink);color:#fff;font:700 12px/22px var(--sans);text-align:center}
.opn-prose blockquote{margin:1.8em 0;padding:24px 28px;border-left:3px solid var(--red);background:var(--sand);border-radius:0 18px 18px 0;font:400 20px/1.6 var(--serif);color:var(--ink)}
.opn-prose blockquote p{margin:0}
.opn-prose img{border-radius:18px}

.opn-postcta{margin-top:56px;padding:clamp(28px,4vw,44px);border-radius:24px;background:var(--deep);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.opn-postcta::before{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(207,35,23,.45),rgba(207,35,23,0) 70%);z-index:-1}
.opn-postcta__t{font:500 clamp(26px,2.6vw,34px)/1.15 var(--serif);letter-spacing:-.02em;color:#fff;margin:0 0 12px}
.opn-postcta p{margin:0 0 24px;color:rgba(255,255,255,.75);font-size:16.5px;line-height:1.65}
.opn-postcta__btns{display:flex;flex-wrap:wrap;gap:12px}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .opn-pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .opn-pgrid--3>.opn-pcard:nth-child(3){display:none}
  .opn-pcard--lead{grid-template-columns:1fr}
  .opn-pcard--lead .opn-pcard__img{min-height:0;aspect-ratio:16/9}
}
@media (max-width:767px){
  .opn-bhero{min-height:48vh}
  .opn-bhero--post{min-height:62vh}
  .opn-bhero__in{padding-top:130px}
  .opn-pgrid{grid-template-columns:1fr;gap:18px}
  .opn-pgrid--3>.opn-pcard:nth-child(3){display:flex}
  .opn-pcard__body{padding:22px 20px 26px}
  .opn-pcard__title{font-size:22px}
  .opn-prose{font-size:17px}
  .opn-prose>p:first-child{font-size:19px}
  .opn-postcta__btns .opn-pill{width:100%;justify-content:center}
  .opn-post__meta>*+*::before{margin-right:12px}
  .opn-post__meta{gap:6px 12px}
}
