/* ------------------------------------------------------------------
   Coastal Verge — site styles
   Namespaced .cv-* so nothing collides with the theme stylesheets.
   Colours and type follow the theme tokens already in use:
   --wpex-accent #8c1b1a, Montserrat headings, Merriweather body.
   ------------------------------------------------------------------ */

:root {
	--cv-accent: var(--wpex-accent, #8c1b1a);
	--cv-ink: #1c1c1c;
	--cv-muted: #6b6b6b;
	--cv-line: #e2e2e2;
	--cv-surface: #f4f2ef;
	--cv-dark: #111111;
	--cv-radius: 2px;
}

/* ---------- top bar ---------- */

#top-bar-wrap { --wpex-link-color: #ffffff; --wpex-hover-link-color: #e6c9a8; }
.cv-topbar-contact,
.cv-topbar-badge { font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 1px; color: #ffffff; }
.cv-topbar-contact a { color: #ffffff; text-decoration: none; }
.cv-topbar-contact a:hover { color: #e6c9a8; }
.cv-topbar-contact .cv-sep { opacity: .45; margin: 0 4px; }
.cv-topbar-badge {
	display: inline-block; border: 1px solid rgba(255,255,255,.35);
	padding: 3px 10px; text-transform: uppercase; font-weight: 600; font-size: 11px;
}
@media (max-width: 767px) {
	.cv-topbar-contact { display: block; line-height: 1.9; font-size: 11px; }
	.cv-topbar-badge { margin-bottom: 8px; }
}

/* ---------- text logo ---------- */

.cv-logo { display: block; text-decoration: none; line-height: 1.1; }
.cv-logo__mark {
	display: block; font-family: Montserrat, sans-serif; font-weight: 600;
	font-size: 26px; letter-spacing: 5px; text-transform: uppercase; color: #ffffff;
}
.cv-logo__sub {
	display: block; font-family: Montserrat, sans-serif; font-weight: 400;
	font-size: 9px; letter-spacing: 3px; text-transform: uppercase;
	color: #b9a38a; margin-top: 5px;
}
.cv-logo:hover .cv-logo__mark { color: #e6c9a8; }
@media (max-width: 767px) {
	.cv-logo__mark { font-size: 18px; letter-spacing: 3px; }
	.cv-logo__sub { font-size: 8px; letter-spacing: 2px; }
}

/* ---------- nav CTA ---------- */

.main-navigation-ul li.cv-nav-cta > a { background: var(--cv-accent); }
.main-navigation-ul li.cv-nav-cta > a:hover { background: #6f1514; }

/* ---------- shared blocks ---------- */

.cv-page { font-family: Merriweather, Georgia, serif; color: var(--cv-ink); }
.cv-wrap { max-width: 1140px; margin: 0 auto; padding: 0 20px; }
.cv-section { padding: 64px 0; }
.cv-section--tint { background: var(--cv-surface); }
.cv-section--dark { background: var(--cv-dark); color: #f0ece7; }
.cv-section--dark h2, .cv-section--dark h3 { color: #ffffff; }
.cv-section--dark a { color: #e6c9a8; }

.cv-eyebrow {
	font-family: Montserrat, sans-serif; font-size: 11px; font-weight: 600;
	letter-spacing: 4px; text-transform: uppercase; color: var(--cv-accent);
	margin: 0 0 14px;
}
.cv-section--dark .cv-eyebrow { color: #c9a227; }
.cv-h2 { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 26px; letter-spacing: 3px; text-transform: uppercase; margin: 0 0 20px; }
.cv-h3 { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 17px; letter-spacing: 2px; text-transform: uppercase; margin: 0 0 12px; }
.cv-lead { font-size: 16px; line-height: 1.85; }
.cv-page p { line-height: 1.85; margin: 0 0 16px; }
.cv-center { text-align: center; }
.cv-measure { max-width: 780px; margin-left: auto; margin-right: auto; }
.cv-rule { width: 60px; height: 2px; background: var(--cv-accent); border: 0; margin: 0 0 24px; }
.cv-center .cv-rule { margin-left: auto; margin-right: auto; }

/* ---------- hero ---------- */

.cv-hero {
	position: relative; min-height: 480px; display: flex; align-items: center;
	background: #222 center/cover no-repeat; color: #fff; text-align: center;
}
.cv-hero--tall { min-height: 620px; }
.cv-hero::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.42) 45%, rgba(0,0,0,.68) 100%);
}
.cv-hero__inner { position: relative; z-index: 2; width: 100%; padding: 80px 20px; }
.cv-hero__eyebrow {
	font-family: Montserrat, sans-serif; font-size: 11px; font-weight: 600;
	letter-spacing: 5px; text-transform: uppercase; color: #e6c9a8; margin: 0 0 18px;
}
.cv-hero h1 {
	font-family: Montserrat, sans-serif; font-weight: 600; font-size: 40px;
	letter-spacing: 6px; text-transform: uppercase; color: #fff; margin: 0 0 18px; line-height: 1.25;
}
.cv-hero p { max-width: 700px; margin: 0 auto 28px; font-size: 16px; line-height: 1.9; color: #ece7e1; }
.cv-hero__actions { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 767px) {
	.cv-hero { min-height: 380px; }
	.cv-hero--tall { min-height: 440px; }
	.cv-hero h1 { font-size: 24px; letter-spacing: 3px; }
}

/* ---------- buttons ---------- */

.cv-btn {
	display: inline-block; font-family: Montserrat, sans-serif; font-weight: 600;
	font-size: 13px; letter-spacing: 2px; text-transform: uppercase;
	padding: 14px 28px; border: 1px solid var(--cv-accent); border-radius: var(--cv-radius);
	background: var(--cv-accent); color: #fff; cursor: pointer; text-decoration: none;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.cv-btn:hover { background: #6f1514; border-color: #6f1514; color: #fff; }
.cv-btn--solid { background: var(--cv-accent); border-color: var(--cv-accent); color: #fff; }
.cv-btn--solid:hover { background: #6f1514; border-color: #6f1514; color: #fff; }
.cv-btn--ghost { background: transparent; border-color: rgba(255,255,255,.7); color: #fff; }
.cv-btn--ghost:hover { background: #fff; border-color: #fff; color: var(--cv-ink); }
.cv-btn--outline { background: transparent; color: var(--cv-accent); }
.cv-btn--outline:hover { background: var(--cv-accent); color: #fff; }
.cv-btn--link { background: transparent; border-color: transparent; color: inherit; text-decoration: underline; padding: 14px 12px; }
.cv-btn--link:hover { background: transparent; border-color: transparent; color: var(--cv-accent); }

/* ---------- feature / card grids ---------- */

.cv-grid { display: grid; gap: 28px; }
.cv-grid--2 { grid-template-columns: repeat(2, 1fr); }
.cv-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cv-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1020px) { .cv-grid--3, .cv-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .cv-grid--2, .cv-grid--3, .cv-grid--4 { grid-template-columns: 1fr; } }

.cv-card { background: #fff; border: 1px solid var(--cv-line); display: flex; flex-direction: column; }
.cv-section--tint .cv-card { border-color: #ddd8d1; }
.cv-card__media { display: block; margin: 0; overflow: hidden; }
.cv-card__media img { display: block; width: 100%; height: 220px; object-fit: cover; transition: transform .5s ease; }
.cv-card:hover .cv-card__media img { transform: scale(1.04); }
.cv-card__body { padding: 24px; flex: 1; display: flex; flex-direction: column; }
.cv-card__body p { font-size: 14px; }
.cv-card__more {
	margin-top: auto; padding-top: 10px; font-family: Montserrat, sans-serif; font-weight: 600;
	font-size: 12px; letter-spacing: 2px; text-transform: uppercase; color: var(--cv-accent); text-decoration: none;
}
.cv-card__more:hover { text-decoration: underline; }

/* ---------- alternating amenity rows ---------- */

.cv-split { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.cv-split + .cv-split { margin-top: 64px; }
.cv-split--flip .cv-split__media { order: 2; }
.cv-split__media img { display: block; width: 100%; height: 100%; max-height: 420px; object-fit: cover; }
@media (max-width: 900px) {
	.cv-split { grid-template-columns: 1fr; gap: 26px; }
	.cv-split--flip .cv-split__media { order: 0; }
}

/* ---------- room cards ---------- */

.cv-room { background: #fff; border: 1px solid var(--cv-line); display: grid; grid-template-columns: 42% 58%; }
.cv-room + .cv-room { margin-top: 28px; }
.cv-room__media img { display: block; width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.cv-room__body { padding: 30px; }
.cv-room__price { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 1px; color: var(--cv-accent); margin: 0 0 14px; }
.cv-specs { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px 20px; }
.cv-specs li { font-size: 13px; line-height: 1.6; padding-left: 16px; position: relative; }
.cv-specs li::before { content: ""; position: absolute; left: 0; top: 9px; width: 6px; height: 1px; background: var(--cv-accent); }
@media (max-width: 900px) { .cv-room { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .cv-specs { grid-template-columns: 1fr; } }

/* ---------- statistics ---------- */

.cv-stats { display: grid; grid-template-columns: repeat(5, 1fr); gap: 20px; text-align: center; }
.cv-stat { padding: 0 6px; }
.cv-stat__num { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 34px; letter-spacing: 2px; color: #c9a227; display: block; }
.cv-stat__label { font-family: Montserrat, sans-serif; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #d6cfc6; margin-top: 8px; display: block; }
@media (max-width: 900px) { .cv-stats { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; } }

/* ---------- plain info lists ---------- */

.cv-deflist { margin: 0; }
.cv-deflist dt { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; margin-top: 18px; }
.cv-deflist dt:first-child { margin-top: 0; }
.cv-deflist dd { margin: 6px 0 0; line-height: 1.8; }

.cv-list { padding-left: 20px; }
.cv-list li { line-height: 1.9; margin-bottom: 8px; }

/* ---------- notice / helpline panel ---------- */

.cv-notice { border-left: 3px solid var(--cv-accent); background: #fff; padding: 24px 28px; }
.cv-section--dark .cv-notice { background: rgba(255,255,255,.05); border-left-color: #c9a227; }
.cv-notice p:last-child { margin-bottom: 0; }

/* ---------- form ---------- */

.cv-form { background: #fff; border: 1px solid var(--cv-line); padding: 34px; }
.cv-field { margin-bottom: 20px; }
.cv-field label { display: block; font-family: Montserrat, sans-serif; font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; margin-bottom: 8px; }
.cv-field input[type=text], .cv-field input[type=email], .cv-field input[type=tel],
.cv-field input[type=date], .cv-field input[type=number], .cv-field select, .cv-field textarea {
	width: 100%; padding: 12px 14px; border: 1px solid #cfcac3; background: #fff;
	font-family: Merriweather, Georgia, serif; font-size: 14px; color: var(--cv-ink); border-radius: var(--cv-radius);
}
.cv-field textarea { min-height: 130px; resize: vertical; }
.cv-field input:focus, .cv-field select:focus, .cv-field textarea:focus { outline: 2px solid var(--cv-accent); outline-offset: 1px; border-color: var(--cv-accent); }
.cv-form__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 20px; }
@media (max-width: 700px) { .cv-form__row { grid-template-columns: 1fr; } }
.cv-check { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; font-size: 13px; line-height: 1.7; }
.cv-check input { margin-top: 4px; flex: 0 0 auto; }
.cv-req { color: var(--cv-accent); }
.cv-error { display: none; color: var(--cv-accent); font-family: Montserrat, sans-serif; font-size: 11px; letter-spacing: 1px; margin-top: 6px; }
.cv-field.is-invalid .cv-error, .cv-check.is-invalid .cv-error { display: block; }
.cv-field.is-invalid input, .cv-field.is-invalid select, .cv-field.is-invalid textarea { border-color: var(--cv-accent); }
.cv-form__note { font-size: 12px; color: var(--cv-muted); margin-top: 16px; }
.cv-form__error { border-left: 3px solid var(--cv-accent); background: #fbf3f3; padding: 20px 24px; margin-bottom: 22px; }
.cv-form__error p { margin: 0; font-size: 14px; }
/* honeypot — вне экрана, но не display:none: боты пропускают скрытые поля */
.cv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ---------- contact panel ---------- */

.cv-contact-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 40px; align-items: start; }
@media (max-width: 900px) { .cv-contact-grid { grid-template-columns: 1fr; } }
.cv-map { width: 100%; height: 340px; border: 0; display: block; }

/* ---------- legal pages ---------- */

.cv-legal h2 { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 18px; letter-spacing: 2px; text-transform: uppercase; margin: 40px 0 14px; }
.cv-legal h3 { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 14px; letter-spacing: 1px; margin: 26px 0 10px; text-transform: none; }
.cv-legal table { width: 100%; border-collapse: collapse; margin: 18px 0; font-size: 14px; }
.cv-legal th, .cv-legal td { border: 1px solid var(--cv-line); padding: 10px 12px; text-align: left; vertical-align: top; }
.cv-legal th { background: var(--cv-surface); font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 1px; text-transform: uppercase; }
.cv-updated { font-size: 13px; color: var(--cv-muted); }

/* ---------- footer additions ---------- */

#footer-widgets .menu { list-style: none; margin: 0; padding: 0; }
#footer-widgets .menu li { margin-bottom: 10px; }
#footer-widgets .menu a { text-decoration: none; font-size: 14px; }
#footer-widgets .menu a:hover { text-decoration: underline; }
#footer-bottom .cv-disclaimer,
#footer-bottom .cv-helplines,
#footer-bottom .cv-legalline { margin: 0 0 10px; line-height: 1.8; font-size: 12.5px; }
#footer-bottom .cv-legalline { margin-bottom: 0; opacity: .85; }
#footer-bottom a { text-decoration: underline; }

/* ---------- age gate ---------- */

.cv-agegate { position: fixed; inset: 0; z-index: 100000; background: rgba(10,10,10,.94); display: flex; align-items: center; justify-content: center; padding: 20px; }
.cv-agegate[hidden] { display: none; }
.cv-agegate__panel { background: #fff; max-width: 560px; width: 100%; padding: 44px 40px; text-align: center; font-family: Merriweather, Georgia, serif; }
.cv-agegate__brand { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 15px; letter-spacing: 6px; text-transform: uppercase; color: var(--cv-accent); margin-bottom: 22px; }
.cv-agegate h2 { font-family: Montserrat, sans-serif; font-weight: 600; font-size: 20px; letter-spacing: 2px; text-transform: uppercase; margin: 0 0 16px; }
.cv-agegate p { line-height: 1.8; margin: 0 0 22px; font-size: 15px; }
.cv-agegate__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; margin-bottom: 20px; }
.cv-agegate__actions .cv-btn--ghost { border-color: #c7c1ba; color: var(--cv-ink); }
.cv-agegate__actions .cv-btn--ghost:hover { background: var(--cv-ink); border-color: var(--cv-ink); color: #fff; }
.cv-agegate__note { font-size: 12.5px; color: var(--cv-muted); margin: 0; }
.cv-agegate__denied { position: fixed; inset: 0; background: #0a0a0a; display: flex; align-items: center; justify-content: center; padding: 20px; }
.cv-agegate__denied[hidden] { display: none; }
@media (max-width: 560px) { .cv-agegate__panel { padding: 30px 22px; } }

/* ---------- cookie banner ---------- */

.cv-cookie { position: fixed; left: 0; right: 0; bottom: 0; z-index: 99000; background: #111; color: #eee; padding: 22px 20px; box-shadow: 0 -4px 24px rgba(0,0,0,.3); font-family: Merriweather, Georgia, serif; }
.cv-cookie[hidden] { display: none; }
.cv-cookie__inner { max-width: 1140px; margin: 0 auto; display: flex; gap: 28px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.cv-cookie__text { flex: 1 1 420px; }
.cv-cookie__text strong { font-family: Montserrat, sans-serif; font-size: 12px; letter-spacing: 2px; text-transform: uppercase; display: block; margin-bottom: 8px; }
.cv-cookie__text p { margin: 0; font-size: 13px; line-height: 1.75; color: #cfcac3; }
.cv-cookie__text a { color: #e6c9a8; }
.cv-cookie__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.cv-cookie .cv-btn { padding: 11px 20px; font-size: 12px; }
.cv-cookie .cv-btn--ghost { border-color: #6b6b6b; }
.cv-cookie .cv-btn--link { color: #cfcac3; }
.cv-cookie__settings { max-width: 1140px; margin: 20px auto 0; padding-top: 18px; border-top: 1px solid #2b2b2b; }
.cv-cookie__settings[hidden] { display: none; }
.cv-cookie__row { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 12px; font-size: 13px; line-height: 1.7; color: #cfcac3; }
.cv-cookie__row strong { color: #fff; }
