/*
 * What a visitor sees.
 *
 * The conversational capture, the offer claim form, the plugin's fallback
 * single templates, event signup and the rentals diary. Everything here is
 * drawn on a public page, so it speaks --cs-* and stays above 16px.
 *
 * Captured from the culc_*_styles() functions that used to print this
 * mid-body, by running them: they emitted four different ways and a
 * regex over the source got two of them wrong.
 *
 * Each block still names the file it came from. Edit it here; editing it
 * there does nothing now.
 */

/* --- culc_public_styles() --- */
/* A reading column, said the way the canvas says it. This was a flat 820px,
       a third opinion on width beside the canvas container and its own prose
       measure; at this type size 74ch lands in the same place and tracks the
       font if a canvas sets a different one. Capped by the container so it can
       never be wider than the site it is inside. */
    .culc-pub{max-width:min(74ch, var(--cs-max,1280px));margin:0 auto;padding:48px 22px 72px;
      font-size:17px;line-height:1.65}
    /* An index is not prose. The 74ch above is a reading measure, right for one
       listing and wrong for a list of them: at 1280 it squeezed ten properties
       and their photos into 775px while the site around them ran to 1180.
       An index takes the width of the site it is sitting in, so it lines up
       with the header above it rather than announcing a width of its own. A
       theme says how wide it runs with --culc-index-max (see the B&V theme,
       which points it at the same value its own container uses); a canvas that
       says nothing falls back to --cs-max, as before. */
    .culc-pub-index{max-width:var(--culc-index-max, var(--cs-max, 1280px))}
    .culc-pub-head{margin:0 0 28px}
    .culc-pub-kind{margin:0 0 8px;font-size:16px;font-weight:700;letter-spacing:.12em;
      text-transform:uppercase;opacity:.6}
    .culc-pub h1{margin:0;font-size:clamp(30px,4.5vw,42px);line-height:1.12;
      letter-spacing:-.015em;text-wrap:balance}
    .culc-pub-facts{display:flex;flex-wrap:wrap;gap:12px 28px;margin:20px 0 0;padding:0}
    .culc-pub-facts div{margin:0}
    .culc-pub-facts dt{margin:0;font-size:16px;font-weight:700;letter-spacing:.09em;
      text-transform:uppercase;opacity:.55}
    .culc-pub-facts dd{margin:2px 0 0;font-size:17px;font-weight:600}
    .culc-pub-shot{margin:0 0 28px}
    .culc-pub-shot img{width:100%;height:auto;display:block;border-radius:10px}
    .culc-pub-body{margin:0 0 8px}
    .culc-pub-body > :first-child{margin-top:0}
    .culc-pub-none{opacity:.7}
    .culc-pub-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:26px}
    .culc-pub-list li{display:grid;grid-template-columns:180px 1fr;gap:22px;align-items:start}
    .culc-pub-list li:only-child,.culc-pub-list li:not(:has(.culc-pub-thumb)){grid-template-columns:1fr}
    .culc-pub-thumb img{width:100%;height:auto;display:block;border-radius:8px}
    .culc-pub-list h2{margin:0 0 6px;font-size:23px;line-height:1.2}
    .culc-pub-list h2 a{text-decoration:none;color:inherit}
    .culc-pub-list h2 a:hover{text-decoration:underline}
    .culc-pub-line{margin:0 0 6px;font-size:16px;font-weight:600;opacity:.7}
    .culc-pub-ex{margin:0;opacity:.8}
    @media (max-width:640px){ .culc-pub-list li{grid-template-columns:1fr} }

/* --- culc_chat_styles() --- */
/* A display rule beats the hidden attribute, and every bubble in here
       starts hidden, so this has to win. */
    .culc-chat [hidden] { display: none !important; }

    /* Progressive hiding only switches on once a script has claimed the box,
       so a browser running none shows every step and the form posts the lot. */
    .culc-chat.is-js [data-progressive-hidden] { display: none; }

    .culc-chat { --culc-chat-you: var(--cs-ink,#14161a); }
    .culc-chat-log { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; gap: 10px; }

    .culc-chat-b {
        max-width: 32rem;
        padding: 13px 18px;
        font-size: 17px;
        line-height: 1.5;
        border-radius: 18px;
    }
    .culc-chat-b.is-them {
        align-self: flex-start;
        border-bottom-left-radius: 5px;
        background: var(--cs-paper,#ffffff);
        border: 1px solid var(--cs-line, rgba(0,0,0,.12));
        color: var(--cs-ink,#14161a);
    }
    .culc-chat-b.is-you {
        align-self: flex-end;
        border-bottom-right-radius: 5px;
        background: var(--culc-chat-you);
        color: var(--cs-paper,#ffffff);
        text-align: right;
    }

    /* Each bubble arrives rather than appearing, because the log is read in
       the order things were said. */
    @keyframes culc-chat-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
    .culc-chat-b { animation: culc-chat-in .22s ease-out both; }
    @media (prefers-reduced-motion: reduce) { .culc-chat-b { animation: none; } }

    .culc-chat-typing { display: flex; gap: 5px; align-items: center; padding: 16px 18px; }
    .culc-chat-typing span {
        width: 7px; height: 7px; border-radius: 50%;
        background: var(--cs-ink-soft,#565b64);
        animation: culc-chat-dot 1.1s infinite ease-in-out;
    }
    .culc-chat-typing span:nth-child(2) { animation-delay: .16s; }
    .culc-chat-typing span:nth-child(3) { animation-delay: .32s; }
    @keyframes culc-chat-dot { 0%, 60%, 100% { opacity: .25; } 30% { opacity: 1; } }
    @media (prefers-reduced-motion: reduce) { .culc-chat-typing span { animation: none; opacity: .5; } }

    /* The composer. One row that looks like somewhere to write, not a field
       set. It sits below the log the way a message box always does. */
    .culc-chat-compose { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; margin: 0; }
    .culc-chat-compose input,
    .culc-chat-compose textarea {
        flex: 1 1 13rem; min-width: 0; font: inherit; font-size: 17px;
        padding: 14px 18px;
        border: 1px solid var(--cs-line, rgba(0,0,0,.18));
        border-radius: 999px;
        background: var(--cs-paper,#ffffff);
        color: var(--cs-ink,#14161a);
    }
    .culc-chat-compose textarea { border-radius: 20px; resize: vertical; }
    /* A message opener is the one thing somebody has to think about before
       they type, so it gets the width and the send sits under it. */
    .culc-chat-compose.is-open { align-items: flex-end; }
    .culc-chat-compose.is-open textarea { flex: 1 1 100%; min-height: 5.5rem; }
    .culc-chat-compose input:focus-visible,
    .culc-chat-compose textarea:focus-visible { outline: 2px solid var(--cs-accent,#2f4bf0); outline-offset: 1px; }
    .culc-chat-compose button {
        font: inherit; font-size: 17px; font-weight: 700; cursor: pointer;
        padding: 14px 26px; border: 0; border-radius: 999px;
        background: var(--cs-accent,#2f4bf0); color: #fff;
    }
    .culc-chat-compose button:hover { filter: brightness(1.1); }
    .culc-chat-compose button[disabled] { opacity: .55; cursor: default; }

    /* Step two asks for more than one thing, so it wraps to its own block and
       the send sits under it rather than squeezing everything onto one line. */
    .culc-chat-compose.is-multi { flex-direction: column; align-items: stretch; }
    .culc-chat-fields { display: flex; gap: 10px; flex-wrap: wrap; }
    .culc-chat-fields > * { flex: 1 1 12rem; }
    .culc-chat-compose.is-multi button { align-self: flex-start; }

    /* An ask is one question, so it is one row: the box, Send, and a Skip that
       is visibly the lesser of the two without being hard to find. Nothing
       after the first answer is required, and the way to say that in a
       conversation is to offer the way out next to the way on. */
    .culc-chat-ask { margin: 0; }
    .culc-chat-ask + .culc-chat-ask { margin-top: 10px; }
    .culc-chat-skip {
        background: transparent !important;
        color: var(--cs-ink-soft,#565b64) !important;
        font-weight: 600 !important;
        padding: 14px 14px !important;
        text-decoration: underline;
    }
    .culc-chat-skip:hover { filter: none; color: var(--cs-ink,#14161a) !important; }

    .culc-chat-fine { margin: 10px 0 0; font-size: 16px; opacity: .7; }
    .culc-chat-err { margin: 10px 0 0; font-size: 16px; color: #b3261e; }
    .culc-chat-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* --- culc_offer_claim_form_styles() --- */
.cul-claim-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:clamp(20px,3vw,28px);margin:0 0 18px;max-width:560px;color:inherit}
    .cul-claim-heading{margin:0 0 6px;font-size:26px;line-height:1.2}
    .cul-claim-sub{margin:0 0 16px;font-size:16px;opacity:.86}
    .cul-claim-error{background:rgba(214,54,70,.15);border:1px solid rgba(214,54,70,.6);padding:10px 14px;border-radius:10px;margin:0 0 12px;font-size:16px}
    .cul-claim-fields{display:grid;grid-template-columns:1fr;gap:10px}
    .cul-claim-form input[name="claim_name"]{animation:culClaimReveal .22s ease}
    @keyframes culClaimReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
    .cul-claim-form input[type=email],.cul-claim-form input[type=text]{width:100%;padding:14px 16px;font-size:16px;line-height:1.2;border-radius:10px;border:1px solid rgba(0,0,0,.15);background:#fff;color:var(--cs-ink,#14161a)}
    .cul-claim-form input[type=email]:focus,.cul-claim-form input[type=text]:focus{outline:2px solid var(--cs-accent,#2f4bf0);outline-offset:2px}
    .cul-claim-submit{background:var(--cs-accent,#2f4bf0);color:#fff;border:0;cursor:pointer;padding:14px 22px;border-radius:10px;font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;transition:filter .15s,transform .15s;white-space:nowrap}
    .cul-claim-submit:hover{filter:brightness(.92);transform:translateY(-1px)}
    .cul-claim-fineprint{font-size:16px;opacity:.7;margin:12px 0 0;line-height:1.5}
    .cul-claim-success{text-align:left}
    .cul-claim-eyebrow{font-family:var(--cs-display,inherit);text-transform:uppercase;letter-spacing:.18em;font-size:16px;font-weight:700;color:var(--cs-accent,#2f4bf0);margin:0 0 8px}
    .cul-claim-success-title{margin:0 0 8px;font-size:28px;line-height:1.15}
    .cul-claim-success-body{margin:0;opacity:.86}

/* --- culc_event_signup_styles() --- */
.culc-evt-signup{border:1px solid var(--cs-line,#e2e0db);border-radius:var(--cs-radius-lg,24px);background:var(--cs-surface,#f5f4f1);padding:24px}.culc-evt-signup-title{font-size:1.35rem;margin:0 0 14px}.culc-evt-signup [hidden]{display:none}.culc-evt-signup-swap{margin:16px 0 0}.culc-evt-signup-swap-btn{background:none;border:0;padding:0;font:inherit;font-size:16px;color:var(--cs-ink-soft,#565b64);text-decoration:underline;cursor:pointer;text-align:left}.culc-evt-signup-swap-btn:hover{color:var(--cs-ink,#14161a)}

/* --- culc_bookings_calendar_styles() --- */
.culc-cal-heading{margin:0 0 8px}.culc-cal-sub{margin:0 0 20px;color:var(--cs-ink-soft,#565b64)}.culc-cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.culc-cal-title{font-weight:700;font-size:19px}.culc-cal-nav{background:none;border:1px solid var(--cs-line,#e2e0db);border-radius:8px;width:40px;height:40px;font-size:22px;line-height:1;cursor:pointer;color:inherit}.culc-cal-nav:hover:not([disabled]){border-color:var(--cs-accent,#2f4bf0);color:var(--cs-accent,#2f4bf0)}.culc-cal-nav[disabled]{opacity:.3;cursor:default}.culc-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.culc-cal-dow{font-size:16px;font-weight:700;text-align:center;padding:4px 0;color:var(--cs-ink-soft,#565b64);letter-spacing:.06em;text-transform:uppercase}.culc-cal-pad{aspect-ratio:1}.culc-cal-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:8px;font:inherit;font-size:17px;font-weight:600;border:1px solid transparent}button.culc-cal-day{cursor:pointer}.culc-cal-day.is-open{background:var(--cs-paper,#ffffff);border-color:var(--cs-line,#e2e0db);color:inherit}.culc-cal-day.is-open:hover,.culc-cal-day.is-open:focus-visible{background:var(--cs-accent,#2f4bf0);border-color:var(--cs-accent,#2f4bf0);color:#fff}.culc-cal-day.is-open.is-picked{background:var(--cs-accent,#2f4bf0);border-color:var(--cs-accent,#2f4bf0);color:#fff}.culc-cal-day.is-taken{background:rgba(0,0,0,.05);color:rgba(0,0,0,.35);text-decoration:line-through;text-decoration-thickness:1px}.culc-cal-day.is-past{color:rgba(0,0,0,.2)}.culc-cal-key{display:flex;gap:20px;margin:16px 0 0;font-size:16px;color:var(--cs-ink-soft,#565b64)}.culc-cal-key-item{display:inline-flex;align-items:center;gap:7px}.culc-cal-key i{width:14px;height:14px;border-radius:4px;display:inline-block}.culc-cal-key i.is-open{background:var(--cs-paper,#ffffff);border:1px solid var(--cs-line,#e2e0db)}.culc-cal-key i.is-taken{background:rgba(0,0,0,.12)}.culc-cal-form{margin-top:24px;padding-top:22px;border-top:1px solid var(--cs-line,#e2e0db)}.culc-cal-form[hidden]{display:none}.culc-cal-picked{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin:0 0 16px;font-size:18px}.culc-cal-change{background:none;border:0;padding:0;font:inherit;font-size:16px;text-decoration:underline;cursor:pointer;color:var(--cs-ink-soft,#565b64)}.culc-cal-change:hover{color:var(--cs-ink,#14161a)}


/* Booking: the picker (includes/modules/appointments.php, assets/booking.js).
   A summary rail beside the step in hand; on a phone the rail sits above it.
   Everything takes the canvas's own colours, so it looks like the site it is on. */
.culc-bk{--bk-accent:var(--cs-accent,#1b4d7a);--bk-line:var(--cs-line,#e2e7ec);--bk-soft:var(--cs-ink-soft,#5c6875);--bk-surface:var(--cs-surface,#f4f6f8);--bk-paper:var(--cs-paper,#fff);--bk-radius:var(--cs-radius,8px)}
.culc-bk-wrap{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:36px;align-items:start}
@media (max-width:860px){.culc-bk-wrap{grid-template-columns:minmax(0,1fr);gap:22px}}
.culc-bk-rail{background:var(--bk-surface);border-radius:var(--bk-radius);padding:22px}
.culc-bk-rail h2{font-size:20px;margin:0 0 14px}
.culc-bk-rail dl{margin:0;display:flex;flex-direction:column;gap:14px}
.culc-bk-row{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-top:1px solid var(--bk-line);padding-top:14px}
.culc-bk-row dt{font-size:16px;color:var(--bk-soft)}
.culc-bk-row dd{margin:2px 0 0;font-weight:700;font-size:18px}
.culc-bk-row dd.is-empty{font-weight:400;color:var(--bk-soft)}
.culc-bk-zone{font-size:16px;color:var(--bk-soft);margin:16px 0 0}
.culc-bk-step{display:flex;flex-direction:column;gap:22px;min-width:0}
.culc-bk-step h2{font-size:clamp(26px,3.4vw,34px);margin:0}
.culc-bk-step h2:focus{outline:none}
.culc-bk-step h2.is-big{font-size:clamp(34px,5vw,48px)}
.culc-bk-step h3{font-size:22px;margin:0}
.culc-bk-sub{color:var(--bk-soft);margin:6px 0 0}
.culc-bk-kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.culc-bk-kind{text-align:left;font:inherit;color:inherit;text-decoration:none;cursor:pointer;background:var(--bk-paper);border:2px solid var(--bk-line);border-radius:var(--bk-radius);padding:20px;display:flex;flex-direction:column;gap:8px}
.culc-bk-kind:hover,.culc-bk-kind:focus-visible{border-color:var(--bk-accent)}
.culc-bk-kind strong{font-family:var(--cs-display,inherit);font-size:21px;line-height:1.2}
.culc-bk-mins{font-size:16px;font-weight:700;color:var(--bk-accent)}
.culc-bk-blurb{font-size:17px;color:var(--bk-soft)}
.culc-bk-when{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
@media (max-width:1080px){.culc-bk-when{grid-template-columns:minmax(0,1fr)}}
.culc-bk-calhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px}
.culc-bk-calhead strong{font-family:var(--cs-display,inherit);font-size:22px}
.culc-bk-calhead button{width:48px;height:48px;border:2px solid var(--bk-line);background:var(--bk-paper);border-radius:var(--bk-radius);font:inherit;font-size:22px;font-weight:700;color:inherit;cursor:pointer}
.culc-bk-calhead button[disabled]{opacity:.35;cursor:not-allowed}
.culc-bk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.culc-bk-dow{text-align:center;font-size:16px;color:var(--bk-soft);padding-bottom:4px}
.culc-bk-day{aspect-ratio:1;min-height:44px;border:2px solid transparent;border-radius:var(--bk-radius);font:inherit;font-size:18px;font-variant-numeric:tabular-nums;display:grid;place-items:center;padding:0;color:var(--bk-soft);opacity:.55}
.culc-bk-day.is-open{background:var(--bk-surface);color:inherit;font-weight:700;opacity:1;cursor:pointer}
.culc-bk-day.is-open:hover,.culc-bk-day.is-open:focus-visible{border-color:var(--bk-accent)}
.culc-bk-day.is-today{box-shadow:inset 0 0 0 2px var(--bk-line)}
.culc-bk-day.is-picked{background:var(--bk-accent);border-color:var(--bk-accent);color:#fff}
.culc-bk-key{display:flex;gap:18px;flex-wrap:wrap;font-size:16px;color:var(--bk-soft);margin:12px 0 0}
.culc-bk-key i{display:inline-block;width:16px;height:16px;border-radius:4px;background:var(--bk-surface);vertical-align:-2px;margin-right:6px}
.culc-bk-key i.is-picked{background:var(--bk-accent)}
.culc-bk-times{display:flex;flex-direction:column;gap:18px;min-width:0}
.culc-bk-part{display:flex;flex-direction:column;gap:8px}
.culc-bk-part>span{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bk-soft)}
.culc-bk-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.culc-bk-slot{padding:14px 6px;border:2px solid var(--bk-line);border-radius:var(--bk-radius);background:var(--bk-paper);font:inherit;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;color:inherit;cursor:pointer}
.culc-bk-slot:hover,.culc-bk-slot:focus-visible{border-color:var(--bk-accent)}
.culc-bk-slot.is-picked{background:var(--bk-accent);border-color:var(--bk-accent);color:#fff}
.culc-bk-hint{background:var(--bk-surface);border-radius:var(--bk-radius);padding:22px;color:var(--bk-soft);margin:0}
.culc-bk-note{border-radius:var(--bk-radius);padding:16px 18px;display:flex;flex-direction:column;gap:6px;margin:0}
.culc-bk-note.is-warn{background:#fdf1e0;color:#7a4208}
.culc-bk-note strong{font-size:18px}
.culc-bk-skel{height:52px;border-radius:var(--bk-radius);background:linear-gradient(90deg,var(--bk-surface) 25%,var(--bk-line) 50%,var(--bk-surface) 75%);background-size:200% 100%;animation:culc-bk-sh 1.1s linear infinite}
.culc-bk-skel.is-tall{height:320px}
@keyframes culc-bk-sh{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){.culc-bk-skel{animation:none}}
.culc-bk-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:720px}
@media (max-width:640px){.culc-bk-form{grid-template-columns:minmax(0,1fr)}}
.culc-bk-field{display:flex;flex-direction:column;gap:6px}
.culc-bk-form .is-wide{grid-column:1/-1}
.culc-bk-field label{font-size:16px;font-weight:700}
.culc-bk-field input,.culc-bk-field textarea{border:2px solid var(--bk-line);border-radius:var(--bk-radius);padding:13px 14px;font:inherit;font-size:18px;background:var(--bk-paper);color:inherit;width:100%}
.culc-bk-field input:focus,.culc-bk-field textarea:focus{border-color:var(--bk-accent);outline:none}
.culc-bk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.culc-bk-consent{grid-column:1/-1;font-size:16px;color:var(--bk-soft);margin:0}
.culc-bk-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.culc-bk-btn{padding:14px 26px;border:2px solid var(--bk-accent);border-radius:var(--bk-radius);background:var(--bk-accent);color:#fff;font:inherit;font-size:17px;font-weight:700;cursor:pointer}
.culc-bk-btn:hover{filter:brightness(.92)}
.culc-bk-btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.culc-bk-link{background:none;border:0;padding:0;font:inherit;font-size:16px;font-weight:700;color:var(--bk-accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.culc-bk-done{align-items:flex-start}
.culc-bk-ticket{border:2px solid currentColor;border-radius:var(--bk-radius);padding:22px;display:flex;flex-direction:column;gap:4px;width:100%;max-width:520px}
.culc-bk-ticket strong{font-family:var(--cs-display,inherit);font-size:24px;line-height:1.2}
.culc-bk-fallback{display:flex;flex-direction:column;gap:18px;max-width:640px}
.culc-bk-fallback[hidden]{display:none}

/* The conversation's own Send button only shows with JavaScript off, and at the
   browser's default size it was the one thing on a form under 16px. */
.culc-qc-finish{font:inherit;font-size:17px}

/* A listing's page and its open house's page (includes/collections/listings-page.php).
   1280 wide, lined up with the canvas's own container: the property on the left,
   what a buyer does on the right. Canvas colours, so it is the site it is on. */
.culc-lp{--lp-accent:var(--cs-accent,#1b4d7a);--lp-accent-dk:var(--cs-accent-dk,#12395c);--lp-line:var(--cs-line,#e2e7ec);--lp-soft:var(--cs-ink-soft,#5c6875);--lp-surface:var(--cs-surface,#f4f6f8);--lp-paper:var(--cs-paper,#fff);--lp-radius:var(--cs-radius,8px);max-width:var(--cs-max,1280px);margin:0 auto;padding:28px 28px 72px;box-sizing:border-box}
.culc-lp *,.culc-lp *::before,.culc-lp *::after{box-sizing:border-box}
.culc-lp h1,.culc-lp h2,.culc-lp h3{font-family:var(--cs-display,inherit);line-height:1.15;margin:0;text-wrap:balance}
/* One fixed height for the row, each photo cropped to it: left to their own size,
   two portrait photos down the side made the row taller than the screen. */
.culc-lp-gallery{display:grid;grid-template-columns:2fr 1fr;gap:10px;height:clamp(300px,40vw,540px)}
.culc-lp-gallery.is-one{grid-template-columns:1fr}
.culc-lp-shots-side{display:grid;grid-template-rows:1fr 1fr;gap:10px;min-height:0}
.culc-lp-shot{position:relative;border-radius:var(--lp-radius);overflow:hidden;background:var(--lp-surface);min-height:0}
.culc-lp-shot img{display:block;width:100%;height:100%;object-fit:cover}
.culc-lp-gallery .culc-lp-shot{height:100%}
.culc-lp-all{position:absolute;right:14px;bottom:12px;background:var(--lp-paper);color:inherit;border-radius:6px;padding:8px 14px;font-size:16px;font-weight:700;text-decoration:none}
@media (max-width:760px){.culc-lp-gallery{grid-template-columns:1fr;height:auto}.culc-lp-gallery .culc-lp-shot.is-main{height:auto;aspect-ratio:4/3}.culc-lp-shots-side{grid-template-columns:1fr 1fr;grid-template-rows:none}.culc-lp-shots-side .culc-lp-shot{height:auto;aspect-ratio:4/3}}
.culc-lp-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px 32px;flex-wrap:wrap;padding:28px 0 6px}
.culc-lp-title h1{font-size:clamp(30px,4vw,46px);margin-top:10px}
.culc-lp-town{font-size:20px;color:var(--lp-soft);margin:4px 0 0}
.culc-lp-price{font-family:var(--cs-display,inherit);font-size:clamp(28px,3.4vw,40px);font-weight:800;margin:0;white-space:nowrap}
.culc-lp-pill{display:inline-block;background:#e6f2ec;color:#1f6b4a;font-weight:700;font-size:16px;padding:4px 12px;border-radius:999px}
.culc-lp-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));border:1px solid var(--lp-line);border-radius:var(--lp-radius);margin:18px 0 0;overflow:hidden}
.culc-lp-facts div{padding:16px 18px;box-shadow:-1px 0 0 var(--lp-line);display:flex;flex-direction:column}
.culc-lp-facts strong{font-family:var(--cs-display,inherit);font-size:26px;line-height:1.15;font-variant-numeric:tabular-nums}
.culc-lp-facts span{font-size:16px;color:var(--lp-soft)}
.culc-lp-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,400px);gap:48px;align-items:start;padding-top:36px}
@media (max-width:980px){.culc-lp-body{grid-template-columns:minmax(0,1fr);gap:32px}}
.culc-lp-main{display:flex;flex-direction:column;gap:40px;min-width:0}
.culc-lp-main h2{font-size:30px;margin-bottom:14px}
.culc-lp-prose p{margin:0}.culc-lp-prose p+p{margin-top:14px}
.culc-lp-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.culc-lp-photos .culc-lp-shot{aspect-ratio:4/3}
@media (max-width:640px){.culc-lp-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}
.culc-lp-frame{position:relative;aspect-ratio:16/9;max-width:100%;border-radius:var(--lp-radius);overflow:hidden;background:var(--lp-surface)}
.culc-lp-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.culc-lp-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px;margin:0}
@media (max-width:640px){.culc-lp-details{grid-template-columns:repeat(2,minmax(0,1fr))}}
.culc-lp-details dt{font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--lp-soft)}
.culc-lp-details dd{margin:2px 0 0;font-weight:700}
.culc-lp-link{color:var(--lp-accent);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.culc-lp-side{display:flex;flex-direction:column;gap:20px;min-width:0}
.culc-lp-card{border:1px solid var(--lp-line);border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:14px;background:var(--lp-paper);margin:0}
.culc-lp-card.is-oh{border:2px solid var(--lp-accent)}
.culc-lp-card h3{font-size:22px}
.culc-lp-eyebrow{display:block;font-size:16px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lp-accent)}
.culc-lp-oh-when{display:flex;gap:16px;align-items:center}
.culc-lp-oh-when strong{display:block;font-size:19px}
.culc-lp-oh-when span{color:var(--lp-soft)}
.culc-lp-chip{flex:0 0 auto;width:76px;border-radius:10px;overflow:hidden;text-align:center;border:2px solid var(--lp-accent)}
.culc-lp-chip i{display:block;font-style:normal;background:var(--lp-accent);color:#fff;font-size:16px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 0}
.culc-lp-chip b{display:block;font-family:var(--cs-display,inherit);font-size:32px;line-height:1.2;padding:2px 0 4px;color:inherit}
.culc-lp-fine{font-size:16px;color:var(--lp-soft);margin:0}
.culc-lp-btns{display:flex;gap:10px;flex-wrap:wrap}
.culc-lp-btns .culc-lp-btn{flex:1 1 150px}
.culc-lp-btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border:2px solid currentColor;border-radius:var(--lp-radius);background:transparent;color:inherit;font:inherit;font-size:17px;font-weight:700;text-decoration:none;text-align:center;cursor:pointer}
.culc-lp-btn.is-solid{background:var(--lp-accent);border-color:var(--lp-accent);color:#fff}
.culc-lp-btn.is-solid:hover{background:var(--lp-accent-dk);border-color:var(--lp-accent-dk)}
.culc-lp-agent-top{display:flex;gap:16px;align-items:center}
.culc-lp-agent-top strong{display:block;font-size:20px;line-height:1.25}
.culc-lp-agent-top span{color:var(--lp-soft)}
.culc-lp-agent-photo{flex:0 0 auto;width:88px;height:88px;border-radius:50%;object-fit:cover}
.culc-lp-agent-photo.is-initials{display:grid;place-items:center;background:var(--lp-accent);color:#fff;font-family:var(--cs-display,inherit);font-size:30px;font-weight:800}
.culc-lp-contact{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:17px}
.culc-lp-contact li{display:flex;gap:10px;align-items:baseline;min-width:0}
.culc-lp-contact li span{font-size:16px;font-weight:700;color:var(--lp-soft);min-width:58px}
.culc-lp-contact a{color:inherit;overflow-wrap:anywhere}
.culc-ohp-hero{background:var(--cs-surface,#f4f6f8)}
.culc-ohp-hero-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding-top:44px;padding-bottom:44px}
@media (max-width:900px){.culc-ohp-hero-in{grid-template-columns:minmax(0,1fr)}}
.culc-ohp-hero h1{font-size:clamp(34px,4.4vw,52px);margin:8px 0 0}
.culc-ohp-line{display:flex;gap:8px 22px;flex-wrap:wrap;margin:16px 0 22px;font-size:19px;font-weight:700}
.culc-ohp-line .is-soft{color:var(--lp-soft);font-weight:400}
.culc-ohp-hero .culc-lp-btns{max-width:520px}
.culc-lp-shot.is-hero{aspect-ratio:4/3}
.culc-ohp-price{display:flex;gap:16px;align-items:baseline;flex-wrap:wrap;margin:16px 0 0}
.culc-ohp-price strong{font-family:var(--cs-display,inherit);font-size:28px}
.culc-oh-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.culc-oh-slot{padding:12px 4px;border:2px solid var(--lp-line);border-radius:var(--lp-radius);background:var(--lp-paper);color:inherit;font:inherit;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:pointer}
.culc-oh-slot:hover,.culc-oh-slot:focus-visible{border-color:var(--lp-accent)}
.culc-oh-slot[aria-pressed="true"]{background:var(--lp-accent);border-color:var(--lp-accent);color:#fff}
.culc-oh-slot[disabled]{opacity:.45;cursor:not-allowed;text-decoration:line-through}
.culc-oh-form[hidden]{display:none}
.culc-oh-picked{font-weight:700;margin:0 0 8px}
.culc-ohp-more{border-top:1px solid var(--lp-line);margin-top:56px;padding-top:40px}
.culc-ohp-more h2{font-size:30px;margin-bottom:18px}
.culc-ohp-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:760px){.culc-ohp-more-grid{grid-template-columns:minmax(0,1fr)}}
.culc-ohp-more-card{border:1px solid var(--lp-line);border-radius:12px;overflow:hidden;color:inherit;text-decoration:none;display:flex;flex-direction:column}
.culc-ohp-more-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}
.culc-ohp-more-card>span{padding:14px 16px;display:flex;flex-direction:column;gap:2px}
