/*
Theme Name: LASHA Cruise
Theme URI: https://lashacruise.com
Author: LASHA Cruise / Komodo Luxury
Description: Pure-custom theme for LASHA Phinisi Cruise — official vessel site. Chocolate, cream & brass. Performance-first.
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: lasha
*/

/* ============ NON-CRITICAL / BELOW-FOLD STYLES ============ */
/* (Tokens + base + header + hero are inlined as critical CSS by functions.php) */

/* --- Content typography --- */
.entry-content > * { max-width: 46em; margin-left: auto; margin-right: auto; }
.entry-content > h2 { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 600; line-height: var(--lh-tight); color: var(--c-choc); margin: 2.2em auto .6em; }
.entry-content > h3 { font-size: var(--fs-h3); font-weight: 600; line-height: var(--lh-snug); color: var(--c-choc); margin: 1.8em auto .5em; }
.entry-content p, .entry-content ul, .entry-content ol { margin: 0 auto 1.1em; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li { margin-bottom: .45em; }
.entry-content a { color: var(--c-gold-ink); text-underline-offset: 3px; }
.entry-content a:hover { color: var(--c-choc); }
.entry-content blockquote { border-left: 3px solid var(--c-gold); padding: .4em 0 .4em 1.2em; font-family: var(--ff-display); font-size: var(--fs-lead); color: var(--c-choc); font-style: italic; margin: 1.6em auto; }
.entry-content figure { margin: 2em auto; max-width: 52em; }
.entry-content figure img { width: 100%; height: auto; border-radius: 10px; display: block; }
.entry-content figcaption { font-size: var(--fs-meta); color: var(--c-mut); text-align: center; padding-top: .55em; }

/* --- AEO answer-first block --- */
.aeo-answer { background: var(--c-cream2); border-left: 4px solid var(--c-gold); border-radius: 0 10px 10px 0; padding: 1.15em 1.35em; margin: 0 auto 1.8em; font-size: var(--fs-lead); line-height: var(--lh-normal); color: var(--c-ink); }

/* --- Tables --- */
.entry-content table { width: 100%; max-width: 52em; border-collapse: collapse; margin: 1.6em auto; font-size: var(--fs-meta); background: #fff; border-radius: 10px; overflow: hidden; box-shadow: 0 1px 4px rgba(42,26,16,.08); }
.entry-content th { background: var(--c-choc); color: var(--c-cream); text-align: left; padding: .7em .85em; font-weight: 600; letter-spacing: .02em; }
.entry-content td { padding: .65em .85em; border-bottom: 1px solid var(--c-cream2); }
.entry-content tr:nth-child(even) td { background: var(--c-cream-soft); }
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.rate-note { background: #FBF4E4; border: 1px solid #E4CE9E; border-radius: 10px; padding: .9em 1.2em; font-size: var(--fs-meta); color: var(--c-ink); margin: 1.4em auto; max-width: 46em; }

/* --- CTA block --- */
.cta-block { background: var(--c-choc); color: var(--c-cream); border-radius: 14px; padding: 1.7em 1.8em; margin: 2.4em auto; max-width: 46em; }
.cta-block p { color: var(--c-cream); margin: 0 0 1em; }
.cta-block p:last-child { margin-bottom: 0; }
.cta-block strong { color: #fff; }
.btn-wa, .btn-mail { display: inline-block; padding: .78em 1.5em; border-radius: 999px; font-weight: 600; font-size: var(--fs-body); text-decoration: none; margin: .25em .5em .25em 0; transition: transform .15s ease, box-shadow .15s ease; }
.btn-wa { background: var(--c-wa); color: #fff; }
.btn-mail { background: var(--c-cream); color: var(--c-choc); }
.btn-wa:hover, .btn-mail:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.22); }
.btn-wa:focus-visible, .btn-mail:focus-visible { outline: 3px solid var(--c-gold); outline-offset: 2px; }

/* --- Page hero band --- */
.page-hero { position: relative; background: var(--c-choc-dark); overflow: hidden; }
.page-hero img { width: 100%; height: min(46vh, 430px); object-fit: cover; display: block; opacity: .62; }
.page-hero .ph-inner { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; max-width: 1120px; margin: 0 auto; padding: 0 20px 2.2rem; }
.page-hero h1 { font-family: var(--ff-display); font-size: var(--fs-h1); font-weight: 600; line-height: var(--lh-tight); color: #fff; text-shadow: 0 2px 18px rgba(0,0,0,.45); max-width: 16em; }
.crumbs { font-size: var(--fs-small); color: var(--c-cream2); margin-bottom: .5rem; }
.crumbs a { color: var(--c-cream2); }

/* --- Article meta / byline --- */
.byline { display: flex; align-items: center; gap: .7em; max-width: 46em; margin: 1.2em auto 2em; padding-bottom: 1.2em; border-bottom: 1px solid var(--c-cream2); font-size: var(--fs-meta); color: var(--c-mut); }
.byline .avatar { width: 42px; height: 42px; border-radius: 50%; background: var(--c-choc); color: var(--c-cream); display: inline-flex; align-items: center; justify-content: center; font-family: var(--ff-display); font-size: 1.1rem; font-weight: 600; flex: none; }
.author-box { max-width: 46em; margin: 2.5em auto; background: var(--c-cream2); border-radius: 12px; padding: 1.3em 1.5em; font-size: var(--fs-meta); color: var(--c-ink); }

/* --- Related posts / journal grid --- */
.card-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); max-width: 1120px; margin: 1.5rem auto 3rem; padding: 0 20px; }
.card { background: #fff; border-radius: 12px; overflow: hidden; box-shadow: 0 2px 10px rgba(42,26,16,.09); display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease; }
.card:hover { transform: translateY(-4px); box-shadow: 0 10px 26px rgba(42,26,16,.16); }
.card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.card .card-body { padding: 1.05em 1.15em 1.25em; display: flex; flex-direction: column; gap: .45em; }
.card h3 { font-size: var(--fs-h3); font-weight: 600; line-height: var(--lh-snug); }
.card h3 a { color: var(--c-choc); text-decoration: none; }
.card h3 a:hover { color: var(--c-gold-ink); }
.card p { font-size: var(--fs-meta); color: var(--c-mut); }
.section-head { max-width: 1120px; margin: 3rem auto .4rem; padding: 0 20px; }
.eyebrow { display: block; font-size: var(--fs-small); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-gold-ink); margin-bottom: .4em; }
.section-head h2 { font-family: var(--ff-display); font-size: var(--fs-h2); font-weight: 600; color: var(--c-choc); line-height: var(--lh-tight); }

/* --- Rate calculator --- */
.lasha-calc { max-width: 46em; margin: 2.2em auto; background: #fff; border: 1px solid var(--c-cream2); border-radius: 14px; padding: 1.5em 1.6em; box-shadow: 0 2px 12px rgba(42,26,16,.08); min-height: 460px; }
.lasha-calc h3 { font-family: var(--ff-display); color: var(--c-choc); font-size: var(--fs-h3); margin-bottom: .8em; }
.lasha-calc label { display: block; font-size: var(--fs-meta); font-weight: 600; color: var(--c-ink); margin: .9em 0 .3em; }
.lasha-calc select, .lasha-calc input[type=number] { width: 100%; padding: .6em .7em; border: 1px solid #D8C8B2; border-radius: 8px; font-size: var(--fs-body); background: var(--c-cream-soft); color: var(--c-ink); }
.lasha-calc .calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.lasha-calc output { display: block; margin-top: 1.2em; background: var(--c-cream2); border-radius: 10px; padding: 1em 1.2em; font-size: var(--fs-body); color: var(--c-ink); }
.lasha-calc output strong { font-size: var(--fs-h3); color: var(--c-choc); }
.lasha-calc .calc-note { font-size: var(--fs-small); color: var(--c-mut); margin-top: .7em; }
.lasha-calc .btn-wa { margin-top: 1em; }
@media (max-width: 560px) { .lasha-calc .calc-row { grid-template-columns: 1fr; } .lasha-calc { min-height: 560px; } }

/* --- Footer --- */
.site-footer { background: var(--c-choc-dark); color: var(--c-cream); margin-top: 4rem; }
.site-footer .foot-grid { max-width: 1120px; margin: 0 auto; padding: 3rem 20px 2rem; display: grid; gap: 28px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.site-footer .foot-h { font-family: var(--ff-display); font-size: var(--fs-h3); color: #fff; margin-bottom: .7em; font-weight: 600; }
.site-footer ul { list-style: none; }
.site-footer li { margin-bottom: .5em; }
.site-footer a { color: var(--c-cream); text-decoration: none; font-size: var(--fs-meta); }
.site-footer a:hover { color: var(--c-gold); text-decoration: underline; }
.site-footer p { font-size: var(--fs-meta); color: var(--c-cream2); }
.foot-partner { border-top: 1px solid rgba(248,240,231,.16); }
.foot-partner .fp-inner { max-width: 1120px; margin: 0 auto; padding: 1.1rem 20px; font-size: var(--fs-small); color: var(--c-cream2); display: flex; flex-wrap: wrap; gap: .4em 1.4em; align-items: center; justify-content: space-between; }

/* --- Sticky mobile WA bar --- */
.wa-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: none; background: var(--c-wa); color: #fff; text-align: center; padding: .95em 1em calc(.95em + env(safe-area-inset-bottom)); font-weight: 700; font-size: var(--fs-body); text-decoration: none; box-shadow: 0 -3px 14px rgba(0,0,0,.25); }
@media (max-width: 782px) { .wa-sticky { display: block; } body { padding-bottom: 58px; } }

/* --- Blog index --- */
.archive-head { background: var(--c-choc); padding: 3.2rem 20px 2.6rem; text-align: center; }
.archive-head h1 { font-family: var(--ff-display); color: #fff; font-size: var(--fs-h1); font-weight: 600; }
.archive-head p { color: var(--c-cream2); max-width: 40em; margin: .6em auto 0; }

/* --- Partner ribbon --- */
.partner-ribbon { background: var(--c-cream2); border-block: 1px solid #E7D9C4; margin-top: 3rem; }
.partner-ribbon .pr-inner { max-width: 1120px; margin: 0 auto; padding: 1.6rem 20px; display: flex; flex-wrap: wrap; gap: 1em 2em; align-items: center; justify-content: center; text-align: center; }
.partner-ribbon p { font-size: var(--fs-meta); color: var(--c-ink); max-width: 46em; }
.partner-ribbon strong { color: var(--c-choc); }

/* --- Misc --- */
.entry-content .wp-block-image img, .entry-content img { max-width: 100%; height: auto; }
.err-404 { text-align: center; padding: 6rem 20px; }
.err-404 h1 { font-family: var(--ff-display); font-size: var(--fs-h1); color: var(--c-choc); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* --- FAQ TOC --- */
.faq-toc { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5em; margin: 0 auto 1.5em; max-width: 46em; }
.faq-toc li { margin: 0; }
.faq-toc a { display: inline-block; background: var(--c-cream2); color: var(--c-choc); border-radius: 999px; padding: .45em 1em; font-size: var(--fs-meta); font-weight: 600; text-decoration: none; }
.faq-toc a:hover { background: var(--c-gold); color: #241503; }
.entry-content h2[id] { scroll-margin-top: 90px; }
