/* Single Property template — Carlin Team
   Scoped to the Elementor Theme Builder document so it cannot leak. */

.elementor-1362 {
    --lpl-ink: #111111;
    --lpl-grey: #555555;
    --lpl-hairline: #E4E4E4;
    --lpl-accent: #F282B3;
    --lpl-tint: #FDF2F7;
}

/* Spec rail: hairline dividers between the six figures */
.elementor-1362 .s-rail > * {
    flex: 1 1 0;
    text-align: center;
    border-left: 1px solid var(--lpl-hairline);
    padding: 0 8px;
}
.elementor-1362 .s-rail > *:first-child {
    border-left: 0;
    text-align: left;
    padding-left: 0;
}

/* Eyebrow rule: label, then a hairline running to the edge */
.elementor-1362 .s-e1,
.elementor-1362 .s-e2,
.elementor-1362 .s-e3 {
    display: flex;
    align-items: center;
    gap: 12px;
}
.elementor-1362 .s-e1::before,
.elementor-1362 .s-e2::before,
.elementor-1362 .s-e3::before {
    content: "";
    width: 18px;
    height: 2px;
    background: var(--lpl-accent);
    flex: none;
}
.elementor-1362 .s-e1::after,
.elementor-1362 .s-e2::after,
.elementor-1362 .s-e3::after {
    content: "";
    height: 1px;
    flex: 1;
    background: var(--lpl-hairline);
}

/* Description: restore paragraph rhythm and style the feature list */
.elementor-1362 .elementor-widget-text-editor {
    font-family: "Lato", system-ui, sans-serif;
    font-size: 17px;
    line-height: 1.65;
    color: var(--lpl-grey);
    max-width: 66ch;
}
.elementor-1362 .elementor-widget-text-editor p {
    margin: 0 0 1.05em;
}
.elementor-1362 .elementor-widget-text-editor p:last-child {
    margin-bottom: 0;
}
.elementor-1362 ul.listing-features {
    list-style: none;
    margin: 0 0 1.05em;
    padding: 0;
    columns: 2;
    column-gap: 40px;
}
.elementor-1362 ul.listing-features li {
    break-inside: avoid;
    position: relative;
    padding: 8px 0 8px 22px;
    font-size: 16px;
}
.elementor-1362 ul.listing-features li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 17px;
    width: 9px;
    height: 1px;
    background: var(--lpl-accent);
}

/* Enquiry card: sticky, and the button on brand */
.elementor-1362 .s-aside {
    position: sticky;
    top: 24px;
}
.elementor-1362 .s-aside .elementor-field-group > label {
    font-family: "Montserrat", system-ui, sans-serif;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--lpl-grey);
}
.elementor-1362 .s-aside input:not([type="submit"]),
.elementor-1362 .s-aside textarea {
    border: 1px solid var(--lpl-hairline);
    border-radius: 0;
    font-family: "Lato", system-ui, sans-serif;
    font-size: 16px;
    padding: 11px 13px;
}
.elementor-1362 .s-aside input:focus,
.elementor-1362 .s-aside textarea:focus {
    outline: 2px solid var(--lpl-accent);
    outline-offset: 1px;
    border-color: transparent;
}
.elementor-1362 .s-aside button[type="submit"] {
    width: 100%;
    background: var(--lpl-ink);
    color: #fff;
    border: 1px solid var(--lpl-ink);
    border-radius: 0;
    font-family: "Montserrat", system-ui, sans-serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 0.04em;
    padding: 14px 20px;
    transition: background 0.18s ease, color 0.18s ease;
}
.elementor-1362 .s-aside button[type="submit"]:hover {
    background: var(--lpl-accent);
    border-color: var(--lpl-accent);
    color: var(--lpl-ink);
}

/* Inspection block */
.elementor-1362 .s-e2 + .e-paragraph-base {
    background: var(--lpl-tint);
    padding: 20px 22px;
    font-family: "Montserrat", system-ui, sans-serif;
    font-weight: 600;
    font-size: 17px;
    color: var(--lpl-ink);
    margin: 0;
}

/* Images sit flush and never overflow */
.elementor-1362 .e-image-base {
    width: 100%;
    height: auto;
    display: block;
}

@media (max-width: 1024px) {
    .elementor-1362 .s-aside { position: static; width: 100%; }
    .elementor-1362 .s-rail { flex-wrap: wrap; }
    .elementor-1362 .s-rail > * { flex: 0 0 33.333%; }
    .elementor-1362 ul.listing-features { columns: 1; }
}
@media (max-width: 640px) {
    .elementor-1362 .s-rail > * { flex: 0 0 50%; text-align: left; border-left: 0; padding-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .elementor-1362 * { transition: none !important; }
}

/* --- enquiry card spacing --- */

/* Price block, then a rule, then the agent, then a rule, then the form.
   Mirrors the divided card in the mockup and stops the sidebar reading as
   one undifferentiated column. */
.elementor-1362 .s-plabel { margin: 0 0 6px; }

.elementor-1362 .s-pval {
    line-height: 1.18;
    margin: 0 0 22px;
    padding-bottom: 22px;
    border-bottom: 1px solid var(--lpl-hairline);
}

.elementor-1362 .s-aname { margin: 0 0 3px; }

.elementor-1362 .s-arole {
    margin: 0 0 24px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--lpl-hairline);
}

/* Elementor spaces form rows with a column gutter, not a row gap, so the
   fields sit almost flush by default. */
.elementor-1362 .s-aside .elementor-form-fields-wrapper { margin: 0; }

.elementor-1362 .s-aside .elementor-field-group {
    padding: 0;
    margin-bottom: 18px;
}

.elementor-1362 .s-aside .elementor-field-group:last-of-type { margin-bottom: 0; }

.elementor-1362 .s-aside .elementor-field-label {
    display: block;
    margin-bottom: 7px;
    line-height: 1.2;
}

.elementor-1362 .s-aside .elementor-field-group.elementor-field-type-submit {
    margin-top: 24px;
}

.elementor-1362 .s-aside textarea { min-height: 96px; }

/* --- full-bleed property carousel --- */

/* NOTE ON SPECIFICITY: this site has a global rule
     [type=button], [type=submit], button { width:100%; background:#f282b3; ... }
   An attribute selector scores the same as a class, so a single-class rule
   only TIES with it and loses on source order. Every nav rule below is
   therefore double-scoped and the visual properties are forced. */

.carlin-gallery {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    margin-bottom: 10px;
    overflow: hidden;
    --carlin-cols: 4;
    --carlin-gap: 6px;
}

/* One row. Each slide is a fraction of the viewport, so N photos show at once. */
.carlin-gallery .carlin-gallery__track {
    display: flex;
    gap: var(--carlin-gap);
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 0;
    margin: 0;
}
.carlin-gallery .carlin-gallery__track::-webkit-scrollbar { display: none; }
.carlin-gallery .carlin-gallery__track:focus-visible {
    outline: 3px solid #F282B3;
    outline-offset: -3px;
}

.carlin-gallery .carlin-gallery__slide {
    flex: 0 0 calc((100% - (var(--carlin-cols) - 1) * var(--carlin-gap)) / var(--carlin-cols));
    scroll-snap-align: start;
    display: block;
    line-height: 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: #EFEFEF;
}

/* Uniform tiles: the theme sets img{height:auto}, so force the fill. */
.carlin-gallery .carlin-gallery__slide img.carlin-gallery__img {
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}
.carlin-gallery .carlin-gallery__slide:hover img.carlin-gallery__img { transform: scale(1.03); }

/* Arrows — forced past the global button styling. */
.carlin-gallery button.carlin-gallery__nav {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 46px !important;
    height: 46px !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #FFFFFF !important;
    color: #111111 !important;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.22);
    font-size: 24px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    cursor: pointer;
    display: flex !important;
    align-items: center;
    justify-content: center;
    z-index: 3;
}
.carlin-gallery button.carlin-gallery__nav:hover {
    background: #F282B3 !important;
    color: #FFFFFF !important;
}
.carlin-gallery button.carlin-gallery__nav:focus-visible {
    outline: 3px solid #F282B3 !important;
    outline-offset: 3px;
}
.carlin-gallery button.carlin-gallery__nav--prev { left: 16px !important; right: auto !important; }
.carlin-gallery button.carlin-gallery__nav--next { right: 16px !important; left: auto !important; }

/* Photo count */
.carlin-gallery .carlin-gallery__count {
    position: absolute;
    right: 16px;
    bottom: 16px;
    background: rgba(17, 17, 17, 0.8);
    color: #FFFFFF;
    font-family: "Montserrat", system-ui, sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    padding: 7px 12px;
    z-index: 3;
    pointer-events: none;
}

/* Fewer photos per row as the viewport narrows. */
@media (max-width: 1400px) { .carlin-gallery { --carlin-cols: 3; } }
@media (max-width: 1024px) { .carlin-gallery { --carlin-cols: 2; } }
@media (max-width: 767px) {
    .carlin-gallery { --carlin-cols: 1.15; }
    .carlin-gallery button.carlin-gallery__nav { display: none !important; }
    .carlin-gallery .carlin-gallery__slide { aspect-ratio: 4 / 3; }
}
@media (prefers-reduced-motion: reduce) {
    .carlin-gallery .carlin-gallery__track { scroll-behavior: auto; }
    .carlin-gallery .carlin-gallery__slide img.carlin-gallery__img { transition: none; }
}
