/* Cruise article only. Header/footer styles are shared with the homepage. */
.article-page .blog-hero { position:relative; min-height:580px; display:flex; align-items:center; justify-content:center; text-align:center; padding:160px 22px 90px; color:#fff; background:linear-gradient(90deg,rgba(0,0,0,.81),rgba(0,0,0,.43)),url('../images/fort-lauderdale-waterfront.jpg') center/cover no-repeat; }
.article-hero-copy { max-width:960px; }
.article-page .blog-hero .eyebrow { color:#ffbd31; }
.article-page .blog-hero h1 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(42px,6vw,76px); line-height:1.04; letter-spacing:-.035em; margin:0 0 24px; }
.article-page .blog-hero p { max-width:720px; margin:0 auto; font-size:18px; color:#f1f1f1; }
.post-meta { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px 26px; padding:20px; border-bottom:1px solid #eee; font-size:13px; font-weight:600; color:var(--muted); }
.post-meta a { color:var(--red); font-weight:800; }
.article-page .intro-section { max-width:900px; margin:0 auto; padding:64px 20px 70px; }
.article-page .intro-section > img { width:100%; height:360px; object-fit:cover; border-radius:18px; box-shadow:var(--shadow); margin-bottom:34px; }
.article-page .intro-section h2,.article-page .content-wrap h2,.article-page .final-cta h2 { font-family:'Playfair Display',Georgia,serif; font-size:clamp(32px,4vw,50px); line-height:1.08; letter-spacing:-.03em; margin:0 0 20px; }
.article-page .intro-section p,.article-page .content-wrap p,.article-page .final-cta p { color:#444; font-size:16px; line-height:1.8; }
.guide-toc { margin-top:32px; padding:26px 30px; background:var(--cream); border:1px solid #e7e0d5; border-radius:18px; }
.guide-toc h3 { margin:0 0 14px; font-size:18px; }
.guide-toc ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 30px; padding-left:20px; margin:0; }
.guide-toc a { color:var(--red); text-decoration:underline; text-underline-offset:3px; font-weight:600; }
.article-page .blog-section,.article-page .cream-section { padding:80px 20px; }
.article-page .cream-section { background:var(--cream-2); }
.article-page .content-wrap { max-width:980px; margin:0 auto; }
.article-page .feature-card { background:#fff; border:1px solid #eee; border-radius:18px; padding:30px; box-shadow:0 14px 40px rgba(0,0,0,.08); margin-top:28px; }
.article-page .number { display:inline-block; color:var(--red); font-weight:800; font-size:20px; margin-bottom:8px; }
.article-page .feature-card h3,.article-page .info-card h3 { font-family:'Playfair Display',Georgia,serif; font-size:25px; line-height:1.16; margin:0 0 12px; }
.article-page .feature-card p:last-child,.article-page .info-card p:last-child { margin-bottom:0; }
.article-page .cards { display:grid; gap:22px; margin-top:30px; }
.article-page .cards.two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.article-page .cards.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.article-page .info-card { background:#fff; border:1px solid #e7e0d5; border-radius:16px; padding:26px; box-shadow:0 12px 34px rgba(0,0,0,.06); }
.article-page .info-card p { font-size:15px; color:#555; }
.article-page .cta-band { margin-top:28px; background:linear-gradient(100deg,var(--red-dark),var(--red)); color:#fff; border-radius:18px; padding:26px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; box-shadow:0 18px 38px rgba(160,30,24,.18); }
.article-page .cta-band span { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.06em; font-weight:800; margin-bottom:5px; }
.article-page .cta-band h3 { margin:0; font-size:22px; line-height:1.3; }
.article-page .cta-band a { flex-shrink:0; background:#fff; color:var(--red); padding:12px 18px; border-radius:999px; font-weight:800; font-size:14px; text-align:center; }
.article-page .cta-band a:hover { background:var(--cream); }
.article-photo { margin:30px 0 0; }
.article-photo img { width:100%; height:380px; object-fit:cover; border-radius:18px; }
.article-photo figcaption { color:var(--muted); font-size:13px; margin-top:10px; }
.article-faq { margin-top:30px; }
.article-faq details { background:#fff; border:1px solid #e7e0d5; border-radius:14px; margin:12px 0; padding:20px 24px; }
.article-faq summary { cursor:pointer; font-weight:800; padding-right:8px; }
.article-faq details[open] summary { color:var(--red); }
.article-faq details p { margin:14px 0 0; }
.article-page .final-cta { max-width:860px; margin:0 auto; text-align:center; padding:90px 20px 70px; }
.article-page .final-cta .primary-btn { margin-top:16px; }
.article-back { display:block; width:fit-content; margin:24px auto 0; font-size:14px; font-weight:800; color:var(--red); }
.guide-sources { max-width:980px; margin:0 auto; padding:0 20px 65px; color:var(--muted); font-size:13px; }
.guide-sources h2 { font-family:Inter,Arial,sans-serif; font-size:15px; margin:0 0 10px; }
.guide-sources a { color:var(--red); text-decoration:underline; }
@media(max-width:900px) {
 .article-page .blog-hero { min-height:480px; padding:80px 20px; }
 .article-page .cards.three { grid-template-columns:1fr; }
 .article-page .cta-band { display:block; }
 .article-page .cta-band a { display:inline-block; margin-top:16px; }
}
@media(max-width:600px) {
 .article-page .blog-hero { min-height:440px; padding:70px 20px; }
 .article-page .blog-hero h1 { font-size:clamp(35px,9.5vw,43px); }
 .article-page .blog-hero p { font-size:16px; }
 .post-meta { gap:8px 18px; text-align:center; }
 .article-page .intro-section { padding:44px 20px 50px; }
 .article-page .intro-section > img,.article-photo img { height:240px; }
 .article-page .blog-section,.article-page .cream-section { padding:56px 20px; }
 .article-page .feature-card,.article-page .info-card { padding:23px; }
 .article-page .cards.two,.guide-toc ul { grid-template-columns:1fr; }
 .guide-toc { padding:24px; }
 .article-faq details { padding:18px; }
 .article-page .cta-band { padding:24px; }
}
