/*
 * Breydon Digital: estuary identity layer.
 * Loaded after every page's own stylesheets. Palette, display type and the
 * tide-line motifs live here; layout stays in style.css / home.css.
 */
:root {
    --bd-deep: #06181c;      /* deep water: midnight background, footer */
    --bd-ink: #0e2a30;       /* headings, wordmark */
    --bd-tide: #0e7268;      /* primary: buttons, links, wordmark tag */
    --bd-tide-light: #4fb0a2;
    --bd-shallows: #e7f3f0;  /* light tints */
    --bd-sunset: #e8875a;    /* accent glow */
    --bd-sunset-ink: #b4532a;/* accent text on light backgrounds (AA) */
    --bd-reed: #d9a441;      /* secondary accent */
    --bd-display: 'Breydon Display', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --bd-tide-lines: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 120' preserveAspectRatio='none'><g fill='none' stroke='black' stroke-width='1.5' vector-effect='non-scaling-stroke'><path vector-effect='non-scaling-stroke' d='M0 62C180 32 360 92 540 62S900 32 1080 62S1360 87 1440 67'/><path vector-effect='non-scaling-stroke' d='M0 86C200 60 380 110 600 86S960 60 1160 86S1380 102 1440 90'/><path vector-effect='non-scaling-stroke' d='M0 104C220 88 420 120 660 104S1020 88 1240 104S1400 112 1440 108'/></g></svg>");
    --bd-wave-mark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 10'><path d='M1 6c2.5-4 5-4 7.5 0s5 4 7.5 0 5-4 7 0' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/></svg>");
    --bd-crest: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 32' preserveAspectRatio='none'><path d='M0 18C160 4 320 4 480 16S800 30 960 18S1280 2 1440 14V32H0Z'/></svg>");
}

::selection {
    background: #f6d2bf;
    color: var(--bd-ink);
}

/* Display type: Instrument Sans (OFL) for logo and headings, system font for body. */
h1,
h2,
h3,
.footer-brand {
    font-family: var(--bd-display);
}
h1 {
    font-weight: 600;
    letter-spacing: -0.025em;
}
h2 {
    font-weight: 600;
    letter-spacing: -0.02em;
}
h3 {
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* Wordmark */
.site-wordmark {
    color: var(--bd-ink);
    letter-spacing: -0.035em;
}
.site-wordmark em {
    background: var(--bd-tide);
    letter-spacing: -0.02em;
}
body.theme-midnight .site-wordmark {
    color: #eaf4f2;
}
body.theme-midnight .site-wordmark em {
    background: #1d9384;
}

/* Eyebrow labels: sunset ink with a small wave mark. */
.eyebrow {
    color: var(--bd-sunset-ink);
}
body.theme-midnight .eyebrow {
    color: #f2a582;
}
.niche-hero-copy .eyebrow::before,
.included-layout .eyebrow::before,
.contact-section .eyebrow::before {
    content: '';
    display: inline-block;
    width: 22px;
    height: 9px;
    margin-right: 8px;
    vertical-align: -1px;
    background: currentColor;
    -webkit-mask: var(--bd-wave-mark) center / contain no-repeat;
    mask: var(--bd-wave-mark) center / contain no-repeat;
}
body.home-page .niche-hero .eyebrow,
.included-intro .eyebrow {
    color: var(--bd-sunset-ink);
}
body.home-page.theme-midnight .niche-hero .eyebrow,
body.theme-midnight .included-intro .eyebrow {
    color: #f2a582;
}
.work-info .eyebrow {
    color: var(--muted, #526176);
}

/* Outgoing chat bubbles: keep white text on the tide background. */
body .pv-bubble.pv-out,
body.home-page .care-chat p.pv-bubble.pv-out {
    color: #fff;
}

/* Hero: tide lines drifting across the bottom, coloured teal into sunset. */
.hero.niche-hero {
    position: relative;
    isolation: isolate;
}
.hero.niche-hero::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 120px;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(90deg, var(--bd-tide) 0%, var(--bd-tide-light) 40%, var(--bd-sunset) 75%, var(--bd-reed) 100%);
    opacity: 0.35;
    -webkit-mask: var(--bd-tide-lines) bottom / 100% 100% no-repeat;
    mask: var(--bd-tide-lines) bottom / 100% 100% no-repeat;
}
body.theme-midnight .hero.niche-hero::after {
    opacity: 0.5;
}

/* Footer: deep water with a wave crest. */
footer,
body.home-page footer {
    position: relative;
    background: var(--bd-deep);
    color: #9fbcb6;
    border-top: 0;
    margin-top: 0;
}
footer::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: -31px;
    height: 32px;
    background: var(--bd-deep);
    pointer-events: none;
    -webkit-mask: var(--bd-crest) top / 100% 100% no-repeat;
    mask: var(--bd-crest) top / 100% 100% no-repeat;
}
footer a,
footer p,
body.home-page footer a,
body.home-page footer p {
    color: #9fbcb6;
}
footer a:hover,
body.home-page footer a:hover {
    color: #ffffff;
}
footer .footer-brand,
body.home-page footer .footer-brand {
    color: #eaf4f2;
    font-weight: 700;
}
body.theme-midnight footer {
    background: #031114;
}
body.theme-midnight footer::before {
    background: #031114;
}

.eyebrow .nowrap {
    white-space: nowrap;
}

/* Christmas offer (XMAS15): brand colours instead of Christmas red. */
.seasonal-offer {
    background: linear-gradient(110deg, #0a2a2e, #0f3c3d 55%, #0a2a2e);
    border-bottom: 1px solid rgba(232, 135, 90, 0.5);
    color: #eaf4f2;
}
.seasonal-offer:hover,
body.theme-midnight .seasonal-offer:hover {
    background: #0e3638;
}
.seasonal-offer-icon,
.seasonal-offer-label {
    color: #f2a582;
}
.seasonal-offer-code strong {
    border-color: rgba(217, 164, 65, 0.6);
    background: rgba(217, 164, 65, 0.1);
    color: #f3cf86;
}
.christmas-plan-offer {
    border-color: #efd5c5;
    border-left-color: var(--bd-sunset-ink);
    background: #fdf5ef;
    color: #4a2a1c;
}
.christmas-plan-offer .christmas-offer-title,
.christmas-offer-terms summary {
    color: var(--bd-sunset-ink);
}
.christmas-plan-offer .christmas-offer-voucher {
    border-color: #e6b89d;
    background: #fae6da;
    color: #8f3d1c;
}
.christmas-offer-terms {
    border-top-color: #efd5c5;
}
.plan-offer-line {
    background: #fbeadf;
    color: #8f3d1c;
}
body.theme-midnight .christmas-plan-offer {
    background: #2a1c16;
    border-color: #5c3a2b;
    border-left-color: var(--bd-sunset);
    color: #f6e3d8;
}
body.theme-midnight .christmas-plan-offer .christmas-offer-title,
body.theme-midnight .christmas-offer-terms summary {
    color: #f2a582;
}
body.theme-midnight .christmas-plan-offer .christmas-offer-voucher {
    background: #3d2619;
    border-color: #8a5a40;
    color: #f3cf86;
}
body.theme-midnight .christmas-offer-terms {
    border-top-color: #5c3a2b;
}
body.theme-midnight .plan-offer-line {
    background: #3d2619;
    color: #f6c9ae;
}

/* After the offer ends (set by the head script), hide every mention of it. */
html.seasonal-offer-expired .seasonal-offer,
html.seasonal-offer-expired .christmas-plan-offer,
html.seasonal-offer-expired .plan-offer-line,
html.seasonal-offer-expired .xmas-note {
    display: none;
}

/* Header "Let's talk" is a link on some pages: no underline. */
a.btn-start,
a.btn-start:hover {
    text-decoration: none;
}

/* Form success messages take focus so screen readers announce them; no ring needed. */
.form-success:focus {
    outline: none;
}

/* Plain text links inside page content use the brand colour. */
main a:not([class]) {
    color: var(--bd-tide);
    text-underline-offset: 3px;
}
main a:not([class]):hover {
    color: var(--bd-ink);
}
body.theme-midnight main a:not([class]) {
    color: #6fbcae;
}
body.theme-midnight main a:not([class]):hover {
    color: #eaf4f2;
}

/* Contact pop-up: deep-water background on pages using the dark version. */
.modal-content {
    background: #0a2024;
}

/* Sent confirmation on the white pop-up (home, pricing, niche and Booking Office pages). */
body.home-page:not(.theme-midnight) .form-success strong {
    color: var(--bd-ink);
}
body.home-page:not(.theme-midnight) .form-success > span:not(.success-icon) {
    color: #526176;
}
body.home-page:not(.theme-midnight) .success-icon {
    border-color: #b3ddd5;
    background: var(--bd-shallows);
    color: var(--bd-tide);
}
body.home-page:not(.theme-midnight) .success-close {
    border-color: #c6d6d2;
    color: var(--bd-ink);
}
body.home-page:not(.theme-midnight) .success-close:hover {
    border-color: var(--bd-tide);
    background: var(--bd-shallows);
}
.modal-content.submission-complete .whatsapp-alternative {
    display: none;
}

/* Thanks page: short confirmation with a way back. */
.thank-you-card .thank-you-actions {
    margin-top: 24px;
}
.thank-you-card .btn-primary {
    display: inline-flex;
    text-decoration: none;
}
