/* rc.9: reference-inspired editorial storefront, scoped to the homepage. */
.homepage{--paper:#f7f3eb;--ink:#28241f;--accent:#302a24;--line:#d9d1c4;--home-content-width:var(--content-width)!important;background:var(--paper)}
.homepage .site-header{background:#faf7f0;border-bottom:1px solid var(--line)}
.homepage .nav{display:grid;grid-template-columns:minmax(260px,1fr) auto minmax(260px,1fr);min-height:138px;gap:30px;padding-block:22px}
.homepage .brand{grid-column:1;justify-self:start}
.homepage .nav nav{grid-column:2;justify-self:center}
.homepage .header-tools{grid-column:3;justify-self:end;margin-left:0}
.homepage .brand{font-size:clamp(34px,3.6vw,58px);font-weight:400;letter-spacing:-.035em}
.homepage .nav nav{gap:22px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.homepage .nav nav a{padding-block:7px;border-bottom:1px solid transparent}
.homepage .nav nav a:hover,.homepage .nav nav a:focus-visible{border-bottom-color:currentColor}
.homepage .home-hero-slider{margin-top:0;margin-bottom:0;background:#eee7db;min-height:0;border-bottom:1px solid var(--line)}
.homepage .home-hero-slide{height:clamp(min(520px,var(--homepage-hero-height,720px)),calc((100vw - 80px)/2),var(--homepage-hero-height,720px));min-height:0;background:#eee7db}
.homepage .home-hero-slide>img{inset-block:0;left:50%;width:100vw;max-width:none;height:100%;transform:translateX(-50%);object-fit:cover;object-position:center}
.homepage .home-hero-slide:has(>img)::after{display:none}
.homepage .home-hero-overlay{display:flex;flex-direction:column;align-items:flex-start;width:var(--home-content-width);max-width:none;margin-inline:auto;padding:76px 0 90px;color:var(--ink)}
.homepage .home-hero-slide:has(>img) .home-hero-overlay{color:var(--ink)}
.homepage .home-hero-overlay>*{max-width:31%}
.homepage .home-hero-copy-center .home-hero-overlay{display:flex;flex-direction:column;align-items:center;text-align:center}
.homepage .home-hero-copy-right .home-hero-overlay{display:flex;flex-direction:column;align-items:flex-end;text-align:right}
.homepage .home-hero-copy-center .home-hero-overlay h1::after{margin-inline:auto}
.homepage .home-hero-copy-right .home-hero-overlay h1::after{margin-left:auto}
.homepage .home-hero-overlay .eyebrow{display:block;font-size:11px;letter-spacing:.26em;font-weight:500;color:#665d51;margin-bottom:var(--hero-gap-eyebrow-title,24px)}
.homepage .home-hero-overlay h1{font-size:clamp(44px,4.2vw,72px);line-height:1.03;font-weight:400;letter-spacing:.02em;margin:0 0 var(--hero-gap-divider-description,30px);text-transform:uppercase;text-wrap:balance;overflow-wrap:anywhere}
.homepage .home-hero-overlay h1::after{content:"";display:block;width:154px;max-width:45%;margin-top:var(--hero-gap-title-divider,30px);border-bottom:2px solid currentColor}
.homepage .home-hero-overlay p{font-family:Georgia,serif;font-size:clamp(19px,1.35vw,25px);line-height:1.45;font-weight:500;margin:0 0 var(--hero-gap-description-button,34px)}
.homepage .home-hero-overlay .eyebrow{color:var(--hero-eyebrow-color,#fff)!important}.homepage .home-hero-overlay h1{color:var(--hero-title-color,#fff)!important}.homepage .home-hero-overlay h1::after{border-color:var(--hero-divider-color,#fff)!important}.homepage .home-hero-overlay p{color:var(--hero-description-color,#fff)!important}
.homepage .home-hero-overlay h1{text-shadow:-.35px -.35px 0 var(--hero-title-outline,#000),0 -.35px 0 var(--hero-title-outline,#000),.35px -.35px 0 var(--hero-title-outline,#000),-.35px 0 0 var(--hero-title-outline,#000),.35px 0 0 var(--hero-title-outline,#000),-.35px .35px 0 var(--hero-title-outline,#000),0 .35px 0 var(--hero-title-outline,#000),.35px .35px 0 var(--hero-title-outline,#000)}.homepage .home-hero-overlay p{text-shadow:-.3px -.3px 0 var(--hero-description-outline,#000),0 -.3px 0 var(--hero-description-outline,#000),.3px -.3px 0 var(--hero-description-outline,#000),-.3px 0 0 var(--hero-description-outline,#000),.3px 0 0 var(--hero-description-outline,#000),-.3px .3px 0 var(--hero-description-outline,#000),0 .3px 0 var(--hero-description-outline,#000),.3px .3px 0 var(--hero-description-outline,#000)}
.homepage .button{border-radius:1px;background:var(--accent);padding:16px 24px;font-size:11px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;line-height:1.6}
.homepage .home-hero-overlay .button{display:inline-block;max-width:31%}
.homepage .home-slider-dots{bottom:30px}
.homepage .home-slider-dots button{background:#302a2440;box-shadow:none;width:8px;height:8px}
.homepage .home-slider-dots button.active{background:#302a24}
.homepage .home-section{margin-top:48px;margin-bottom:64px}
.homepage .home-section-head{border-top:0;padding-top:26px;margin-bottom:26px}
.homepage .home-section-head h2{font-size:clamp(32px,3vw,44px);font-weight:500}
.homepage .home-section-head>a{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.homepage .home-listing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px}
.homepage .home-listing-card{min-width:0;max-width:100%;border:0;border-radius:0;background:#f0eade;box-shadow:none}
.homepage .home-listing-card .card-body{padding:22px 24px 24px}
.homepage .listing-card h2{font-size:28px;font-weight:500;line-height:1.15;margin-block:12px 20px}
.homepage .listing-card-kicker{font-size:10px;letter-spacing:.12em}
.homepage .listing-card-footer{border-top:1px solid var(--line);padding-top:18px}
.homepage .price{font-size:16px;font-weight:600}
.homepage .listing-card-view{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.homepage .home-browse-cta{border:1px solid var(--line);border-radius:0;background:transparent;padding:28px}
.homepage>footer{border-top:1px solid var(--line);font-size:12px;letter-spacing:.06em}
.editorial-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin:30px 0 76px;padding-bottom:40px;border-bottom:1px solid var(--line)}
.editorial-feature-card{display:flex;min-width:0;flex-direction:column;background:#f0eade;border:1px solid #e5ddd0;color:var(--ink);transition:transform .18s ease,box-shadow .18s ease}
.editorial-feature-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #302a2412}
.editorial-feature-card:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.editorial-feature-art{display:block;aspect-ratio:2.25/1;overflow:hidden;background:#eee7db;border-bottom:1px solid var(--line)}
.editorial-feature-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.editorial-feature-copy{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:21px 24px 23px}
.editorial-feature-copy strong{grid-column:1/-1;font-family:Georgia,serif;font-size:28px;font-weight:600;line-height:1;text-transform:uppercase;letter-spacing:.01em}
.editorial-feature-copy>span:not(.editorial-feature-arrow){font-size:12px;line-height:1.55;color:var(--muted)}
.editorial-feature-arrow{align-self:end;font-size:20px;line-height:1}
@media(min-width:1500px){.homepage .home-listing-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.homepage .nav{display:flex;justify-content:center;text-align:center;min-height:104px}.homepage .nav nav{justify-content:center}.homepage .header-tools{justify-self:auto}}
@media(max-width:1000px){.homepage{--home-content-width:calc(100vw - 48px)!important}.homepage .nav{display:flex;justify-content:center;text-align:center;min-height:104px}.homepage .nav nav{justify-content:center;gap:16px}.homepage .home-hero-slide{height:min(490px,var(--homepage-hero-height,720px))}.homepage .home-hero-overlay{padding-block:56px 80px}.homepage .home-hero-overlay h1{font-size:44px}.homepage .home-hero-overlay p{font-size:18px}.homepage .home-hero-overlay>*{max-width:38%}.homepage .home-listing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.editorial-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.homepage{--home-content-width:calc(100vw - 32px)!important}.homepage .nav{min-height:0;padding-block:18px;gap:14px}.homepage .nav nav{font-size:10px;gap:10px 16px}.homepage .home-hero-slide{height:auto;min-height:0}.homepage .home-hero-slide>img{position:relative;display:block;inset:auto;left:auto;width:100%;height:280px;transform:none;object-fit:cover}.homepage .home-hero-overlay{padding:32px 0 66px}.homepage .home-hero-overlay>*,.homepage .home-hero-overlay .button{max-width:100%}.homepage .home-hero-overlay h1{font-size:44px}.homepage .home-hero-overlay p{font-size:15px}.homepage .home-section-head{align-items:start;gap:16px}.homepage .home-section-head>a{max-width:100px;text-align:right}.homepage .home-listing-grid{gap:16px}.homepage .home-listing-card .card-body{padding:16px}.homepage .listing-card h2{font-size:24px}.homepage .home-browse-cta{padding:22px}}
@media(max-width:640px){.editorial-feature-grid{gap:14px;margin-top:22px;margin-bottom:52px}.editorial-feature-copy{padding:16px}.editorial-feature-copy strong{font-size:24px}}
@media(max-width:440px){.homepage .home-listing-grid,.editorial-feature-grid{grid-template-columns:1fr}}
/* rc.27 administrator-controlled hero image darkness */
.homepage .home-hero-slide>img{filter:brightness(var(--hero-brightness,.55))}
/* rc.92: use the same content boundary as public and administration pages. */
.homepage{--home-content-width:var(--content-width)!important}

/* rc138 homepage cards follow the module width controls */
@media(min-width:641px){.homepage .home-listing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--listing-card-width,320px)),1fr))}.editorial-feature-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--feature-card-width,280px)),1fr))}}
@media(min-width:441px) and (max-width:640px){.homepage .home-listing-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--listing-card-width,320px)),1fr))}.editorial-feature-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--feature-card-width,280px)),1fr))}}

/* rc143 Explore links use the selected width without stretching to fill sparse rows */
@media(min-width:441px){.editorial-feature-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,var(--feature-card-width,280px)),var(--feature-card-width,280px)))}}

/* rc149: centre the complete hero copy block when the configured desktop/tablet height changes. */
@media(min-width:641px){.homepage .home-hero-slide.active{display:flex;align-items:center}.homepage .home-hero-overlay{padding-block:48px}}

/* rc150: keep a fixed button-to-indicator gap and centre both with each desktop/tablet slide. */
.homepage .home-slider-dots-inline{display:none}.homepage .home-slider-dots-mobile{display:flex}
@media(min-width:641px){.homepage .home-slider-dots-inline{position:static;display:flex;margin-top:var(--hero-gap-button-indicators,24px)}.homepage .home-slider-dots-mobile{display:none}.homepage .home-hero-copy-center .home-slider-dots-inline{justify-content:center}.homepage .home-hero-copy-right .home-slider-dots-inline{justify-content:flex-end}}

/* rc152: every slide uses the same flex-column margin model, including left-aligned copy. */
.homepage .home-hero-overlay>*{flex:none}
