/*
 * Dream Yachting Charter — component styles.
 * Themes customise the look by overriding the custom properties below.
 */
:root {
	--dyc-ink: #10202f;
	--dyc-muted: #5d6b78;
	--dyc-navy: #0b2a45;
	--dyc-sea: #1d5c7a;
	--dyc-accent: #c8a35a;
	--dyc-accent-ink: #0b2a45;
	--dyc-bg: #ffffff;
	--dyc-soft: #f6f3ee;
	--dyc-line: #e6e1d8;
	--dyc-success: #1f7a4d;
	--dyc-error: #b42318;
	--dyc-radius: 14px;
	--dyc-radius-sm: 8px;
	--dyc-shadow: 0 1px 2px rgba(11, 42, 69, .06), 0 8px 24px rgba(11, 42, 69, .08);
	--dyc-font-display: Georgia, "Times New Roman", serif;
	--dyc-container: 1240px;
}

.dyc-container { width: min(100% - 32px, var(--dyc-container)); margin-inline: auto; }
.dyc-main { color: var(--dyc-ink); }
.dyc-noscroll { overflow: hidden; }
.dyc-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Typography ---------- */
.dyc-eyebrow, .dyc-card__eyebrow { text-transform: uppercase; letter-spacing: .14em; font-size: .75rem; font-weight: 600; color: var(--dyc-sea); margin: 0 0 .5rem; }
.dyc-h2 { font-family: var(--dyc-font-display); font-weight: 400; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.2rem); line-height: 1.15; margin: 0 0 1.25rem; color: var(--dyc-navy); }
.dyc-h3 { font-family: var(--dyc-font-display); font-weight: 400; font-size: 1.35rem; margin: 1.5rem 0 .75rem; color: var(--dyc-navy); }
.dyc-small, .dyc-form__hint, .dyc-form__note { font-size: .85rem; color: var(--dyc-muted); }
.dyc-lead { font-size: 1.15rem; max-width: 60rem; }
.dyc-link { color: var(--dyc-sea); font-weight: 600; text-decoration: none; }
.dyc-link:hover { text-decoration: underline; }

/* ---------- Buttons ---------- */
.dyc-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .85rem 1.5rem; border: 1px solid var(--dyc-accent); border-radius: 999px; background: var(--dyc-accent); color: var(--dyc-accent-ink); font-weight: 600; font-size: .95rem; letter-spacing: .02em; text-decoration: none; cursor: pointer; transition: background .2s, color .2s, transform .2s; line-height: 1.2; }
.dyc-btn:hover, .dyc-btn:focus-visible { background: var(--dyc-navy); border-color: var(--dyc-navy); color: #fff; }
.dyc-btn:disabled { opacity: .6; cursor: wait; }
.dyc-btn--small { padding: .55rem 1rem; font-size: .85rem; }
.dyc-btn--block { width: 100%; }
.dyc-btn--ghost { background: transparent; color: var(--dyc-navy); border-color: var(--dyc-line); }
.dyc-btn--wa { margin-top: .6rem; }
.dyc-btn--wa::before { content: ""; width: 1.1em; height: 1.1em; background: #25d366; border-radius: 50%; }

/* ---------- Grid & cards ---------- */
.dyc-grid { display: grid; gap: 28px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); }
@media (min-width: 900px) {
	.dyc-grid--2 { grid-template-columns: repeat(2, 1fr); }
	.dyc-grid--3 { grid-template-columns: repeat(3, 1fr); }
	.dyc-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
.dyc-card { background: var(--dyc-bg); border-radius: var(--dyc-radius); overflow: hidden; box-shadow: var(--dyc-shadow); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.dyc-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(11,42,69,.06), 0 18px 40px rgba(11,42,69,.12); }
.dyc-card__media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--dyc-soft); }
.dyc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.dyc-card:hover .dyc-card__media img { transform: scale(1.04); }
.dyc-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--dyc-sea), var(--dyc-navy)); }
.dyc-badge { position: absolute; top: 14px; left: 14px; background: rgba(255,255,255,.92); color: var(--dyc-navy); padding: .3rem .7rem; border-radius: 999px; font-size: .75rem; font-weight: 600; }
.dyc-card__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.dyc-card__title { font-family: var(--dyc-font-display); font-weight: 400; font-size: 1.45rem; line-height: 1.2; margin: 0 0 .25rem; }
.dyc-card__title a { color: var(--dyc-navy); text-decoration: none; }
.dyc-card__sub, .dyc-card__excerpt, .dyc-card__next { color: var(--dyc-muted); font-size: .9rem; margin: 0 0 .75rem; }
.dyc-card__foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--dyc-line); display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dyc-card__price { margin: 0; font-size: .85rem; color: var(--dyc-muted); }
.dyc-card__price strong { font-size: 1.2rem; color: var(--dyc-navy); }

/* ---------- Facts ---------- */
.dyc-facts { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin: .5rem 0 0; padding: 0; }
.dyc-facts li { display: flex; flex-direction: column; }
.dyc-facts__v { font-weight: 600; color: var(--dyc-navy); }
.dyc-facts__v a { color: inherit; }
.dyc-facts__l { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--dyc-muted); }
.dyc-facts--large { gap: 14px 40px; margin: 1.5rem 0 0; }
.dyc-facts--large .dyc-facts__v { font-size: 1.25rem; }
.dyc-facts--bar { background: var(--dyc-soft); border-radius: var(--dyc-radius); padding: 22px 28px; margin: -48px 0 0; position: relative; box-shadow: var(--dyc-shadow); }

/* ---------- Destinations ---------- */
.dyc-dest { position: relative; display: block; aspect-ratio: 4 / 5; border-radius: var(--dyc-radius); overflow: hidden; color: #fff; text-decoration: none; }
.dyc-dest__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.dyc-dest:hover .dyc-dest__img { transform: scale(1.06); }
.dyc-dest::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,22,38,.75), rgba(6,22,38,0) 55%); }
.dyc-dest__body { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 1; display: flex; flex-direction: column; }
.dyc-dest__name { font-family: var(--dyc-font-display); font-size: 1.6rem; line-height: 1.1; }
.dyc-dest__count { font-size: .8rem; opacity: .85; margin-top: .25rem; }

/* ---------- Search ---------- */
.dyc-search { display: grid; gap: 12px; background: var(--dyc-bg); border-radius: var(--dyc-radius); padding: 16px; box-shadow: var(--dyc-shadow); color: var(--dyc-ink); }
.dyc-search--bar { grid-template-columns: 1fr; }
@media (min-width: 900px) {
	.dyc-search--bar { grid-template-columns: 1.4fr 1fr 1fr 1fr .6fr auto; align-items: end; padding: 14px 14px 14px 22px; border-radius: 999px; }
	.dyc-search--bar .dyc-search__field { border-right: 1px solid var(--dyc-line); padding-right: 12px; }
	.dyc-search--bar .dyc-search__field:nth-last-child(2) { border-right: 0; }
	.dyc-search--bar input, .dyc-search--bar select { border: 0 !important; padding-left: 0 !important; background: transparent !important; box-shadow: none !important; }
}
.dyc-search--stacked { box-shadow: none; padding: 0; background: transparent; }
.dyc-search__field label, .dyc-form__field label { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--dyc-muted); margin-bottom: 4px; }
.dyc-search input, .dyc-search select, .dyc-form input:not([type=checkbox]), .dyc-form select, .dyc-form textarea, .dyc-sort select {
	width: 100%; padding: .7rem .8rem; border: 1px solid var(--dyc-line); border-radius: var(--dyc-radius-sm); background: #fff; color: var(--dyc-ink); font: inherit; font-size: .95rem; min-height: 44px; box-sizing: border-box;
}
.dyc-search input:focus, .dyc-search select:focus, .dyc-form input:focus, .dyc-form select:focus, .dyc-form textarea:focus { outline: 2px solid var(--dyc-accent); outline-offset: 1px; border-color: var(--dyc-accent); }
.dyc-search__submit .dyc-btn { width: 100%; min-height: 48px; }

/* ---------- Hero ---------- */
.dyc-hero { position: relative; background: var(--dyc-navy); color: #fff; padding: clamp(80px, 12vw, 160px) 0 clamp(60px, 8vw, 110px); overflow: hidden; }
.dyc-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.dyc-hero.has-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,22,38,.35), rgba(6,22,38,.65)); }
.dyc-hero__inner { position: relative; z-index: 1; }
.dyc-hero .dyc-eyebrow { color: var(--dyc-accent); }
.dyc-hero__title { font-family: var(--dyc-font-display); font-weight: 400; font-size: clamp(2.2rem, 1.4rem + 3vw, 4rem); line-height: 1.05; margin: 0; color: #fff; max-width: 18ch; }
.dyc-hero__sub { font-size: 1.1rem; max-width: 46rem; opacity: .9; margin-top: 1rem; }

/* ---------- Layout ---------- */
.dyc-layout { display: grid; gap: 48px; margin-top: 40px; }
@media (min-width: 1024px) {
	.dyc-layout { grid-template-columns: minmax(0, 1fr) 380px; }
	.dyc-layout--filters { grid-template-columns: 280px minmax(0, 1fr); }
}
.dyc-sticky { position: sticky; top: calc(var(--dyc-sticky-offset, 90px) + 16px); }
.dyc-section { padding: 28px 0; }
.dyc-section + .dyc-section { border-top: 1px solid var(--dyc-line); }
.dyc-section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.dyc-related { border-top: 1px solid var(--dyc-line); margin-top: 40px; padding-top: 48px; }
.dyc-single { padding-bottom: 80px; }
.dyc-single__head { padding: 28px 0 8px; }
.dyc-single__title { font-family: var(--dyc-font-display); font-weight: 400; font-size: clamp(2rem, 1.4rem + 2vw, 3.2rem); line-height: 1.1; margin: 0; color: var(--dyc-navy); }
.dyc-single__sub { color: var(--dyc-muted); margin: .4rem 0 0; }
.dyc-archive { padding-bottom: 80px; }
.dyc-layout__filters { background: var(--dyc-soft); border-radius: var(--dyc-radius); padding: 22px; align-self: start; }
.dyc-layout__filters .dyc-h3 { margin-top: 0; }
.dyc-subnav { position: sticky; top: var(--dyc-sticky-offset, 90px); z-index: 5; display: flex; gap: 22px; overflow-x: auto; background: var(--dyc-bg); border-bottom: 1px solid var(--dyc-line); padding: 14px 0; scrollbar-width: none; }
.dyc-subnav a { white-space: nowrap; color: var(--dyc-muted); font-weight: 600; text-decoration: none; font-size: .9rem; }
.dyc-subnav a:hover { color: var(--dyc-navy); }
.dyc-results-bar { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.dyc-results-bar__count { margin: 0; color: var(--dyc-muted); }
.dyc-sort { display: flex; align-items: center; gap: 8px; }
.dyc-sort label { font-size: .85rem; color: var(--dyc-muted); white-space: nowrap; }
.dyc-sort select { min-width: 190px; }
.dyc-empty { background: var(--dyc-soft); border-radius: var(--dyc-radius); padding: 28px; }

/* ---------- Gallery ---------- */
.dyc-gallery { display: grid; gap: 8px; margin-top: 24px; border-radius: var(--dyc-radius); overflow: hidden; }
.dyc-gallery__item { position: relative; display: block; overflow: hidden; background: var(--dyc-soft); }
.dyc-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
.dyc-gallery__item:hover img { transform: scale(1.03); }
.dyc-gallery__item.is-hidden { display: none; }
.dyc-gallery--1 .dyc-gallery__item { aspect-ratio: 21 / 9; }
.dyc-gallery__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(6,22,38,.55); color: #fff; font-weight: 600; font-size: 1.1rem; }
@media (min-width: 768px) {
	.dyc-gallery--2 { grid-template-columns: 2fr 1fr; height: 460px; }
	.dyc-gallery--3, .dyc-gallery--4, .dyc-gallery--5 { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; height: 500px; }
	.dyc-gallery--3 .dyc-gallery__item:first-child, .dyc-gallery--4 .dyc-gallery__item:first-child, .dyc-gallery--5 .dyc-gallery__item:first-child { grid-row: 1 / 3; }
	.dyc-gallery--3 .dyc-gallery__item:nth-child(2), .dyc-gallery--3 .dyc-gallery__item:nth-child(3) { grid-column: 2 / 4; }
	.dyc-gallery--4 .dyc-gallery__item:nth-child(4) { grid-column: 2 / 4; }
}
@media (max-width: 767px) {
	.dyc-gallery { grid-template-columns: repeat(4, 1fr); }
	.dyc-gallery .dyc-gallery__item:first-child { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
	.dyc-gallery .dyc-gallery__item:not(:first-child) { aspect-ratio: 1; }
}

.dyc-lightbox { position: fixed; inset: 0; z-index: 9999; background: rgba(4,14,24,.95); display: flex; align-items: center; justify-content: center; }
.dyc-lightbox[hidden] { display: none; }
.dyc-lightbox img { max-width: 92vw; max-height: 86vh; object-fit: contain; }
.dyc-lightbox button { position: absolute; background: none; border: 0; color: #fff; font-size: 2.6rem; cursor: pointer; padding: 12px 18px; line-height: 1; }
.dyc-lightbox__close { top: 10px; right: 10px; }
.dyc-lightbox__prev { left: 10px; top: 50%; transform: translateY(-50%); }
.dyc-lightbox__next { right: 10px; top: 50%; transform: translateY(-50%); }
.dyc-lightbox__count { position: absolute; bottom: 12px; color: #fff; opacity: .7; font-size: .85rem; }

/* ---------- Specs, lists, tables ---------- */
.dyc-specs { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 0 32px; margin: 0; }
.dyc-specs div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--dyc-line); }
.dyc-specs dt { color: var(--dyc-muted); }
.dyc-specs dd { margin: 0; font-weight: 600; text-align: right; }
.dyc-checklist { list-style: none; padding: 0; margin: 0; columns: 2 220px; column-gap: 32px; }
.dyc-checklist li { padding: 6px 0 6px 28px; position: relative; break-inside: avoid; }
.dyc-checklist li::before { content: ""; position: absolute; left: 0; top: 11px; width: 14px; height: 8px; border-left: 2px solid var(--dyc-accent); border-bottom: 2px solid var(--dyc-accent); transform: rotate(-45deg); }
.dyc-checklist--no li::before { border: 0; width: 14px; height: 2px; top: 16px; background: var(--dyc-muted); transform: none; }
.dyc-inout { display: grid; gap: 32px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.dyc-inout .dyc-checklist { columns: 1; }
.dyc-inout .dyc-h3 { margin-top: 0; }
.dyc-table-wrap { overflow-x: auto; }
.dyc-table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.dyc-table th { text-align: left; font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; color: var(--dyc-muted); padding: 10px 12px; border-bottom: 2px solid var(--dyc-line); }
.dyc-table td { padding: 14px 12px; border-bottom: 1px solid var(--dyc-line); vertical-align: middle; }
.dyc-table .num { text-align: right; white-space: nowrap; }
.dyc-table tr.is-sold td { color: var(--dyc-muted); }
.dyc-table small { display: block; color: var(--dyc-muted); margin-top: 2px; }
.dyc-pill { display: inline-block; padding: .2rem .6rem; border-radius: 999px; font-size: .75rem; font-weight: 600; background: var(--dyc-soft); }
.dyc-pill--guaranteed { background: #e3f2ea; color: var(--dyc-success); }
.dyc-pill--few_left { background: #fdf1dc; color: #8a5a00; }
.dyc-pill--sold_out { background: #f3e3e1; color: var(--dyc-error); }
.dyc-terms-list { padding-left: 1.1rem; color: var(--dyc-muted); font-size: .92rem; }
.dyc-extras { list-style: none; padding: 0; margin: 0; }
.dyc-extras li { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px dashed var(--dyc-line); }
.dyc-extras small { color: var(--dyc-muted); font-weight: 400; }
.dyc-cabins { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.dyc-cabin { background: var(--dyc-soft); border-radius: var(--dyc-radius); padding: 18px 20px; }
.dyc-cabin .dyc-h3 { margin-top: 0; }
.dyc-cabin__meta { color: var(--dyc-sea); font-weight: 600; font-size: .9rem; }
.dyc-video { position: relative; aspect-ratio: 16 / 9; margin-top: 24px; border-radius: var(--dyc-radius); overflow: hidden; }
.dyc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ---------- Itinerary timeline ---------- */

/* ---------- Map ---------- */
.dyc-map { height: 420px; border-radius: var(--dyc-radius); overflow: hidden; background: var(--dyc-soft); margin-bottom: 28px; z-index: 0; }
.dyc-pin span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--dyc-navy); color: #fff; font-size: 13px; font-weight: 700; border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3); }

/* ---------- Booking form ---------- */
.dyc-booking { background: var(--dyc-bg); border: 1px solid var(--dyc-line); border-radius: var(--dyc-radius); padding: 24px; box-shadow: var(--dyc-shadow); }
.dyc-booking__title { font-family: var(--dyc-font-display); font-weight: 400; font-size: 1.5rem; margin: 0 0 .25rem; color: var(--dyc-navy); }
.dyc-booking__from { margin: 0 0 1rem; color: var(--dyc-muted); }
.dyc-booking__from strong { color: var(--dyc-navy); font-size: 1.3rem; }
.dyc-form { display: flex; flex-direction: column; gap: 14px; }
.dyc-form__row { display: grid; gap: 12px; }
.dyc-form__row--2 { grid-template-columns: 1fr 1fr; }
@media (max-width: 480px) { .dyc-form__row--2 { grid-template-columns: 1fr; } }
.dyc-form__contact { display: flex; flex-direction: column; gap: 14px; padding-top: 14px; border-top: 1px solid var(--dyc-line); }
.dyc-form__hint { margin: -6px 0 0; }
.dyc-form__extras { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.dyc-form__extras legend { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--dyc-muted); margin-bottom: 6px; }
.dyc-check { display: flex; gap: 10px; align-items: flex-start; font-size: .92rem; cursor: pointer; }
.dyc-check input { margin-top: 3px; accent-color: var(--dyc-navy); width: 16px; height: 16px; flex: none; }
.dyc-check em { margin-left: auto; font-style: normal; color: var(--dyc-muted); white-space: nowrap; font-size: .85rem; }
.dyc-check--consent { font-size: .82rem; color: var(--dyc-muted); }
.dyc-form .is-invalid input, .dyc-form .is-invalid select, .dyc-form .is-invalid textarea { border-color: var(--dyc-error); }
.dyc-form .dyc-check.is-invalid { color: var(--dyc-error); }
.dyc-form__actions { display: flex; flex-direction: column; }
.dyc-form__note { text-align: center; margin: .6rem 0 0; }
.dyc-form__status:empty { display: none; }
.dyc-form__status { padding: 12px 14px; border-radius: var(--dyc-radius-sm); font-size: .92rem; }
.dyc-form__status.is-success { background: #e3f2ea; color: var(--dyc-success); }
.dyc-form__status.is-error { background: #f8e5e3; color: var(--dyc-error); }
.dyc-form.is-sent .dyc-form__contact, .dyc-form.is-sent .dyc-form__actions { display: none; }

.dyc-quote { background: var(--dyc-soft); border-radius: var(--dyc-radius-sm); padding: 14px 16px; transition: opacity .2s; }
.dyc-quote.is-loading { opacity: .5; }
.dyc-quote__empty, .dyc-quote__warn { margin: 0; font-size: .9rem; color: var(--dyc-muted); }
.dyc-quote__warn { color: #8a5a00; margin-bottom: 8px; }
.dyc-quote__lines { margin: 0; }
.dyc-quote__lines div { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; font-size: .92rem; }
.dyc-quote__lines dt { color: var(--dyc-muted); }
.dyc-quote__lines dd { margin: 0; font-weight: 600; white-space: nowrap; }
.dyc-quote__lines .is-total { border-top: 1px solid var(--dyc-line); margin-top: 6px; padding-top: 10px; font-size: 1.1rem; }
.dyc-quote__lines .is-total dt { color: var(--dyc-navy); font-weight: 600; }
.dyc-quote__small { margin: 6px 0 0; font-size: .8rem; color: var(--dyc-muted); }

.dyc-cta-box .dyc-booking { max-width: 760px; margin-inline: auto; }

/* ---------- Pagination (WP core markup) ---------- */
.dyc-main .pagination .nav-links { display: flex; gap: 6px; justify-content: center; margin-top: 40px; flex-wrap: wrap; }
.dyc-main .pagination .page-numbers { min-width: 42px; height: 42px; display: grid; place-items: center; border-radius: 999px; border: 1px solid var(--dyc-line); text-decoration: none; color: var(--dyc-navy); padding: 0 12px; }
.dyc-main .pagination .page-numbers.current { background: var(--dyc-navy); color: #fff; border-color: var(--dyc-navy); }

@media (prefers-reduced-motion: reduce) {
	.dyc-card, .dyc-card__media img, .dyc-dest__img, .dyc-gallery__item img { transition: none; }
}


/* ==========================================================================
   1.1 — Trip pages (WeRoad-style), departures, inclusions, good to know
   ========================================================================== */

.dyc-trip__meta { color: var(--dyc-muted); font-size: 1rem; margin: .25rem 0 0; letter-spacing: .01em; }
.dyc-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 16px 0 24px; }
.dyc-chips li { background: var(--dyc-soft); border: 1px solid var(--dyc-line); border-radius: 999px; padding: .3rem .8rem; font-size: .85rem; color: var(--dyc-navy); }
.dyc-readmore.is-clamped { max-height: 320px; overflow: hidden; position: relative; }
.dyc-readmore.is-clamped::after { content: ""; position: absolute; inset: auto 0 0; height: 90px; background: linear-gradient(to bottom, transparent, var(--dyc-bg)); }
.dyc-readmore__btn { background: none; border: 0; padding: 0; margin: 8px 0 16px; cursor: pointer; font: inherit; font-weight: 600; }

/* Status pills */
.dyc-pill--open { background: #e3f2ea; color: var(--dyc-success); }
.dyc-pill--on_hold { background: #fff6d6; color: #7a5b00; }
.dyc-pill--sold_out { background: #ececec; color: #555; }

/* Month filter */
.dyc-months { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 12px; margin-bottom: 8px; scrollbar-width: thin; }
.dyc-months__btn { flex: 0 0 auto; border: 1px solid var(--dyc-line); background: var(--dyc-bg); color: var(--dyc-ink); border-radius: 999px; padding: .4rem .9rem; font: inherit; font-size: .85rem; cursor: pointer; }
.dyc-months__btn.is-active { background: var(--dyc-navy); border-color: var(--dyc-navy); color: #fff; }

/* Departures list */
.dyc-deps__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.dyc-dep { display: grid; gap: 10px 20px; align-items: center; grid-template-columns: 1fr auto; padding: 16px 18px; border: 1px solid var(--dyc-line); border-radius: var(--dyc-radius-sm); background: var(--dyc-bg); }
.dyc-dep[hidden] { display: none; }
.dyc-dep__dates strong { display: block; font-size: 1.05rem; color: var(--dyc-navy); }
.dyc-dep__wd { display: block; text-transform: uppercase; letter-spacing: .1em; font-size: .7rem; color: var(--dyc-muted); }
.dyc-dep small { display: block; color: var(--dyc-muted); font-size: .8rem; margin-top: 2px; }
.dyc-dep__route a { font-weight: 600; color: var(--dyc-navy); text-decoration: none; }
.dyc-dep__price strong { font-size: 1.15rem; color: var(--dyc-ink); }
.dyc-dep__price span { color: var(--dyc-muted); font-size: .85rem; }
.dyc-dep__cta { text-align: right; }
.dyc-dep.is-sold_out, .dyc-dep.is-on_hold { background: var(--dyc-soft); }
.dyc-dep.is-sold_out .dyc-dep__dates strong, .dyc-dep.is-sold_out .dyc-dep__price strong { color: var(--dyc-muted); }
.dyc-dep.is-sold_out .dyc-dep__price strong { text-decoration: line-through; text-decoration-thickness: 1px; }
.dyc-deps__legend { margin-top: 12px; }
@media (min-width: 720px) {
	.dyc-dep { grid-template-columns: minmax(170px, 1.1fr) 1fr minmax(150px, .9fr) auto; }
	.dyc-deps__list:not(.dyc-deps__list--weeks) .dyc-dep:has(.dyc-dep__route) { grid-template-columns: minmax(160px, 1fr) 1.4fr 1fr minmax(140px, .9fr) auto; }
	.dyc-deps__list--weeks .dyc-dep { grid-template-columns: minmax(190px, 1.2fr) 1fr minmax(120px, .8fr) auto; }
}
@media (max-width: 719px) {
	.dyc-dep__dates, .dyc-dep__route { grid-column: 1 / -1; }
	.dyc-dep__state { text-align: left; }
}

/* Day by day (accordion) */
.dyc-days { list-style: none; padding: 0; margin: 0; position: relative; }
.dyc-days::before { content: ""; position: absolute; left: 21px; top: 22px; bottom: 22px; width: 2px; background: repeating-linear-gradient(to bottom, var(--dyc-accent) 0 6px, transparent 6px 12px); }
.dyc-day { position: relative; padding: 0 0 12px; }
.dyc-day details { border-radius: var(--dyc-radius-sm); }
.dyc-day__head { list-style: none; display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: center; cursor: pointer; padding: 6px 0; }
.dyc-day__head::-webkit-details-marker { display: none; }
.dyc-day__head::after { content: "+"; grid-column: 3; font-size: 1.4rem; color: var(--dyc-sea); line-height: 1; padding-left: 8px; }
.dyc-day details[open] > .dyc-day__head::after { content: "–"; }
.dyc-day__marker { width: 44px; height: 44px; border-radius: 50%; background: var(--dyc-navy); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--dyc-font-display); font-size: 1.15rem; position: relative; z-index: 1; }
.dyc-day__titles { display: flex; flex-direction: column; min-width: 0; }
.dyc-day__label { font-size: .7rem; text-transform: uppercase; letter-spacing: .14em; color: var(--dyc-sea); font-weight: 600; }
.dyc-day__title { font-family: var(--dyc-font-display); font-size: 1.25rem; color: var(--dyc-navy); line-height: 1.25; }
.dyc-day__meta { grid-column: 2; color: var(--dyc-muted); font-size: .85rem; margin-top: -6px; }
.dyc-day__body { margin: 4px 0 8px 58px; display: grid; gap: 14px; }
@media (min-width: 720px) { .dyc-day__body:has(.dyc-day__img) { grid-template-columns: 220px 1fr; } }
.dyc-day__img { border-radius: var(--dyc-radius-sm); width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.dyc-day__text p { margin: 0 0 .6em; }
.dyc-days__note { margin-top: 4px; }

/* Included / not included */
.dyc-inout2 { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.dyc-inout2__col { background: var(--dyc-soft); border-radius: var(--dyc-radius); padding: 20px 22px; }
.dyc-inout2__col .dyc-h3 { margin: 0 0 10px; }
.dyc-tick { list-style: none; padding: 0; margin: 0; }
.dyc-tick li { position: relative; padding: 7px 0 7px 30px; border-bottom: 1px solid var(--dyc-line); }
.dyc-tick li:last-child { border-bottom: 0; }
.dyc-tick li::before { position: absolute; left: 0; top: 7px; width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 700; }
.dyc-tick--in li::before { content: "✓"; background: #e3f2ea; color: var(--dyc-success); }
.dyc-tick--out li::before { content: "✕"; background: #f3e3e1; color: var(--dyc-error); }
.dyc-more summary { cursor: pointer; font-weight: 600; color: var(--dyc-sea); padding-top: 8px; }

/* Good to know */
.dyc-know { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); margin: 0; }
.dyc-know__item { border: 1px solid var(--dyc-line); border-radius: var(--dyc-radius-sm); padding: 14px 16px 14px 52px; position: relative; }
.dyc-know__item::before { content: "ℹ"; position: absolute; left: 14px; top: 14px; width: 26px; height: 26px; border-radius: 50%; background: var(--dyc-soft); color: var(--dyc-sea); display: flex; align-items: center; justify-content: center; font-size: .9rem; }
.dyc-know__item--embark::before { content: "⚓"; }
.dyc-know__item--disembark::before { content: "⚑"; }
.dyc-know__item--yacht::before { content: "⛵"; }
.dyc-know__item--skipper::before { content: "★"; }
.dyc-know__item--flight::before { content: "✈"; }
.dyc-know__item--bag::before { content: "▣"; }
.dyc-know__item--single::before { content: "1"; font-weight: 700; }
.dyc-know dt { font-weight: 700; color: var(--dyc-navy); margin: 0 0 2px; }
.dyc-know dd { margin: 0; color: var(--dyc-ink); }

/* Sidebar summary */
.dyc-summary { border: 1px solid var(--dyc-line); border-radius: var(--dyc-radius); padding: 18px 20px; margin-bottom: 16px; background: var(--dyc-bg); box-shadow: var(--dyc-shadow); }
.dyc-summary__price { margin: 0 0 8px; color: var(--dyc-muted); }
.dyc-summary__price strong { font-size: 1.7rem; color: var(--dyc-navy); font-family: var(--dyc-font-display); font-weight: 500; }
.dyc-summary__next { margin: 0 0 14px; font-size: .9rem; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dyc-empty-note { color: var(--dyc-muted); }
