/*
Theme Name:   SipDouro
Theme URI:    https://sipdouro.com
Description:  Child theme da SipDouro para o Kadence. Cores, botões e blocos prontos (Padrões > SipDouro).
Author:       SIP & SAVOR, LDA
Template:     kadence
Version:      1.15.0
Text Domain:  sipdouro
*/

/* ---------- Cores da marca ---------- */
:root {
	--sd-wine: #7a1f4c;
	--sd-wine-dark: #5e1739;
	--sd-wine-pale: #f4e9ee;
	--sd-ink: #2a2226;
	--sd-muted: #62575c;
	--sd-bg: #faf7f4;
	--sd-line: #efe6ea;
	--sd-gold: #c18a1e;
	--sd-radius: 16px;
}

body { background: var(--sd-bg); color: var(--sd-ink); }
a { color: var(--sd-wine); }
a:hover { color: var(--sd-wine-dark); }

/* ---------- Botões (pílula) ---------- */
.wp-block-button__link,
.button, button.button, input[type="submit"] {
	border-radius: 999px !important;
	font-weight: 600;
	padding: 0.85em 1.7em;
	background: var(--sd-wine);
	color: #fff;
	border: 1.5px solid var(--sd-wine);
	transition: background .2s, color .2s;
}
.wp-block-button__link:hover { background: var(--sd-wine-dark); border-color: var(--sd-wine-dark); color: #fff; }

.sd-btn-outline .wp-block-button__link { background: transparent; color: var(--sd-ink); border-color: var(--sd-ink); }
.sd-btn-outline .wp-block-button__link:hover { background: var(--sd-ink); color: #fff; }
.sd-btn-light .wp-block-button__link { background: #fff; color: var(--sd-wine); border-color: #fff; }
.sd-btn-light .wp-block-button__link:hover { background: var(--sd-wine-pale); color: var(--sd-wine-dark); }
.sd-btn-ghost .wp-block-button__link { background: transparent; color: #fff; border-color: #fff; }
.sd-btn-ghost .wp-block-button__link:hover { background: rgba(255,255,255,.15); color: #fff; }

/* ---------- Secções ---------- */
.sd-section { padding: 88px 0; }
.sd-section > * { max-width: 1240px; margin-left: auto; margin-right: auto; }
.sd-section h2, .sd-band h2, .sd-cta h2 { font-size: clamp(30px, 4vw, 42px); line-height: 1.12; margin-bottom: .3em; }
.sd-lead { color: var(--sd-muted); max-width: 640px; }

/* ---------- Topo (hero) ---------- */
.sd-hero { min-height: 600px; align-items: center; }
.sd-hero .wp-block-cover__inner-container { max-width: 1240px; margin: 0 auto; width: 100%; }
.sd-hero .sd-hero-title { font-size: clamp(40px, 6vw, 64px); line-height: 1.05; color: #fff; max-width: 640px; margin: .4em 0 .3em; }
.sd-hero p { color: #fff; font-size: 20px; max-width: 600px; }
.sd-pill { display: inline-block; background: rgba(255,255,255,.18); border: 1px solid rgba(255,255,255,.45); padding: 6px 16px; border-radius: 999px; font-size: 15px !important; }

/* ---------- Faixa de garantias ---------- */
.sd-trust { background: #fff; border-bottom: 1px solid var(--sd-line); padding: 24px 0; }
.sd-trust .wp-block-columns { max-width: 1240px; margin: 0 auto; gap: 24px; }
.sd-trust p { margin: 0; font-size: 15px; line-height: 1.5; padding-left: 14px; border-left: 3px solid var(--sd-wine); }
.sd-trust strong { color: var(--sd-wine); }

/* ---------- Cartões de tours ---------- */
.sd-cards { gap: 32px !important; }
.sd-card {
	background: #fff; border: 1px solid var(--sd-line); border-radius: var(--sd-radius);
	overflow: hidden; display: flex; flex-direction: column; position: relative;
	transition: box-shadow .25s, transform .25s;
}
.sd-card:hover { box-shadow: 0 14px 34px rgba(60,20,40,.12); transform: translateY(-3px); }
.sd-card > *:not(.sd-card-img) { padding-left: 26px; padding-right: 26px; }
.sd-card-img { margin: 0 !important; }
.sd-card-img img { width: 100%; height: 280px; object-fit: cover; display: block; }
.sd-card h3 { font-size: 22px; margin: 22px 0 6px; }
.sd-card p { color: var(--sd-muted); font-size: 15px; }
.sd-badge { position: absolute; top: 14px; right: 14px; margin: 0 !important; padding: 5px 14px !important; border-radius: 999px; background: var(--sd-wine); color: #fff !important; font-size: 13px !important; font-weight: 600; }
.sd-badge.sd-gold { background: var(--sd-wine); }
.sd-badge.sd-dark { background: var(--sd-ink); }
.sd-badge.sd-soft { background: #ede3e8; color: #4f4549 !important; }
.sd-meta { list-style: none; margin: 4px 0 0; font-size: 15px; color: var(--sd-ink); }
.sd-meta li { padding: 3px 0 3px 22px; position: relative; }
.sd-meta li::before { content: ""; position: absolute; left: 0; top: .7em; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--sd-wine); }
.sd-price { margin-top: auto !important; padding-top: 14px; padding-bottom: 6px; font-size: 26px !important; font-weight: 700; color: var(--sd-wine) !important; }
.sd-price .sd-small { font-size: 14px; font-weight: 400; color: var(--sd-muted); }
.sd-card .wp-block-buttons { padding-bottom: 26px; }
.sd-note { font-size: 15px; color: var(--sd-muted); margin-top: 28px !important; }

/* ---------- O dia ---------- */
.sd-band { background: var(--sd-wine-pale); padding: 88px 0; }
.sd-band > * { max-width: 1240px; margin-left: auto; margin-right: auto; }
.sd-timeline { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; }
.sd-timeline li { background: #fff; border-radius: 14px; padding: 18px; font-size: 15px; line-height: 1.4; }
.sd-timeline li strong { display: block; font-size: 22px; color: var(--sd-wine); margin-bottom: 4px; }

/* ---------- Avaliações ---------- */
.sd-review { background: #fff; border: 1px solid var(--sd-line) !important; border-radius: var(--sd-radius); padding: 28px !important; margin: 0; }
.sd-review::before { content: "★★★★★"; color: var(--sd-gold); display: block; margin-bottom: 10px; letter-spacing: 2px; }
.sd-review p { font-size: 17px; font-style: normal; }
.sd-review cite { font-style: normal; font-weight: 600; color: var(--sd-ink); }

/* ---------- FAQ ---------- */
.sd-faq { background: #fff; border: 1px solid var(--sd-line); border-radius: 14px; padding: 18px 22px; margin-bottom: 12px !important; }
.sd-faq summary { font-weight: 600; font-size: 18px; cursor: pointer; }
.sd-faq p { color: #4f4549; margin: 8px 0 0; }

/* ---------- Faixa final ---------- */
.sd-cta { background: var(--sd-wine); color: #fff; padding: 72px 0; }
.sd-cta > * { max-width: 1240px; margin-left: auto; margin-right: auto; }
.sd-cta h2, .sd-cta p { color: #fff; }
.sd-cta p { color: #f6e9ef; }

/* ---------- Página de tour ---------- */
.sd-tour-head h1 { font-size: clamp(34px, 5vw, 52px); margin-bottom: 8px; }
.sd-facts { list-style: none; padding: 0 !important; margin-left: 0 !important; display: flex; flex-wrap: wrap; justify-content: flex-start !important; text-align: left; gap: 10px 28px; color: var(--sd-muted); }
.sd-facts li strong { color: var(--sd-wine); }
.sd-box { background: #fff; border: 1px solid var(--sd-line); border-radius: var(--sd-radius); padding: 28px; }

/* ---------- Margens laterais e alinhamento ---------- */
.sd-section, .sd-band, .sd-cta, .sd-trust { padding-left: 32px !important; padding-right: 32px !important; box-sizing: border-box; }
.sd-hero { padding-left: 32px !important; padding-right: 32px !important; }
.sd-hero .wp-block-cover__inner-container > * { margin-left: 0 !important; margin-right: auto !important; }
.sd-hero .wp-block-buttons { margin-top: 28px; }
.sd-section > *, .sd-band > *, .sd-cta > * { max-width: 1240px; }

/* ---------- Ajustes v1.0.3 ---------- */
.sd-timeline { padding-left: 0 !important; margin-left: 0 !important; }
.sd-price { margin-top: 8px !important; padding-top: 6px; }
.sd-meta { margin-bottom: 0 !important; }
.sd-section h2 { margin-top: 0; }
.sd-section > .wp-block-heading + .sd-lead { margin-top: 0; }

/* Botão WhatsApp fixo */
.sd-wa {
	position: fixed; right: 18px; bottom: 18px; z-index: 999;
	width: 58px; height: 58px; border-radius: 50%;
	background: #1fa855; color: #fff; display: flex; align-items: center; justify-content: center;
	box-shadow: 0 8px 22px rgba(0,0,0,.22);
}
.sd-wa:hover { background: #178f47; color: #fff; }
.sd-wa svg { width: 30px; height: 30px; }

/* ---------- Galeria de fotos ---------- */
.sd-strip.wp-block-gallery { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px !important; }
.sd-strip.wp-block-gallery .wp-block-image { width: 100% !important; margin: 0 !important; }
.sd-strip.wp-block-gallery .wp-block-image img { width: 100%; height: 300px !important; object-fit: cover; border-radius: 14px; }

@keyframes sd-nudge { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-36px); } }
@media (prefers-reduced-motion: reduce) { .sd-cards > .sd-card, .sd-strip .wp-block-image { animation: none !important; } }

/* ---------- Telemóvel ---------- */
@media (max-width: 767px) {
	.sd-section, .sd-band, .sd-cta { padding-top: 56px; padding-bottom: 56px; }
	.sd-section, .sd-band, .sd-cta, .sd-trust, .sd-hero { padding-left: 16px !important; padding-right: 16px !important; }
	.sd-hero { min-height: 520px; }
	.sd-card-img img { height: 200px; }
	.sd-section, .sd-band, .sd-cta { padding-top: 48px !important; padding-bottom: 48px !important; }

	/* Cartões em carrossel horizontal: desliza para o lado */
	.sd-cards {
		display: flex !important; flex-wrap: nowrap !important; overflow-x: auto;
		scroll-snap-type: x mandatory; gap: 14px !important;
		margin-left: -16px !important; margin-right: -16px !important;
		padding: 4px 16px 18px !important; -webkit-overflow-scrolling: touch;
	}
	.sd-cards { scroll-padding-left: 16px; scroll-padding-right: 16px; }
	.sd-cards > .sd-card { flex: 0 0 84% !important; scroll-snap-align: start; }
	/* Botão Book do cabeçalho mais pequeno no telemóvel */
	.mobile-header-button-wrap .button, .mobile-header-button, .header-button { padding: .55em 1.15em !important; font-size: 15px !important; line-height: 1.2 !important; }
	.sd-cards + .sd-cards { margin-top: 8px; }
	.sd-card h3 { font-size: 20px; margin-top: 16px; }
	.sd-card .wp-block-buttons { padding-bottom: 20px; }
	.sd-price { font-size: 24px !important; }

	/* Aviso para deslizar + pequeno movimento dos cartões */
	#tours .sd-lead::after { content: " Swipe to see more →"; display: block; margin-top: 6px; font-size: 15px; font-weight: 600; color: var(--sd-wine); }
	.sd-cards > .sd-card, .sd-strip.wp-block-gallery .wp-block-image { animation: sd-nudge 1.1s ease-in-out .8s 2; }

	/* Galeria: desliza para o lado */
	.sd-strip.wp-block-gallery {
		display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory;
		margin-left: -16px !important; margin-right: -16px !important; padding: 0 16px 10px !important;
		scroll-padding-left: 16px; -webkit-overflow-scrolling: touch;
	}
	.sd-strip.wp-block-gallery .wp-block-image { flex: 0 0 78% !important; scroll-snap-align: start; }
	.sd-strip.wp-block-gallery .wp-block-image img { height: 260px !important; }

	/* Avaliações mais juntas */
	.sd-section .wp-block-columns { gap: 16px !important; }
	.sd-review { padding: 22px !important; }

	/* Linha do tempo em lista compacta */
	.sd-timeline { grid-template-columns: 1fr; gap: 8px; }
	.sd-timeline li { display: flex; align-items: baseline; gap: 14px; padding: 14px 16px; }
	.sd-timeline li strong { display: inline-block; min-width: 64px; font-size: 19px; margin: 0; }
}

/* v1.0.8 – Who's pouring */
.sd-places { list-style: none; padding-left: 0 !important; margin-top: 20px; }
.sd-places li { padding: 10px 0; border-top: 1px solid var(--sd-line); }
.sd-places li:last-child { border-bottom: 1px solid var(--sd-line); }
@media (max-width: 767px) { .sd-hosts .wp-block-columns { gap: 24px; } }

/* v1.0.9 – formulário e tabelas */
.sd-form { display: grid; gap: 16px; max-width: 720px; margin-top: 24px; }
.sd-form label { display: grid; gap: 6px; font-weight: 500; color: var(--sd-ink); }
.sd-form input, .sd-form select, .sd-form textarea { width: 100%; padding: 12px 14px; border: 1px solid var(--sd-line); border-radius: 10px; background: #fff; font: inherit; font-weight: 400; }
.sd-form input:focus, .sd-form select:focus, .sd-form textarea:focus { outline: 2px solid var(--sd-wine); outline-offset: 1px; }
.sd-form .sd-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sd-form button { justify-self: start; border: 0; cursor: pointer; padding: .9em 2em; border-radius: 999px; background: var(--sd-wine); color: #fff; font-weight: 600; }
.sd-form button:hover { background: var(--sd-wine-dark); }
.sd-form .sd-small { font-weight: 400; color: var(--sd-muted); font-size: 14px; }
.sd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.sd-form-msg { padding: 18px 20px; border-radius: 12px; margin: 16px 0; max-width: 720px; }
.sd-form-msg.sd-ok { background: var(--sd-wine-pale); }
.sd-form-msg.sd-err { background: #fdecec; }
.wp-block-table table { border-collapse: collapse; background: #fff; }
.wp-block-table th { background: var(--sd-wine-pale); color: var(--sd-ink); text-align: left; }
.wp-block-table td, .wp-block-table th { border: 1px solid var(--sd-line); padding: 10px 14px; }
.sd-price-table { max-width: 420px; }
@media (max-width: 767px) {
	.sd-form .sd-row { grid-template-columns: 1fr; }
	.wp-block-table { overflow-x: auto; }
	.wp-block-table td, .wp-block-table th { padding: 8px 10px; font-size: 15px; }
}

/* v1.0.10 – PT */
@media (max-width: 767px) { html[lang^="pt"] #tours .sd-lead::after { content: " Deslizem para ver mais →"; } }

/* v1.1.0 – dica de deslizar em português */
@media (max-width: 767px) {
	html[lang^="pt"] #tours .sd-lead::after { content: " Deslizem para ver mais →"; }
}

/* ---------- v1.1.2: fotos maiores e formulário mais legível ---------- */
.sd-card-img img { height: 340px; }
.sd-card .sd-note { margin-top: 4px !important; font-size: 15px; }
.sd-card .sd-note a { color: var(--sd-wine); font-weight: 600; }
.sd-strip.wp-block-gallery .wp-block-image img { height: 360px !important; }
.sd-hosts .sd-card-img img, .sd-hosts img { height: auto; max-height: 520px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; }
.sd-form { font-size: 18px; gap: 20px; }
.sd-form label { font-size: 17px; }
.sd-form input, .sd-form select, .sd-form textarea { font-size: 17px; padding: 14px 16px; }
.sd-form button { font-size: 18px; padding: 1em 2.4em; }
.sd-form .sd-small { font-size: 15px; }
@media (max-width: 767px) {
	.sd-card-img img { height: 240px; }
	.sd-strip.wp-block-gallery .wp-block-image img { height: 300px !important; }
	.sd-form input, .sd-form select, .sd-form textarea { font-size: 16px; }
}
.sd-foot { font-size: 14px; line-height: 1.8; margin: 0; }
.sd-foot a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.sd-foot-nav { font-size: 15px; font-weight: 500; margin: 0 0 10px; line-height: 2; }
.sd-foot-nav a { color: inherit; text-decoration: none; }
.sd-foot-nav a:hover { text-decoration: underline; }
.sd-booking { margin-top: 12px; }
.sd-booking .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.sd-booking-live { min-height: 480px; }

/* ---------- v1.2.1: espaçamento mais apertado e regular ---------- */
.entry-content > .wp-block-group, .entry-content > .wp-block-cover { margin-top: 0 !important; margin-bottom: 0 !important; }
.sd-section, .sd-band { padding-top: 64px !important; padding-bottom: 64px !important; }
.sd-section + .sd-section { padding-top: 16px !important; }
.sd-cta { padding-top: 56px !important; padding-bottom: 56px !important; }
.sd-section p, .sd-band p, .sd-cta p { margin-bottom: 14px; }
.sd-section .sd-lead { margin-bottom: 24px; }
.sd-card > p:not(.sd-badge):not(.sd-price) { margin-bottom: 12px !important; }
.sd-card .sd-price { margin-bottom: 16px !important; }
.sd-card .sd-note { margin: 0 0 12px !important; }
@media (max-width: 767px) {
	.sd-section, .sd-band { padding-top: 44px !important; padding-bottom: 44px !important; }
	.sd-section + .sd-section { padding-top: 8px !important; }
	.sd-cta { padding-top: 44px !important; padding-bottom: 44px !important; }
}

/* ---------- v1.2.3: hero mais claro, escuro só atrás do texto ---------- */
.sd-hero .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(90deg, rgba(42,26,34,.62) 0%, rgba(42,26,34,.38) 45%, rgba(42,26,34,.05) 80%) !important; }
.sd-hero .wp-block-cover__image-background { image-rendering: auto; }
@media (max-width: 767px) {
	.sd-hero .wp-block-cover__background { background: linear-gradient(180deg, rgba(42,26,34,.25) 0%, rgba(42,26,34,.55) 100%) !important; }
}

/* ---------- v1.2.4: linha do tempo e grelha de opiniões ---------- */
.sd-timeline li strong { white-space: nowrap; flex-shrink: 0; }
.sd-section .wp-block-columns:has(.sd-review) + .wp-block-columns:has(.sd-review) { margin-top: 24px; }
.sd-review { height: 100%; box-sizing: border-box; }
.sd-review p { font-size: 16px; line-height: 1.6; }
@media (max-width: 767px) {
	.sd-timeline li strong { min-width: 58px; }
	.sd-section .wp-block-columns:has(.sd-review) + .wp-block-columns:has(.sd-review) { margin-top: 16px; }
}

/* ---------- v1.2.5: botão Book do cabeçalho mais fino no computador ---------- */
#masthead .header-button, .site-header .header-button { padding: .55em 1.5em !important; font-size: 15px !important; line-height: 1.2 !important; min-height: 0 !important; font-weight: 600; }

/* ---------- v1.2.6: hero vertical no telemóvel ---------- */
@media (max-width: 767px) {
	.sd-hero { background: url('/wp-content/uploads/2026/10/douro-terraces-river-curve.webp') center 60% / cover no-repeat; }
	.sd-hero .wp-block-cover__image-background { opacity: 0; }
}

.sd-form .sd-privacy-note { font-size: 14px; line-height: 1.5; margin: 0; }
.sd-form .sd-privacy-note a { color: var(--sd-wine); }

/* v1.2.8: páginas legais */
.sd-legal h1 { font-size: clamp(30px, 4vw, 40px); }
.sd-legal h2 { font-size: 21px !important; margin-top: 28px; margin-bottom: 8px; }
.sd-legal p, .sd-legal li { font-size: 16px; line-height: 1.65; }

/* ---- Menu móvel (1.2.9): claro, produtos à vista, reservar no fundo ---- */
#mobile-drawer .drawer-inner { width: 100%; max-width: 420px; background: var(--sd-bg); color: var(--sd-ink); display: flex; flex-direction: column; }
#mobile-drawer .drawer-header { padding: 12px 16px 0; }
#mobile-drawer .menu-toggle-close { color: var(--sd-ink); }
#mobile-drawer .toggle-close-bar { background: var(--sd-ink) !important; }
#mobile-drawer .drawer-content { padding: 4px 24px 28px; display: flex; flex-direction: column; flex: 1; overflow-y: auto; }
#mobile-menu, #mobile-menu ul { border: 0 !important; }
#mobile-menu li { border: 0 !important; }
#mobile-menu .drawer-sub-toggle { display: none !important; }
#mobile-menu .drawer-nav-drop-wrap { border: 0 !important; }
#mobile-menu > li > a, #mobile-menu > li > .drawer-nav-drop-wrap > a {
	color: var(--sd-ink) !important; font-size: 18px; font-weight: 500; padding: 14px 0 !important;
	border-bottom: 1px solid var(--sd-line) !important; width: 100%;
}
#mobile-menu > li.menu-item-has-children > .drawer-nav-drop-wrap > a {
	color: var(--sd-muted) !important; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	padding: 22px 0 6px !important; border-bottom: 0 !important; pointer-events: none;
}
#mobile-menu .sub-menu { display: block !important; height: auto !important; padding: 0 0 8px !important; margin: 0 !important; }
#mobile-menu .sub-menu a {
	color: var(--sd-wine) !important; font-size: 21px; font-weight: 600; padding: 9px 0 !important; border: 0 !important;
}
#mobile-menu > li.menu-item-has-children { border-bottom: 1px solid var(--sd-line) !important; }
#mobile-menu > li:not(.menu-item-has-children):first-of-type > a { margin-top: 10px; }
#mobile-menu a[href="/pt/"], #mobile-menu a[href="/"][title], #mobile-menu a[title="Português"], #mobile-menu a[title="English"] { display: none !important; }
.sd-drawer-foot { margin-top: auto; padding-top: 28px; display: flex; flex-direction: column; gap: 12px; }
.sd-drawer-book { display: block; text-align: center; background: var(--sd-wine); color: #fff !important; font-weight: 600; font-size: 17px; padding: 15px 18px; border-radius: 999px; text-decoration: none; }
.sd-drawer-wa { display: block; text-align: center; border: 1.5px solid var(--sd-ink); color: var(--sd-ink) !important; font-weight: 600; font-size: 15px; padding: 13px 18px; border-radius: 999px; text-decoration: none; }
.sd-drawer-lang { margin: 6px 0 0; text-align: center; font-size: 15px; }
.sd-drawer-lang a { color: var(--sd-muted) !important; text-decoration: underline; }

/* ---- 1.3.4: comparação na home, "não inclui", barra fixa no telemóvel ---- */
.sd-compare-table table { border-collapse: collapse; width: 100%; background: #fff; border-radius: var(--sd-radius); overflow: hidden; font-size: 16px; }
.sd-compare-table th, .sd-compare-table td { padding: 14px 16px; border-bottom: 1px solid var(--sd-line); text-align: left; vertical-align: top; }
.sd-compare-table thead th { font-size: 14px; letter-spacing: .04em; text-transform: uppercase; color: var(--sd-muted); background: #fff; border-bottom: 2px solid var(--sd-line); }
.sd-compare-table th:last-child, .sd-compare-table td:last-child { background: var(--sd-wine-pale); color: var(--sd-ink); font-weight: 600; }
.sd-compare-table thead th:last-child { color: var(--sd-wine); }
.sd-compare-table td:nth-child(2) { color: var(--sd-muted); }
.sd-compare-table tr:last-child td { border-bottom: 0; }
@media (max-width: 600px) {
	.sd-compare-table th, .sd-compare-table td { padding: 10px 8px; font-size: 14px; }
	.sd-compare-table td:first-child { width: 28%; }
}
h3.sd-not-incl { margin-top: 22px !important; font-size: 17px; color: var(--sd-muted); }
.sd-not-incl-list { color: var(--sd-muted); }
.sd-stickybar { display: none; }
@media (max-width: 781px) {
	.sd-stickybar { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		background: #fff; border-top: 1px solid var(--sd-line); padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); box-shadow: 0 -4px 18px rgba(0,0,0,.06); }
	.sd-stickybar-price { margin: 0; font-size: 18px; font-weight: 700; color: var(--sd-wine); line-height: 1.2; }
	.sd-stickybar-price span { display: block; font-size: 12px; font-weight: 400; color: var(--sd-muted); }
	.sd-stickybar-btn { background: var(--sd-wine); color: #fff !important; font-weight: 600; padding: 12px 22px; border-radius: 999px; text-decoration: none; white-space: nowrap; }
	body:has(.sd-stickybar) { padding-bottom: 76px; }
	body:has(.sd-stickybar) .sd-wa { display: none !important; }
	.sd-stickybar-actions { display: flex; align-items: center; gap: 10px; }
	.sd-stickybar-wa { width: 46px; height: 46px; border-radius: 50%; background: #25d366; color: #fff !important; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
	.sd-stickybar-wa svg { width: 24px; height: 24px; }
}
/* Tabela de provas da Foz Tua no telemóvel: uma linha por prova */
@media (max-width: 600px) {
	.page-id-41 .wp-block-table thead, .page-id-78 .wp-block-table thead { display: none; }
	.page-id-41 .wp-block-table table, .page-id-78 .wp-block-table table,
	.page-id-41 .wp-block-table tbody, .page-id-78 .wp-block-table tbody { display: block; width: 100%; }
	.page-id-41 .wp-block-table tr, .page-id-78 .wp-block-table tr { display: block; border: 1px solid var(--sd-line); border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
	.page-id-41 .wp-block-table td, .page-id-78 .wp-block-table td { display: block; border: 0 !important; padding: 2px 0 !important; }
	.page-id-41 .wp-block-table td:nth-child(1), .page-id-78 .wp-block-table td:nth-child(1) { font-weight: 700; font-size: 17px; color: var(--sd-wine); }
	.page-id-41 .wp-block-table td:nth-child(2), .page-id-78 .wp-block-table td:nth-child(2) { color: var(--sd-muted); margin-bottom: 4px; }
	.page-id-41 .wp-block-table td:nth-child(3), .page-id-78 .wp-block-table td:nth-child(3) { font-weight: 700; }
	.page-id-41 .wp-block-table td:nth-child(3)::before { content: "2 to 4 guests: "; font-weight: 400; }
	.page-id-78 .wp-block-table td:nth-child(3)::before { content: "2 a 4 pessoas: "; font-weight: 400; }
	.page-id-41 .wp-block-table td:nth-child(4)::before { content: "5 to 8 guests: "; }
	.page-id-78 .wp-block-table td:nth-child(4)::before { content: "5 a 8 pessoas: "; }
	.page-id-41 .wp-block-table td:nth-child(4), .page-id-78 .wp-block-table td:nth-child(4) { font-size: 14px; color: var(--sd-muted); }
}
.sd-rating-line { font-weight: 600; color: var(--sd-ink); margin-top: -6px !important; }
.sd-rating-line::first-letter { color: var(--sd-wine); }

/* ---- 1.3.6: submenu do PC claro, com descrição e preço ---- */
.header-navigation .header-menu-container ul ul.sub-menu,
.header-navigation ul ul.sub-menu {
	background: #fff !important; border: 1px solid var(--sd-line); border-radius: 14px;
	box-shadow: 0 14px 34px rgba(42,34,38,.12); padding: 8px !important; min-width: 300px; margin-top: 6px;
}
.header-navigation ul ul.sub-menu li.menu-item { border: 0 !important; }
.header-navigation ul ul.sub-menu li.menu-item > a {
	display: block; width: auto; color: var(--sd-ink) !important; background: transparent !important;
	font-size: 16px; font-weight: 600; padding: 10px 14px !important; border-radius: 10px; border: 0 !important; line-height: 1.3;
}
.header-navigation ul ul.sub-menu li.menu-item > a::after {
	display: block; margin-top: 3px; font-size: 13px; font-weight: 400; color: var(--sd-muted); white-space: normal;
}
.header-navigation ul ul.sub-menu li.menu-item > a:hover,
.header-navigation ul ul.sub-menu li.menu-item > a:focus { background: var(--sd-wine-pale) !important; color: var(--sd-wine) !important; }
.header-navigation ul ul.sub-menu li.current-menu-item > a { color: var(--sd-wine) !important; }

/* ---- 1.3.7: consistência de tipografia e cores ---- */
/* H1 das páginas interiores e dos artigos: sempre maior que os H2 */
.sd-section h1.wp-block-heading, .single-post h1.entry-title, .page h1.entry-title { font-size: 48px !important; line-height: 1.12; color: var(--sd-ink); }
@media (max-width: 781px) { .sd-section h1.wp-block-heading, .single-post h1.entry-title, .page h1.entry-title { font-size: 34px !important; } }
/* Respostas das perguntas frequentes: mesma cor do texto do site */
.sd-faq p { color: var(--sd-ink) !important; }
/* Etiqueta "Shared or private": paleta do site */
.sd-badge.sd-soft { background: var(--sd-wine-pale) !important; color: var(--sd-wine) !important; }
/* Formulário: mesma cor de texto, raio e botão que o resto */
.sd-form input, .sd-form select, .sd-form textarea { color: var(--sd-ink) !important; border-radius: 12px !important; border: 1px solid var(--sd-line) !important; }
.sd-form input:focus, .sd-form select:focus, .sd-form textarea:focus { border-color: var(--sd-wine) !important; outline: none; box-shadow: 0 0 0 3px var(--sd-wine-pale); }
.sd-form button, .sd-form input[type=submit] { padding: 15px 30px !important; font-size: 18px !important; border-radius: 999px !important; }
/* Blog: artigos relacionados com as cores do site, não preto/cinza do tema */
.entry-related { background: var(--sd-wine-pale) !important; }
.entry-related .splide__arrow { background: var(--sd-wine) !important; color: #fff !important; opacity: 1; }
.entry-related .splide__arrow:hover { background: var(--sd-wine-dark) !important; }
.entry-related .splide__arrow svg { fill: #fff !important; }
.entry-related .splide__pagination__page { background: var(--sd-line) !important; }
.entry-related .splide__pagination__page.is-active { background: var(--sd-wine) !important; }
.loop-entry, .single-entry.content-bg { border-radius: 16px !important; overflow: hidden; }
.entry-related .loop-entry .entry-title a { color: var(--sd-ink) !important; }
.entry-related .loop-entry .entry-title a:hover { color: var(--sd-wine) !important; }

/* ---------- Mapas (v1.5.0) ---------- */
.sd-map-wrap{display:grid;gap:14px;margin:24px 0}
.sd-map{height:420px;border-radius:var(--sd-radius);border:1px solid var(--sd-line);background:#ece6dc;overflow:hidden;z-index:0}
.sd-map-pin .sd-map{height:260px}
.sd-map-search{display:grid;gap:10px;background:var(--sd-wine-pale);border-radius:var(--sd-radius);padding:18px}
.sd-map-search label{font-size:1.35rem;font-weight:700;color:var(--sd-ink)}
.sd-map-help{margin:0;color:var(--sd-muted);font-size:1rem}
.sd-map-row{display:flex;gap:8px;flex-wrap:wrap}
.sd-map-row input{flex:1 1 220px;min-width:0;font-size:1.1rem;padding:14px 16px;border:1px solid var(--sd-line);border-radius:12px;background:#fff;color:var(--sd-ink)}
.sd-map-row button,.sd-map-btn{background:var(--sd-wine);color:#fff;border:0;border-radius:999px;padding:14px 22px;font-size:1.05rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}
.sd-map-row button:hover,.sd-map-btn:hover{background:var(--sd-wine-dark);color:#fff}
.sd-map-loc{justify-self:start;background:none;border:0;color:var(--sd-wine);font-weight:700;font-size:1rem;text-decoration:underline;cursor:pointer;padding:4px 0}
.sd-map-answer{font-size:1.15rem;min-height:1.4em}
.sd-map-answer.is-in strong{color:#0c7a3c;font-size:1.3rem}
.sd-map-answer.is-out strong{color:#b4372f}
.sd-map-answer span{color:var(--sd-muted)}
.sd-map-answer a{color:var(--sd-wine);font-weight:700}
.sd-map-towns{margin:0;color:var(--sd-muted);font-size:1rem;line-height:1.6}
.sd-map-find{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;justify-content:space-between}
.sd-map-find p{margin:0;flex:1 1 260px;color:var(--sd-ink)}
.sd-map-tip{font-weight:700;font-size:13px}
@media (max-width:781px){.sd-map{height:340px}.sd-map-pin .sd-map{height:220px}}

/* v1.6.0 */
.sd-hero-note{font-size:.95rem;font-weight:600;letter-spacing:.02em;opacity:.95;margin-top:-4px}
.sd-updated{margin-top:32px;font-size:.85rem;color:var(--sd-muted)}
.sd-facts-lead{font-size:1.05rem;color:var(--sd-ink);border-left:3px solid var(--sd-wine);padding-left:14px}
.wp-block-gallery figure figcaption.wp-element-caption{font-size:.8rem}

/* ---------- v1.7.0: pedido de reserva sem becos sem saída ---------- */
.sd-book-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
.sd-book-opt { background: #fff; border: 1px solid var(--sd-line); border-radius: var(--sd-radius); padding: 22px; }
.sd-book-opt h3 { margin: 0 0 4px; font-size: 20px; }
.sd-book-opt .sd-muted { margin: 0 0 14px; }
.sd-btn-wa { background: #25d366 !important; color: #fff !important; }
.sd-form-quick { display: grid; gap: 12px; }
.sd-form-quick .sd-row { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; }
.sd-form-quick label { display: grid; gap: 4px; font-weight: 600; font-size: 15px; }
.sd-form-quick input { width: 100%; box-sizing: border-box; }
.sd-form-quick button { justify-self: start; }
@media (max-width: 781px) {
	.sd-book-opts { grid-template-columns: 1fr; }
	/* Topo das páginas de produto: título, foto, factos, preço e botão primeiro; descrição depois */
	.sd-tour-head .wp-block-columns { display: flex !important; flex-direction: column; }
	.sd-tour-head .wp-block-column { display: contents; }
	.sd-tour-head h1 { order: 1; }
	.sd-tour-head .sd-card-img { order: 2; margin: 4px 0 14px !important; }
	.sd-tour-head .sd-facts { order: 3; margin-bottom: 4px !important; }
	.sd-tour-head .sd-price { margin-top: 4px !important; }
	.sd-tour-head .sd-price { order: 4; }
	.sd-tour-head .wp-block-buttons { order: 5; }
	.sd-tour-head .sd-lead { order: 6; margin-top: 18px; }
	/* Opiniões: deslizar para o lado */
	.sd-review-row { display: flex !important; flex-wrap: nowrap !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px !important; padding-bottom: 8px; }
	.sd-review-row > .wp-block-column { flex: 0 0 85% !important; scroll-snap-align: start; }
}
@media (min-width: 782px) {
	.sd-review-row { flex-wrap: wrap !important; }
	.sd-review-row > .wp-block-column { flex: 0 0 calc(33.333% - 2em) !important; }
}

/* v1.8.3: foto do cartão clicável */
.sd-card-img-link { display: block; }

/* v1.9.0: percurso de compra */
.sd-review-more { text-align: center; margin-top: 18px !important; }
.sd-review-more a { font-weight: 600; }
.sd-end-cta { text-align: center; max-width: 720px; margin: 48px auto 0 !important; padding: 36px 24px !important; background: #f5ece9; border-radius: 16px; }
.sd-end-cta h2 { margin-top: 0; }
.sd-end-cta .wp-block-buttons { justify-content: center; gap: 12px; }
.sd-lb { position: fixed; inset: 0; z-index: 100000; background: rgba(20,10,15,.94); display: flex; align-items: center; justify-content: center; }
.sd-lb[hidden] { display: none; }
.sd-lb img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 6px; }
.sd-lb button { position: absolute; background: rgba(255,255,255,.12); color: #fff; border: 0; width: 48px; height: 48px; border-radius: 50%; font-size: 30px; line-height: 1; cursor: pointer; }
.sd-lb-x { top: 16px; right: 16px; }
.sd-lb-p { left: 12px; top: 50%; transform: translateY(-50%); }
.sd-lb-n { right: 12px; top: 50%; transform: translateY(-50%); }

/* ---------- v1.11.0: fotos dos cartões robustas ----------
   Qualquer imagem no topo de um cartão (mesmo trocada no editor e sem a classe sd-card-img)
   ocupa a largura toda, com altura fixa e recorte. */
.sd-card > figure.wp-block-image:first-child,
.sd-card > .wp-block-image:first-child { margin: 0 !important; padding: 0 !important; width: 100% !important; max-width: none !important; }
.sd-card > figure.wp-block-image:first-child img,
.sd-card > .wp-block-image:first-child img,
.sd-card > .sd-card-img img,
.sd-card .sd-card-img-link img { width: 100% !important; max-width: none !important; height: 340px !important; object-fit: cover; display: block; aspect-ratio: auto !important; }
.sd-card > figure.wp-block-image:first-child.alignleft,
.sd-card > figure.wp-block-image:first-child.alignright { float: none !important; }
@media (max-width: 767px) {
	.sd-card > figure.wp-block-image:first-child img,
	.sd-card > .wp-block-image:first-child img,
	.sd-card > .sd-card-img img,
	.sd-card .sd-card-img-link img { height: 240px !important; }
}
.sd-hosts .sd-card > .sd-card-img img, .sd-hosts .sd-card > figure.wp-block-image:first-child img { height: auto !important; max-height: 520px; aspect-ratio: 4 / 3 !important; }

/* v1.11.1: o link à volta da foto (v1.8.3) herdava inline-block do Kadence e encolhia fotos verticais. */
.sd-card a.sd-card-img-link, .wp-block-image a.sd-card-img-link { display: block !important; width: 100% !important; }

/* v1.12.0 – Transfers */
.sd-tr .sd-tr-ac { position: relative; }
.sd-tr .sd-tr-list { position: absolute; top: 100%; left: 0; right: 0; z-index: 20; margin: 4px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--sd-line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.08); max-height: 280px; overflow-y: auto; }
.sd-tr .sd-tr-list li { display: grid; gap: 2px; padding: 10px 12px; border-radius: 8px; cursor: pointer; font-weight: 400; }
.sd-tr .sd-tr-list li span { font-size: 13px; color: #6b6360; }
.sd-tr .sd-tr-list li:hover, .sd-tr .sd-tr-list li:focus { background: #f5f0ee; outline: none; }
.sd-tr .sd-tr-quote { border-top: 1px solid var(--sd-line); padding-top: 16px; }
.sd-tr .sd-tr-price { font-size: 40px; font-weight: 600; line-height: 1.1; color: var(--sd-ink); }
.sd-tr .sd-tr-price span { font-size: 15px; font-weight: 400; color: #6b6360; margin-left: 6px; }
.sd-tr #sd-tr-more { display: grid; gap: 16px; }
.sd-tr #sd-tr-more[hidden] { display: none; }
.sd-tr input[type=date], .sd-tr input[type=time] { min-width: 0; -webkit-appearance: none; appearance: none; min-height: 48px; }
@media (max-width: 600px) { .sd-tr .sd-row { grid-template-columns: 1fr; } }
.sd-tr-gallery.wp-block-gallery { margin-top: 32px; }
.sd-tr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#sdx) { height: 380px !important; flex-grow: 1; }
.sd-tr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#sdx) img { height: 100% !important; width: 100% !important; object-fit: cover; border-radius: 10px; }
@media (max-width: 600px) {
  .sd-tr-gallery.wp-block-gallery.has-nested-images { flex-wrap: nowrap !important; gap: 6px !important; }
  .sd-tr-gallery.wp-block-gallery.has-nested-images figure.wp-block-image:not(#sdx) { width: calc(33.33% - 4px) !important; height: 170px !important; }
}

/* v1.13.0 – pesquisa Google no mapa da zona de recolha */
.sd-map-search .sd-tr-list { position: absolute; top: 100%; left: 0; right: 0; z-index: 1000; margin: 4px 0 0; padding: 4px; list-style: none; background: #fff; border: 1px solid var(--sd-line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.08); max-height: 280px; overflow-y: auto; text-align: left; }
.sd-map-search .sd-tr-list li { display: grid; gap: 2px; padding: 10px 12px; border-radius: 8px; cursor: pointer; }
.sd-map-search .sd-tr-list li span { font-size: 13px; color: #6b6360; }
.sd-map-search .sd-tr-list li:hover, .sd-map-search .sd-tr-list li:focus { background: #f5f0ee; outline: none; }
