/* Regional cruise landings. Existing header, footer and catalogs stay independent. */
.regional-cruise-page { color:#193b53; background:#f8fcfd; }
.regional-cruise-page #main { padding:0 0 64px; font-family:Arial,sans-serif; }
.regional-cruise-page #main *, .regional-cruise-page #main *::before, .regional-cruise-page #main *::after { box-sizing:border-box; }
.regional-cruise-page #main a { text-decoration:none; }
.regional-cruise-page #main :is(a,button,summary):focus-visible { outline:3px solid #ff5a1f; outline-offset:4px; }
.regional-cruise-page .rc-container { width:min(1200px,calc(100% - 48px)); margin:0 auto; }
.regional-cruise-page .rc-skip { position:absolute; top:-100px; left:16px; z-index:9999; padding:12px 18px; border-radius:10px; background:#fff; color:#0b294a; }
.regional-cruise-page .rc-skip:focus { top:12px; }
.regional-cruise-page .rc-hero { position:relative; overflow:hidden; padding:30px 0 48px; background:linear-gradient(115deg,#eff9fa,#f7fbff 60%,#e5f4f5); }
.regional-cruise-page .rc-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px 10px; margin-bottom:28px; color:#59788a; font-size:13px; line-height:1.6; }
.regional-cruise-page .rc-breadcrumb a { color:#315f75; }
.regional-cruise-page .rc-breadcrumb a:hover { text-decoration:underline!important; }
.regional-cruise-page .rc-hero-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr); align-items:center; gap:44px; }
.regional-cruise-page .rc-eyebrow { margin:0 0 13px; color:#17878d; font-size:12px; font-weight:700; line-height:1.5; letter-spacing:.11em; text-transform:uppercase; }
.regional-cruise-page .rc-hero h1 { margin:0 0 20px; color:#0b294a; font-size:clamp(32px,3.6vw,48px); font-weight:700; line-height:1.15; letter-spacing:-.025em; overflow-wrap:anywhere; }
.regional-cruise-page .rc-hero-intro { margin:0; color:#426479; font-size:17px; line-height:1.8; }
.regional-cruise-page .rc-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.regional-cruise-page .rc-button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:48px; padding:13px 22px; border:1px solid #cbdfe5; border-radius:14px; color:#0c5367; background:#ffffffc7; font-size:14px; font-weight:700; line-height:1.5; text-align:center; }
.regional-cruise-page .rc-button-primary { border-color:#f15b26; color:#fff; background:#f15b26; }
.regional-cruise-page .rc-button-primary:hover { color:#fff; background:#d84815; border-color:#d84815; }
.regional-cruise-page .rc-button:hover:not(.rc-button-primary) { color:#096675; background:#fff; border-color:#60aeb4; }
.regional-cruise-page .rc-hero-visual { position:relative; min-width:0; }
.regional-cruise-page .rc-hero-visual > img { display:block; width:100%; height:306px; object-fit:cover; object-position:57% center; border:1px solid #ffffffa8; border-radius:28px; box-shadow:0 18px 45px #163d5914; }
.regional-cruise-page .rc-hero-caption { position:relative; width:calc(100% - 34px); margin:-39px auto 0; padding:17px 21px; border:1px solid #ffffffdb; border-radius:18px; background:#f7fcfced; -webkit-backdrop-filter:blur(15px); backdrop-filter:blur(15px); box-shadow:0 12px 28px #163d590f; }
.regional-cruise-page .rc-hero-caption strong { display:block; margin-bottom:5px; color:#0b294a; font-size:16px; line-height:1.5; }
.regional-cruise-page .rc-hero-caption p { margin:0; color:#557386; font-size:13px; line-height:1.6; }
.regional-cruise-page .rc-section { margin-top:52px; scroll-margin-top:135px; }
.regional-cruise-page .rc-heading { max-width:870px; margin-bottom:23px; }
.regional-cruise-page .rc-heading h2 { margin:0 0 12px; color:#0b294a; font-size:clamp(26px,2.8vw,34px); font-weight:600; line-height:1.25; letter-spacing:-.015em; }
.regional-cruise-page .rc-heading > p:not(.rc-eyebrow) { margin:0; color:#527083; font-size:15px; line-height:1.8; }
.regional-cruise-page .rc-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.regional-cruise-page .rc-card { display:flex; flex-direction:column; min-width:0; padding:25px; border:1px solid #d6e9ec; border-radius:23px; color:#284d64; background:linear-gradient(135deg,#f0fafae6,#ffffffe8); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 10px 28px #113f4d05; transition:border-color .2s,box-shadow .2s; }
.regional-cruise-page a.rc-card:hover { color:#284d64; border-color:#79bec1; box-shadow:0 12px 30px #113f4d0d; }
.regional-cruise-page .rc-card h3 { margin:0 0 12px; color:#0b294a; font-size:23px; font-weight:600; line-height:1.3; }
.regional-cruise-page .rc-card p { margin:0 0 20px; color:#547184; font-size:14px; line-height:1.8; }
.regional-cruise-page .rc-card-link { display:inline-flex; align-items:center; gap:12px; margin-top:auto; color:#0a7781; font-size:14px; font-weight:700; line-height:1.5; }
.regional-cruise-page .rc-card-link span { font-size:18px; }
.regional-cruise-page .rc-card-mark { display:block; width:36px; padding-bottom:9px; margin-bottom:17px; border-bottom:2px solid #49a7ad; color:#199298; font-size:12px; font-weight:700; letter-spacing:.08em; }
.regional-cruise-page .rc-boarding { padding:30px; border:1px solid #d9e8ee; border-radius:26px; background:linear-gradient(135deg,#eaf8f8,#f7fbfd); }
.regional-cruise-page .rc-port-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.regional-cruise-page .rc-port-grid[data-count="4"] { grid-template-columns:repeat(2,minmax(0,1fr)); }
.regional-cruise-page .rc-port { min-width:0; padding:22px; border:1px solid #deecef; border-radius:18px; background:#ffffffcb; }
.regional-cruise-page .rc-port h3 { margin:0 0 10px; color:#123c53; font-size:18px; font-weight:600; line-height:1.5; }
.regional-cruise-page .rc-port p { margin:0 0 15px; color:#527185; font-size:14px; line-height:1.8; }
.regional-cruise-page .rc-port a { color:#0b7883; font-size:13px; font-weight:700; line-height:1.65; }
.regional-cruise-page .rc-port a:hover { text-decoration:underline!important; }
.regional-cruise-page .rc-note { margin:20px 0 0; padding-top:17px; border-top:1px solid #d4e8ec; color:#547285; font-size:13px; line-height:1.8; }
.regional-cruise-page .rc-beginner .rc-card { background:#fff; }
.regional-cruise-page .rc-beginner .rc-card h3 { font-size:21px; }
.regional-cruise-page .rc-guide-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:45px; }
.regional-cruise-page .rc-guide-copy p { margin:0 0 17px; color:#527185; font-size:15px; line-height:1.8; }
.regional-cruise-page .rc-guide-copy h2 { margin:0 0 17px; color:#0b294a; font-size:clamp(26px,2.8vw,34px); font-weight:600; line-height:1.25; }
.regional-cruise-page .rc-steps { display:grid; gap:13px; margin:0; padding:0; list-style:none; counter-reset:rcStep; }
.regional-cruise-page .rc-steps li { display:grid; grid-template-columns:38px minmax(0,1fr); gap:16px; margin:0; padding:20px; border:1px solid #deebee; border-radius:18px; background:#fff; counter-increment:rcStep; }
/* Keep the number in the grid; the legacy theme positions ordered-list markers absolutely. */
.regional-cruise-page .rc-steps li::before { content:counter(rcStep,decimal-leading-zero); position:static; display:flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #c9e6e8; border-radius:12px; color:#0d858c; background:#edf9f9; font-size:13px; font-weight:700; }
.regional-cruise-page .rc-steps li > div { min-width:0; grid-column:2; }
.regional-cruise-page .rc-steps h3 { margin:0 0 7px; color:#133c53; font-size:17px; font-weight:600; line-height:1.4; }
.regional-cruise-page .rc-steps p { margin:0; color:#547184; font-size:14px; line-height:1.75; }
.regional-cruise-page .rc-faq-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:44px; align-items:start; }
.regional-cruise-page .rc-faq-list { overflow:hidden; border:1px solid #d8e9ed; border-radius:20px; background:#fff; }
.regional-cruise-page .rc-faq-list details + details { border-top:1px solid #dfecee; }
.regional-cruise-page .rc-faq-list summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:21px 23px; color:#173d54; font-size:16px; font-weight:600; line-height:1.6; list-style:none; cursor:pointer; }
.regional-cruise-page .rc-faq-list summary::-webkit-details-marker { display:none; }
.regional-cruise-page .rc-faq-list summary::after { content:'+'; flex:0 0 20px; color:#118b91; font-size:25px; font-weight:400; line-height:1; text-align:center; }
.regional-cruise-page .rc-faq-list details[open] summary::after { content:'−'; }
.regional-cruise-page .rc-faq-list details[open] summary { color:#096c79; }
.regional-cruise-page .rc-faq-list details p { margin:0; padding:0 23px 22px; color:#527184; font-size:14px; line-height:1.85; }
.regional-cruise-page .rc-faq-more { display:inline-block; margin-top:18px; color:#0a7b83; font-size:14px; line-height:1.7; }
.regional-cruise-page .rc-help { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:28px; align-items:center; padding:30px 34px; border:1px solid #bfe1e5; border-radius:25px; background:linear-gradient(110deg,#e1f5f5,#f0f8fb); }
.regional-cruise-page .rc-help h2 { margin:0 0 11px; color:#0b294a; font-size:27px; font-weight:600; line-height:1.3; }
.regional-cruise-page .rc-help p { max-width:700px; margin:0; color:#4b6b80; font-size:14px; line-height:1.8; }
.regional-cruise-page .rc-help-links { display:flex; flex-direction:column; align-items:center; gap:14px; }
.regional-cruise-page .rc-phone { color:#0b294a; font-size:15px; font-weight:700; line-height:1.5; white-space:nowrap; }
.regional-cruise-page .rc-related { margin-top:28px; display:flex; justify-content:space-between; gap:18px; flex-wrap:wrap; font-size:13px; line-height:1.6; }
.regional-cruise-page .rc-related a { color:#527788; }
.regional-cruise-page .rc-related a:hover { color:#0b7b85; text-decoration:underline!important; }
.regional-cruise-page .olly-cruise-certificates { margin-top:52px; }
@media(max-width:1023px) {
 .regional-cruise-page .rc-hero-grid { gap:28px; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); }
 .regional-cruise-page .rc-hero-visual > img { height:320px; }
 .regional-cruise-page .rc-card-grid { gap:14px; }
 .regional-cruise-page .rc-card { padding:22px; }
 .regional-cruise-page .rc-port-grid,.regional-cruise-page .rc-port-grid[data-count="4"] { grid-template-columns:1fr; }
 .regional-cruise-page .rc-port { display:grid; grid-template-columns:200px minmax(0,1fr); gap:10px 20px; }
 .regional-cruise-page .rc-port h3 { grid-row:span 2; margin:0; }
 .regional-cruise-page .rc-port p { margin:0; }
 .regional-cruise-page .rc-faq-grid,.regional-cruise-page .rc-guide-layout { gap:28px; }
}
@media(max-width:767px) {
 .regional-cruise-page #main { padding-bottom:38px; }
 .regional-cruise-page .rc-container { width:calc(100% - 32px); }
 .regional-cruise-page .rc-hero { padding:20px 0 30px; }
 .regional-cruise-page .rc-breadcrumb { font-size:12px; margin-bottom:22px; gap:6px 8px; }
 .regional-cruise-page .rc-hero-grid { grid-template-columns:1fr; gap:25px; }
 .regional-cruise-page .rc-hero h1 { font-size:33px; margin-bottom:17px; }
 .regional-cruise-page .rc-hero-intro { font-size:15px; line-height:1.8; }
 .regional-cruise-page .rc-eyebrow { font-size:11px; }
 .regional-cruise-page .rc-actions { gap:10px; margin-top:20px; }
 .regional-cruise-page .rc-actions .rc-button { flex:1 1 160px; padding:12px 16px; font-size:13px; }
 .regional-cruise-page .rc-hero-visual > img { height:210px; border-radius:22px; }
 .regional-cruise-page .rc-hero-caption { width:calc(100% - 24px); padding:15px 17px; margin-top:-26px; border-radius:16px; }
 .regional-cruise-page .rc-hero-caption strong { font-size:15px; }
 .regional-cruise-page .rc-hero-caption p { font-size:12px; }
 .regional-cruise-page .rc-section { margin-top:36px; scroll-margin-top:100px; }
 .regional-cruise-page .rc-heading { margin-bottom:19px; }
 .regional-cruise-page .rc-heading h2 { font-size:27px; }
 .regional-cruise-page .rc-heading > p:not(.rc-eyebrow) { font-size:14px; }
 .regional-cruise-page .rc-card-grid { grid-template-columns:1fr; gap:14px; }
 .regional-cruise-page .rc-card { padding:22px; border-radius:20px; }
 .regional-cruise-page .rc-card h3 { font-size:24px; }
 .regional-cruise-page .rc-card-mark { margin-bottom:13px; }
 .regional-cruise-page .rc-card p { margin-bottom:16px; }
 .regional-cruise-page .rc-boarding { padding:23px 18px; border-radius:22px; }
 .regional-cruise-page .rc-port-grid { gap:12px; }
 .regional-cruise-page .rc-port { display:block; padding:20px; border-radius:16px; }
 .regional-cruise-page .rc-port h3 { margin-bottom:9px; }
 .regional-cruise-page .rc-port p { margin-bottom:14px; }
 .regional-cruise-page .rc-guide-layout,.regional-cruise-page .rc-faq-grid { grid-template-columns:1fr; gap:18px; }
 .regional-cruise-page .rc-guide-copy h2 { font-size:27px; }
 .regional-cruise-page .rc-guide-copy p { font-size:14px; }
 .regional-cruise-page .rc-steps li { padding:18px; gap:12px; }
 .regional-cruise-page .rc-faq-list summary { padding:18px; font-size:15px; gap:14px; }
 .regional-cruise-page .rc-faq-list details p { padding:0 18px 19px; }
 .regional-cruise-page .rc-help { grid-template-columns:1fr; padding:26px 22px; gap:22px; border-radius:22px; }
 .regional-cruise-page .rc-help h2 { font-size:25px; }
 .regional-cruise-page .rc-help-links { align-items:stretch; text-align:center; }
 .regional-cruise-page .rc-related { flex-direction:column; gap:12px; }
 .regional-cruise-page .olly-cruise-certificates { margin-top:36px; }
}
@media(prefers-reduced-motion:reduce) { .regional-cruise-page .rc-card { transition:none; } }
