/*
 * Solis store style: Haven. Loaded only while this style is active.
 * Defines the --solis-* tokens for light and dark mode, then the
 * style-specific layout rules.
 */

:root {
    --solis-bg: #f6f4ef;
    --solis-surface: #ffffff;
    --solis-surface-2: #ece8df;
    --solis-text: #15212b;
    --solis-muted: #5c6670;
    --solis-border: #dfdad0;
    --solis-accent: #1f3a4d;
    --solis-on-accent: #ffffff;
    --solis-accent-soft: rgba(31, 58, 77, .08);
    --solis-chat: #1f3a4d;
    --solis-sale: #a5432f;
    --haven-brass: #a7834a;
    --haven-brass-ink: #7c5f2f;
    --solis-radius: 10px;
    --solis-radius-lg: 14px;
    --solis-btn-radius: 6px;
    --solis-slider-radius: 0;
    --solis-shadow: 0 18px 40px rgba(21, 33, 43, .12);
    --solis-font-head: "Cormorant Garamond", Georgia, serif;
    --solis-font-body: "Plus Jakarta Sans", system-ui, sans-serif;
    --solis-font-size: 15px;
    --solis-container: 1280px;
    --solis-card-pad: 0;
    --solis-product-ratio: 4 / 3;
    --solis-slide-min-h: clamp(460px, 48vw, 640px);

    /* Hero slides sit on photos under a dark wash, so they stay dark in both modes. */
    --solis-tone-1: linear-gradient(120deg, #1f3a4d 0%, #2c4d63 100%);
    --solis-tone-2: linear-gradient(120deg, #3a2f24 0%, #5a4732 100%);
    --solis-tone-3: linear-gradient(120deg, #18232c 0%, #283945 100%);
    --solis-tone-4: #1f3a4d;
    --solis-slide-text: #ffffff;
    --solis-slide-muted: rgba(255, 255, 255, .8);
    --solis-art-bg: rgba(255, 255, 255, .08);
    --solis-announce-bg: #15212b;
    --solis-announce-text: #e9dcc4;
    --solis-loop-btn-bg: transparent;
    --solis-loop-btn-border: var(--solis-border);
    --solis-loop-btn-text: var(--solis-text);
}

html[data-theme="dark"] {
    --solis-bg: #0e1418;
    --solis-surface: #151d23;
    --solis-surface-2: #1c262d;
    --solis-text: #eef1f2;
    --solis-muted: #9aa6ae;
    --solis-border: #2a353d;
    --solis-accent: #d6b77f;
    --solis-on-accent: #15212b;
    --solis-accent-soft: rgba(214, 183, 127, .12);
    --solis-chat: #2c4d63;
    --solis-sale: #e08f7a;
    --haven-brass: #d6b77f;
    --haven-brass-ink: #d6b77f;
    --solis-shadow: 0 18px 40px rgba(0, 0, 0, .5);
    --solis-announce-bg: #070b0e;
}

/* Type: a refined serif for headings, a clean sans for everything else */
h1, h2, h3, .solis-section-title, .solis-slide-title { font-weight: 600; letter-spacing: -.01em; }
.solis-section-title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.02; }
.solis-eyebrow { color: var(--haven-brass-ink); letter-spacing: .2em; font-weight: 600; font-size: .72rem; }

/* Header */
.solis-site-title { font-size: 1.7rem; font-weight: 700; letter-spacing: .01em; }
.solis-brand-mark { background: var(--solis-accent); color: var(--solis-on-accent); border-radius: 50%; }
.solis-header .solis-nav a { font-weight: 500; letter-spacing: .02em; }
.solis-announcement { letter-spacing: .04em; }

/* Hero: full-bleed photo under a dark wash */
.solis-slide-content { max-width: 640px; }
.solis-slide-eyebrow { color: #e9d2a6; letter-spacing: .22em; }
.solis-slide-title { font-size: clamp(2.8rem, 6.5vw, 5.2rem); line-height: .98; }
.solis-slide .solis-button { background: #ffffff; border-color: #ffffff; color: #15212b; }
.solis-slide .solis-button:hover { background: #e9d2a6; border-color: #e9d2a6; }
.solis-slide.has-image .solis-slide-media { grid-column: 1 / -1; position: absolute; inset: 0; }
.solis-slide.has-image .solis-slide-media::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg, rgba(10, 18, 24, .86) 0%, rgba(10, 18, 24, .62) 45%, rgba(10, 18, 24, .1) 78%);
}
.solis-slide.has-image .solis-slide-content { position: relative; z-index: 1; padding-bottom: 110px; }
.solis-art-item { color: #e9d2a6; border: 1px solid rgba(255, 255, 255, .16); }
.solis-slider .solis-slider-controls { bottom: 96px; }
.solis-slider .solis-slider-btn { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .3); color: #fff; }
.solis-slider .solis-slider-dot { background: #fff; }
@media (max-width: 800px) {
    .solis-slide.has-image { grid-template-rows: 1fr; }
    .solis-slide.has-image .solis-slide-content { grid-row: 1; align-self: end; padding-top: 200px; padding-bottom: 110px; }
    .solis-slide.has-image .solis-slide-media { height: auto; max-height: none; }
    .solis-slide.has-image .solis-slide-media::after { background: linear-gradient(180deg, rgba(10, 18, 24, .2) 0%, rgba(10, 18, 24, .9) 60%); }
    .solis-slider .solis-slider-controls { bottom: 60px; }
}

/* Property search panel, overlapping the bottom of the hero */
.haven-search-wrap { position: relative; z-index: 2; margin-top: -72px; }
.haven-search {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 14px 16px;
    padding: 22px 24px 24px;
    background: var(--solis-surface);
    border: 1px solid var(--solis-border);
    border-radius: var(--solis-radius-lg);
    box-shadow: var(--solis-shadow);
}
.haven-search-title { flex: 0 0 100%; margin: 0; font-size: 1.5rem; }
.haven-field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 170px; min-width: 0; }
.haven-field--grow { flex: 2 1 260px; }
.haven-field > span:first-child { font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--solis-muted); }
.haven-input { position: relative; display: flex; align-items: center; }
.haven-input .solis-icon { position: absolute; left: 12px; width: 18px; height: 18px; color: var(--haven-brass-ink); pointer-events: none; }
.haven-search input[type="search"],
.haven-search select {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    font: inherit;
    color: var(--solis-text);
    background: var(--solis-bg);
    border: 1px solid var(--solis-border);
    border-radius: var(--solis-btn-radius);
}
.haven-search input[type="search"] { padding-left: 38px; }
.haven-search input:focus-visible,
.haven-search select:focus-visible { outline: 2px solid var(--solis-accent); outline-offset: 1px; }
.haven-search-btn { height: 48px; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding-inline: 26px; }
.haven-search-btn .solis-icon { width: 18px; height: 18px; }
@media (max-width: 800px) {
    .haven-search-wrap { margin-top: -40px; }
    .haven-search { padding: 18px; }
    .haven-search-btn { flex: 1 1 100%; justify-content: center; }
}

/* Property types: horizontal icon cards */
.solis-cats--homes { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
.solis-cats--homes .solis-cat a {
    padding: 22px 14px 18px;
    border-radius: var(--solis-radius);
    background: var(--solis-surface);
}
.solis-cats--homes .solis-cat-media { width: 56px; border-radius: 50%; background: var(--solis-accent-soft); color: var(--solis-accent); }
.solis-cats--homes .solis-cat-media .solis-icon { width: 26px; height: 26px; }
.solis-cats--homes .solis-cat a:hover .solis-cat-media { background: var(--solis-accent); color: var(--solis-on-accent); }
.solis-cats--homes .solis-cat-label { font-weight: 600; }
@media (max-width: 1000px) { .solis-cats--homes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 520px) { .solis-cats--homes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } }

/* Listing cards: landscape photo, details panel below */
.woocommerce ul.products li.product {
    overflow: hidden;
    background: var(--solis-surface);
    border: 1px solid var(--solis-border);
    border-radius: var(--solis-radius-lg);
    padding-bottom: 18px;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--solis-shadow); }
.woocommerce ul.products li.product a img { margin-bottom: 16px; border-radius: 0; transition: transform .4s ease; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.03); }
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .price,
.woocommerce ul.products li.product .star-rating { margin-inline: 18px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: var(--solis-font-head); font-size: 1.45rem; font-weight: 600; line-height: 1.15; }
.woocommerce ul.products li.product .price { display: block; font-size: 1.05rem; font-weight: 700; color: var(--solis-accent); }
.woocommerce ul.products li.product .solis-facts { margin: 12px 18px 0; padding: 12px 0 0; border-top: 1px solid var(--solis-border); justify-content: space-between; }
.woocommerce ul.products li.product .solis-fact .solis-icon { color: var(--haven-brass-ink); }
.woocommerce ul.products li.product .button { margin: 14px 18px 0; width: calc(100% - 36px); }
.woocommerce span.onsale { background: var(--solis-sale); border-radius: 4px; font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce ul.products li.product .onsale { top: 14px; left: 14px; }
@media (max-width: 640px) {
    /* Listing cards need the full width on phones; matches the specificity of the base 2-column rule. */
    .woocommerce ul.products:not(.columns-1):not(.columns-2) { --cols: 1; }
}

/* Stats band */
.haven-stats { background: var(--solis-accent); color: var(--solis-on-accent); }
.haven-stat-list { list-style: none; margin: 0 auto; padding-block: clamp(30px, 4vw, 48px); display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; text-align: center; }
.haven-stat-list li { display: flex; flex-direction: column; gap: 4px; }
.haven-stat-list li + li { border-left: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
.haven-stat-list strong { font-family: var(--solis-font-head); font-size: clamp(2.4rem, 5vw, 3.6rem); font-weight: 600; line-height: 1; }
.haven-stat-list span { font-size: .8rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; opacity: .8; }
@media (max-width: 640px) {
    .haven-stat-list { grid-template-columns: 1fr; gap: 18px; }
    .haven-stat-list li + li { border-left: 0; border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent); padding-top: 18px; }
}

/* Valuation band */
.haven-value { background: var(--solis-surface-2); }
.haven-lead { margin: 14px 0 24px; color: var(--solis-muted); font-size: 1.08rem; max-width: 44ch; }
.haven-value-chat { background: var(--solis-accent); border-color: var(--solis-accent); color: var(--solis-on-accent); font-weight: 600; }
.haven-value-chat:hover { background: var(--solis-accent); filter: brightness(1.12); }
.haven-value .solis-perks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.haven-value .solis-perk { padding: 20px; background: var(--solis-surface); border: 1px solid var(--solis-border); border-radius: var(--solis-radius); }
.haven-value .solis-perk-icon { border-radius: 50%; background: var(--solis-accent-soft); color: var(--haven-brass-ink); }
@media (max-width: 520px) { .haven-value .solis-perks { grid-template-columns: 1fr; } }

.solis-footer .solis-brand-mark { background: var(--haven-brass); color: #15212b; }
