/* Photo hero: the coast photo runs full width under the header, with the copy and the
   property search placeholder on top of it. Loaded last so it wins over style.css/v4.css. */

/* Header sits on the photo: light text while at the top, solid white once you scroll. */
.has-photo-hero .site-header{position:fixed;top:0;left:0;right:0;background:transparent;color:#fff;transition:background-color var(--t-state,280ms) ease,color var(--t-state,280ms) ease,box-shadow var(--t-state,280ms) ease}
.has-photo-hero .site-header:not(.is-solid) :focus-visible{outline-color:#fff}
@media(min-width:761px){
 .has-photo-hero .site-header.is-solid{background:var(--paper);color:var(--ink)}
 .site-header.is-solid{box-shadow:0 1px 0 rgba(31,43,77,.12)}
}
/* Phones: the header scrolls away with the photo, as it did before. */
@media(max-width:760px){
 .has-photo-hero .site-header{position:absolute}
}

.hero.hero-top{--hh:92px;position:relative;display:flex;flex-direction:column;justify-content:center;gap:0;min-height:100svh;padding:calc(var(--header-h,var(--hh)) + 40px) 0 72px;color:#fff;background:var(--ink);isolation:isolate;overflow:clip}
.hero-top .hero-media{position:absolute;inset:0;z-index:-1;margin:0}
.hero-top .hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;background:var(--ink)}
.hero-top .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,21,40,.66) 0%,rgba(14,21,40,.34) 34%,rgba(14,21,40,.40) 58%,rgba(14,21,40,.80) 100%)}
.hero-top :focus-visible{outline-color:#fff}

.hero-top .hero-copy{display:flex;flex-direction:column;align-items:center;text-align:center;padding-block:0;text-shadow:0 1px 18px rgba(8,12,24,.35)}
.hero-eyebrow{margin:0 0 22px;max-width:none;font:500 clamp(1rem,.85rem + .5vw,1.375rem)/1.5 var(--text);letter-spacing:.28em;text-transform:uppercase;color:var(--accent)}
.hero.hero-top h1{font-size:clamp(3rem,6.2vw,7rem);line-height:1.04;letter-spacing:-.03em;color:#fff;white-space:normal}
.hero-top .hero-line{display:block}
.hero-top .hero-description{margin:22px auto 0;max-width:36ch;text-wrap:balance;font-size:clamp(1.25rem,1rem + .8vw,1.75rem);line-height:1.35;color:rgba(255,255,255,.92)}
.hero-top .affiliation{margin:12px auto 0;max-width:none;font-size:var(--small);color:rgba(255,255,255,.8)}

/* Property search placeholder */
.home-search{width:min(100%,1180px);margin:52px auto 0;text-shadow:none}
.home-search-title{margin:0 auto 16px;max-width:none;font:500 clamp(.9375rem,.85rem + .35vw,1.1875rem)/1.4 var(--text);letter-spacing:.18em;text-transform:uppercase;color:#fff}
.home-search-bar{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(104px,148px)) minmax(140px,196px);gap:8px;align-items:stretch;padding:8px 8px 8px 20px;background:#f7f7f7;color:var(--ink);text-align:left}
.home-search-field{display:flex;align-items:center;gap:14px;min-width:0}
.home-search-field svg{flex:none;width:22px;height:22px}
.home-search-field input{flex:1;min-width:0;min-height:44px;padding:0;border:0;background:transparent;color:var(--ink);font-size:1.125rem;font-weight:500}
.home-search-field input::placeholder{color:#69728a;opacity:1}
.home-search-field input:focus{outline:none}
.home-search-field input::-webkit-search-cancel-button{cursor:pointer}
.home-search-field:focus-within{outline:3px solid var(--ink);outline-offset:4px}
.home-search-bar select{appearance:none;-webkit-appearance:none;min-height:44px;min-width:0;padding:0 30px 0 14px;border:2px solid var(--ink);border-radius:0;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%231f2b4d' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 12px center;color:var(--ink);font-size:1rem;letter-spacing:.08em;text-transform:uppercase;text-align:center;text-align-last:center}
.home-search-bar select:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.home-search-go{min-height:44px;padding:0 20px;border:0;border-radius:0;background:var(--accent);color:var(--ink);font-size:1rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;transition:background-color var(--t-hover,200ms) ease}
.home-search-go:hover,.home-search-go:focus-visible{background:var(--accent-hover)}
.home-search-go:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.home-search-note{margin:14px auto 0;max-width:60ch;font-size:var(--small);color:#fff}

@media(max-width:1100px){
 .hero.hero-top{--hh:118px}
 .home-search-bar{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.3fr);padding:8px}
 .home-search-field{grid-column:1/-1;padding-inline:12px}
}
@media(max-width:760px){
 .hero.hero-top{--hh:190px;min-height:100svh;padding:calc(var(--header-h,var(--hh)) + 24px) 0 40px}
 .hero-top .hero-media img{object-position:62% 50%}
 .hero-eyebrow{margin-bottom:16px;letter-spacing:.24em}
 .hero.hero-top h1{font-size:clamp(2.25rem,9.6vw,3.5rem)}
 .hero-top .hero-description{font-size:1.25rem;max-width:24ch}
 .hero-top .affiliation span{display:block}.hero-top .affiliation .affiliation-sep{display:none}
 .home-search{margin-top:48px}
 .home-search-title{letter-spacing:.14em;max-width:24ch}
 .home-search-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px}
 .home-search-field{padding-inline:8px}
 .home-search-field input{font-size:1.0625rem}
 .home-search-bar select{padding:0 24px 0 8px;background-position:right 8px center;letter-spacing:.04em}
 .home-search-go{grid-column:1/-1}
}
@media print{
 .hero.hero-top{min-height:0;padding:24px 0;color:var(--ink);background:none}
 .hero-top .hero-media,.home-search{display:none}
 .hero.hero-top h1,.hero-top .hero-description,.hero-top .affiliation{color:var(--ink)}
}

/* About: new headline, then Text me, phone and Instagram in one row. */
.about-copy h2#about-title{font-size:clamp(2.5rem,1.6rem + 2.6vw,4.5rem);line-height:1.06;max-width:16ch}
.about-copy h2#about-title{margin-bottom:28px}
.about-contact{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin:0 0 36px}
.about-contact .about-text{min-width:168px;letter-spacing:.14em;text-transform:uppercase}
.about-phone{font-size:1.25rem;font-weight:500;text-decoration:none;font-variant-numeric:tabular-nums;min-height:44px;display:inline-flex;align-items:center}
.about-phone:hover{text-decoration:underline}
.about-instagram{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;color:var(--ink);border-radius:50%;transition:background-color var(--t-hover,200ms) ease}
.about-instagram:hover{background:var(--sea)}

/* Handpicked homes: placeholder cards until the MLS feed is connected. */
.homes-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:36px}
.homes-head h2{margin-bottom:12px}
.homes-note{margin:0;color:var(--secondary);font-size:var(--small)}
.homes-arrows{display:flex;gap:12px;flex:none}
.homes-arrow{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:0;border-radius:50%;background:var(--ink);color:#fff;transition:background-color var(--t-hover,200ms) ease,opacity var(--t-hover,200ms) ease}
.homes-arrow:hover{background:#2c3b66}
.homes-arrow:disabled{opacity:.35;cursor:default}
.homes-track{list-style:none;margin:0;padding:4px max(var(--gutter),calc((100vw - 1680px) / 2 + var(--gutter))) 24px;display:grid;grid-auto-flow:column;grid-auto-columns:clamp(260px,24vw,380px);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--gutter),calc((100vw - 1680px) / 2 + var(--gutter)));scrollbar-width:thin;overscroll-behavior-x:contain}
.homes-track:focus-visible{outline-offset:-3px}
.home-card{scroll-snap-align:start;background:var(--paper);box-shadow:0 1px 2px rgba(31,43,77,.08),0 8px 24px rgba(31,43,77,.08)}
.home-card-photo{position:relative;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;color:rgba(31,43,77,.3);background:linear-gradient(160deg,#dde5ec 0%,#cdd8e2 100%)}
.home-card-body{display:grid;gap:12px;padding:22px 24px 26px}
.home-skel{display:block;height:14px;border-radius:2px;background:#e3e8ee}
.home-skel-price{position:absolute;left:20px;bottom:20px;width:46%;height:26px;background:rgba(255,255,255,.75)}
.home-skel-address{width:78%;height:22px;background:#d9e0e8}
.home-skel-city{width:44%}
.home-skel-facts{width:64%;margin-top:6px}
@media(max-width:760px){
 .about-contact{gap:12px 18px}
 .about-contact .about-text{min-width:0;flex:1 1 100%}
 .homes-head{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:24px}
 .homes-arrows{display:none}
 .homes-track{grid-auto-columns:78vw;gap:16px}
}
@media print{.homes{display:none}}

/* Separate pages: mark the page you are on in the menu. */
.site-header nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.4em}

/* Instagram row: placeholder tiles until her account is connected. */
.ig-head .ig-handle{display:inline-flex;align-items:center;gap:10px;margin-top:4px;font-weight:500;text-decoration:none;min-height:44px}
.ig-head .ig-handle:hover{text-decoration:underline}
.ig-track{grid-auto-columns:clamp(220px,19vw,300px)}
.ig-tile{scroll-snap-align:start;margin:0}
.ig-tile a{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;color:rgba(31,43,77,.3);background:linear-gradient(150deg,#eef2f5 0%,#dfe6ec 60%,#e9e3dc 100%);text-decoration:none;transition:filter var(--t-hover,200ms) ease}
.ig-tile a:hover{filter:brightness(.97)}
.ig-follow{margin-top:28px}
@media(max-width:760px){.ig-track{grid-auto-columns:64vw}}
@media print{.instagram{display:none}}

/* Separate pages: the first section starts right under the menu instead of after a blank band. */
body:not(.has-photo-hero) main > h1.sr + section{margin-top:0}
body:not(.has-photo-hero) main > h1.sr + section.about{padding-top:clamp(40px,5vw,88px)}

/* Homes row sits on its own tinted band so it reads as a separate section. */
.homes:not(.instagram){background:var(--sea);padding-block:clamp(64px,8vw,120px)}
@media(max-width:760px){.homes:not(.instagram){padding-block:56px}}

/* Footer on every page: navy, full width, joined to the contact section above it. */
.site-footer{margin-top:var(--section);background:var(--ink);color:var(--paper);box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax)}
main:has(> section.contact:last-child) + .site-footer{margin-top:0;border-top:1px solid rgba(255,255,255,.16)}
.site-footer .legal{color:var(--light-ink)}
.site-footer :focus-visible{outline-color:var(--accent)}
@media print{.site-footer{background:none;color:var(--ink);box-shadow:none;clip-path:none;border:0}}

/* Brokerage logos sit in the left column, under the photo and "Raised in Palos Verdes". */
.about-image .brokerage-logos{margin-top:32px;max-width:520px}

/* South Bay page: a shorter photo banner with a lighter shade so the sunset colors stay rich. */
.hero.hero-top.hero-page{min-height:clamp(480px,78svh,860px)}
.hero-page .hero-media img{object-position:50% 62%}
.hero-page .hero-media::after{background:linear-gradient(180deg,rgba(14,21,40,.58) 0%,rgba(14,21,40,.14) 32%,rgba(14,21,40,.14) 62%,rgba(14,21,40,.5) 100%)}
.hero-page + .areas{margin-top:0}
.hero-page .hero-copy{align-items:flex-end;text-align:right}
@media(max-width:760px){.hero.hero-top.hero-page{min-height:72svh}.hero-page .hero-media img{object-position:40% 60%}}

/* Buy & sell page: centered banner title, then the intro line, then the buying and selling columns. */
.hero-page.hero-center .hero-copy{align-items:center;text-align:center}
.hero-center .hero-media img{object-position:50% 45%}
.hero-page + .moving{padding-top:clamp(56px,7vw,104px)}
.hero-page + .moving .section-intro{display:block;margin-bottom:clamp(40px,5vw,72px)}
.hero-page + .moving .section-intro>p{font-size:var(--lead);line-height:1.4;max-width:44ch;color:var(--ink);margin:0}
.hero-page + .moving .section-intro .text-link{display:block;width:fit-content;margin-top:16px;font-size:var(--body)}
@media(max-width:760px){.hero-center .hero-media img{object-position:50% 45%}}
/* Buy & sell banner: title sits high in the sky rather than centered on the horizon. */
.hero.hero-top.hero-center{justify-content:flex-start;padding-top:calc(var(--header-h,var(--hh)) + clamp(40px,10vh,120px))}
@media(max-width:760px){.hero.hero-top.hero-center{padding-top:calc(var(--header-h,var(--hh)) + 32px)}}

/* Instagram reels: official Instagram embeds of Laura's latest reels. */
.ig-reels{grid-auto-columns:340px;align-items:start}
.ig-reel{scroll-snap-align:start;margin:0;position:relative;overflow:hidden}
.ig-reel blockquote.instagram-media{margin:0!important;min-width:0!important;width:100%!important;max-width:100%!important;background:var(--paper);border:1px solid rgba(31,43,77,.12)!important;border-radius:0!important;box-shadow:none!important}
.ig-reel blockquote.instagram-media a{display:flex;align-items:center;justify-content:center;min-height:420px;font-weight:500}
.ig-reel iframe{margin:0!important;min-width:0!important;width:100%!important;border-radius:0!important}
@media(max-width:760px){.ig-reels{grid-auto-columns:86vw}}

/* Hero subline (2026-11-11): Laura's second line sits under "South Bay native." at reading size */
.hero.hero-top h1 .hero-sub{margin:18px auto 0;max-width:26ch;font-size:clamp(1.5rem,1.1rem + 1.5vw,2.75rem);line-height:1.2;letter-spacing:-.01em;text-wrap:balance}
@media(max-width:760px){.hero.hero-top h1 .hero-sub{margin-top:14px;font-size:1.375rem;max-width:22ch}}

/* Client reviews (2026-11-11): Laura's own client reviews, supplied by Laura */
.reviews .section-intro{margin-bottom:clamp(36px,4vw,56px)}
.review-list{list-style:none;margin:0;padding:0;columns:3 300px;column-gap:24px}
.review-list>li{break-inside:avoid;margin:0 0 24px}
.review-card{margin:0;padding:clamp(24px,2.4vw,36px);background:var(--sea);color:var(--ink)}
.review-stars{margin:0 0 16px;max-width:none;font-size:1.125rem;line-height:1;letter-spacing:.2em;color:var(--ink)}
.review-card blockquote{margin:0}
.review-card blockquote p{margin:0 0 14px;max-width:none;font-size:var(--body);line-height:1.6}
.review-card figcaption{margin-top:22px;font-size:.9375rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.review-card figcaption span{display:block;margin-top:6px;font-size:1rem;font-weight:400;letter-spacing:0;text-transform:none;color:var(--secondary)}
.reviews-home .review-list{columns:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.reviews-home .review-list>li{margin:0}
.reviews-more{display:block;width:fit-content;margin-top:32px}
@media(max-width:900px){.reviews-home .review-list{grid-template-columns:1fr}}
@media print{.review-card{background:none;border:1px solid #999}}

/* Neighborhood events (2026-11-11): events.js fills these from events.json */
.events .section-intro{margin-bottom:clamp(28px,3vw,44px)}
.event-areas{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:clamp(24px,3vw,40px)}
.event-areas button{min-height:44px;padding:10px 16px;border:2px solid var(--ink);background:var(--paper);color:var(--ink);font:500 1rem/1.2 var(--text);cursor:pointer;transition:background-color var(--t-hover,200ms) ease,color var(--t-hover,200ms) ease}
.event-areas button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.event-areas button:is(:hover,:focus-visible):not([aria-pressed="true"]){background:var(--accent)}
.event-areas button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
.event-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,4vw,64px)}
.event{display:grid;grid-template-columns:72px minmax(0,1fr);gap:20px;align-items:start;padding:24px 0;border-top:1px solid rgba(31,43,77,.18)}
.event-date{margin:0;max-width:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:72px;height:72px;background:var(--sea);color:var(--ink);line-height:1}
.event-month{font-size:.875rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.event-day{margin-top:4px;font:500 1.875rem/1 var(--display)}
.event-title{margin:0 0 6px;font:500 1.1875rem/1.35 var(--text);letter-spacing:0}
.event-title a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.event-title a:hover{text-decoration-thickness:2px}
.event-when,.event-where,.event-source{margin:0;max-width:none;font-size:1rem;line-height:1.5}
.event-where,.event-source{color:var(--secondary)}
.event-source{margin-top:6px;font-size:.9375rem}
.events-empty{margin:0 0 8px}
.events-fallback{margin:12px 0 0;padding-left:20px;line-height:1.9}
.events-more{margin-top:24px}
.events-note{margin:20px 0 0;font-size:1rem;color:var(--secondary)}
@media(max-width:900px){.event-list{grid-template-columns:1fr}}
@media(max-width:760px){.event{grid-template-columns:60px minmax(0,1fr);gap:16px;padding:20px 0}.event-date{width:60px;height:60px}.event-day{font-size:1.5rem}.event-areas button{font-size:.9375rem;padding:10px 12px}}
@media print{.event-areas{display:none}}
