/* Coastal postcards: real photography, friendly type, crisp ink outlines. */
:root { --sunshine:#ffcd62; --peach:#ffd7b8; --lagoon:#bceee9; }
h1,h2,h3,.choice-caption strong { font-variation-settings:normal; font-weight:800; }
.brand-lockup__name { font-family:"Manrope",var(--body); font-weight:800; letter-spacing:-.035em; }
.eyebrow { font-weight:700; letter-spacing:.055em; }
.site-header { border-top:5px solid var(--aqua); border-bottom:2px solid var(--ink); }
.header-contact,.button-solid,.primary-link { border:1.5px solid var(--ink); border-radius:12px; box-shadow:2px 2px 0 var(--ink); }
.header-contact:hover,.button-solid:hover,.primary-link:hover { background:var(--deep); border-color:var(--ink); box-shadow:1px 1px 0 var(--ink); }
.mobile-menu summary { border:2px solid var(--ink); border-radius:12px; background:var(--sunshine); font-weight:650; }
.mobile-menu nav { border:2px solid var(--ink); border-radius:15px; }
.region-intro-tools { display:flex; align-items:center; gap:20px; }
.area-jump { display:inline-flex; gap:16px; align-items:center; font-size:.875rem; font-weight:650; border:2px solid var(--ink); border-radius:100px; padding:10px 16px; background:var(--sunshine); box-shadow:3px 3px 0 var(--ink); }
.area-jump:hover { background:var(--peach); }
.regional-home-photo,.property-hero { border:2px solid var(--ink); border-radius:20px; box-shadow:6px 6px 0 var(--lagoon); }
.regional-photo-count { border:2px solid var(--ink); border-radius:12px; background:var(--sunshine); transform:rotate(2deg); }
.regional-photo-tabs button { border-radius:10px; }
.regional-photo-tabs button[aria-pressed=true] { border:2px solid var(--sea); }
.regional-photo-tabs button img { border-radius:6px; }
.regional-facts dd,.fact-strip strong { font-family:var(--display); font-weight:650; }
.region-intro h1 { font-size:clamp(2rem,3.5vw,3.15rem); }
.regional-home-heading h2 { font-size:clamp(2.1rem,3.1vw,3rem); }
.property-masthead h1 { font-size:clamp(2.6rem,4.4vw,4.5rem); line-height:1.12; }
.property-nav { border-bottom:2px solid var(--ink); }
.property-nav .property-nav-inquiry { border-radius:12px; }
.gallery-collage { border-radius:18px; border:2px solid var(--ink); gap:5px; background:var(--ink); }
.gallery-filters button { border-radius:100px; }
.gallery-mobile-filter select { border-radius:10px; }
.tour-group-photo { border:2px solid var(--ink); border-radius:12px; overflow:hidden; }
.property-film__frame { border:2px solid var(--ink); border-radius:20px; box-shadow:5px 5px 0 var(--lagoon); }
.location-map iframe { border:2px solid var(--ink); border-radius:20px; box-shadow:5px 5px 0 var(--lagoon); }
.location-section { border-top:2px solid var(--ink); background:var(--foam); }
#area-map { scroll-margin-top:166px; }
.distance-list button[aria-pressed=true] { padding-left:12px; padding-right:12px; background:var(--lagoon); border-radius:10px; color:var(--ink); }
.regional-contact>img,.inquiry-person img { border:3px solid var(--paper); outline:2px solid var(--ink); }
.inquiry-form { border:2px solid var(--ink); border-radius:22px; box-shadow:6px 6px 0 #d9bc8e; }
.inquiry-form input,.inquiry-form textarea,.inquiry-form select { border-radius:9px; }
.about-profile { background:var(--shallows); }
.about-profile figure { border:7px solid var(--paper); outline:2px solid var(--ink); border-radius:22px; transform:rotate(2deg); box-shadow:8px 8px 0 var(--lagoon); }
.about-home-card,.about-location-card { border:2px solid var(--ink); border-radius:18px; box-shadow:4px 4px 0 var(--lagoon); }
.about-home-card>img,.about-location-card>img { border-radius:11px; }
.site-footer { border-top:5px solid var(--aqua); }
/* State cutouts stay true to their geographic outlines. */
.location-welcome { background:var(--shallows); }
.welcome-header { border-top:5px solid var(--aqua); min-height:78px; padding:16px 5vw; }
.welcome-main { width:min(1020px,90vw); padding-top:10px; }
.welcome-copy { position:relative; width:fit-content; margin:0 auto; padding:6px 130px; }
.welcome-copy h1 { font-family:var(--display); font-size:clamp(2rem,3.7vw,3.6rem); font-weight:650; letter-spacing:-.025em; }
.welcome-copy h1>span { display:block; }
.welcome-copy p { color:var(--ink); font-size:1.0625rem; margin-top:14px; }
.welcome-mascot { position:absolute; width:145px; height:145px; right:-24px; top:6px; object-fit:contain; transform:rotate(9deg); }
.location-choices { gap:28px; width:min(790px,100%); margin-top:26px; padding:7px; }
.location-choice { border:2px solid var(--ink); border-radius:28px; padding:16px 30px 22px; background:var(--foam); box-shadow:6px 6px 0 var(--ink); transform:rotate(-1.5deg); }
.location-choice+.location-choice { border:2px solid var(--ink); border-radius:28px; transform:rotate(1.5deg); background:#fff0de; }
.state-photo { height:250px; filter:drop-shadow(3px 4px 0 #084c6144); }
.state-border { stroke:var(--ink); stroke-width:2.4; }
.location-choice:last-child .state-photo { width:min(100%,240px); }
.choice-caption { margin-top:8px; }
.choice-caption strong { font-family:var(--display); font-size:2.25rem; }
.choice-city { color:var(--ink); }
.choice-arrow { background:var(--sunshine); border:2px solid var(--ink); width:42px; height:42px; color:var(--ink); }
.choice-action { border-top:1px dashed var(--ink); font-weight:650; color:var(--ink); }
.welcome-footer { border-top:2px solid var(--ink); background:var(--sand); margin-top:20px; }
/* Real postcards share one selection with the neighborhood map. */
.neighborhood-guide { padding:40px max(5vw,calc((100vw - 1320px)/2)) 24px; background:var(--lagoon); color:var(--ink); border-top:2px solid var(--ink); scroll-margin-top:100px; }
.neighborhood-guide--augusta { background:#e5efdF; }
.neighborhood-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:22px; }
.neighborhood-heading .eyebrow { display:inline-block; margin:0 0 12px; padding:5px 12px; background:var(--sunshine); border:1.5px solid var(--ink); border-radius:100px; transform:rotate(-2deg); }
.neighborhood-heading h2 { font-size:clamp(2rem,3vw,3rem); line-height:1.15; }
.neighborhood-heading p:not(.eyebrow) { margin-top:12px; font-size:1rem; max-width:54ch; }
.coastal-mascot { width:116px; height:116px; object-fit:contain; flex-shrink:0; }
.postcard-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; padding:8px 4px 24px; }
.postcard { min-width:0; text-align:left; padding:9px; background:var(--foam); border:2px solid var(--ink); border-radius:16px; color:var(--ink); box-shadow:3px 4px 0 #084c6133; transition:box-shadow 150ms; }
.postcard--1 { transform:rotate(-1deg); }.postcard--2 { transform:rotate(1deg); }.postcard--3 { transform:rotate(-.75deg); }
.postcard[aria-pressed=true] { box-shadow:4px 5px 0 var(--sea); }
.postcard:hover { box-shadow:4px 5px 0 #084c6180; }
.postcard-photo { display:block; position:relative; border-radius:9px; overflow:hidden; aspect-ratio:1.8; }
.postcard-photo>img { display:block; width:100%; height:100%; object-fit:cover; }
.postcard-tag { position:absolute; left:10px; top:10px; padding:5px 10px; border:1px solid var(--ink); border-radius:100px; background:var(--sunshine); font-size:.8125rem; font-weight:650; }
.postcard--2 .postcard-tag { background:var(--lagoon); }.postcard--3 .postcard-tag { background:var(--peach); }
.postcard-caption { display:flex; gap:10px; align-items:center; padding:14px 3px 5px; }
.postcard-caption strong { flex:1; font-family:var(--display); font-size:clamp(1rem,1.6vw,1.35rem); font-weight:800; line-height:1.3; }
.postcard-number { font-size:.8125rem; font-weight:700; color:var(--sea); }
.postcard-open { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; border:1px solid var(--ink); border-radius:50%; font-size:1rem; }
.postcard[aria-pressed=true] .postcard-open { background:var(--sea); color:white; }
.neighborhood-selection { display:grid; grid-template-columns:.85fr 1.35fr; gap:30px; background:var(--foam); border:1.5px solid var(--ink); border-radius:18px; padding:26px; }
.neighborhood-place-detail { min-width:0; align-self:center; }
.neighborhood-place-detail h3 { font-size:clamp(1.45rem,2vw,2rem); line-height:1.2; }
.neighborhood-place-detail p { font-size:1rem; line-height:1.6; margin-top:12px; }
.neighborhood-place-detail .eyebrow { margin-top:0; margin-bottom:10px; font-size:.8125rem; }
.neighborhood-place-detail .neighborhood-map-label { font-size:.875rem; color:var(--muted); margin-top:10px; }
.neighborhood-place-links { display:flex; align-items:center; flex-wrap:wrap; gap:10px 20px; margin-top:20px; }
.neighborhood-place-links .button-solid { width:100%; justify-content:space-between; padding:12px 15px; gap:14px; }
.neighborhood-place-links .text-button { min-height:44px; font-size:.875rem; padding:8px 0; background:transparent; cursor:pointer; }
.neighborhood-home-note { padding-top:18px; border-top:1px solid var(--line); }
.neighborhood-home-note a { font-size:.875rem; text-decoration:underline; text-underline-offset:4px; }
.neighborhood-place-detail .map-location-note { font-size:.8125rem; color:var(--muted); }
.neighborhood-map-shell { position:relative; align-self:stretch; min-width:0; border:1.5px solid var(--ink); border-radius:13px; overflow:hidden; background:#e7eeea; display:flex; flex-direction:column; }
.neighborhood-map { height:365px; min-height:300px; flex:1; z-index:0; font-family:var(--body); }
.map-loading { position:absolute; inset:40% 20px auto; text-align:center; background:var(--foam); padding:12px; font-size:.875rem; z-index:1; pointer-events:none; }
.map-legend { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:8px 12px; border-top:1px solid var(--line); background:white; font-size:.875rem; }
.map-legend>span { display:flex; gap:8px; align-items:center; }
.map-legend b { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; background:var(--sea); color:#fff; }
.map-legend button { min-height:44px; text-decoration:underline; text-underline-offset:4px; background:transparent; font-size:.8125rem; }
.neighborhood-pin { display:grid; place-items:center; background:white; color:var(--ink); border:2px solid var(--ink); border-radius:50%; font:800 15px/1 var(--body); box-shadow:0 2px 3px #0003; }
.neighborhood-pin--home { background:var(--sea); color:white; }
.neighborhood-pin--selected { background:var(--sunshine); border-width:3px; box-shadow:0 0 0 4px #ffcd6255; }
.neighborhood-map .leaflet-tooltip { font-family:var(--body); font-size:.8125rem; color:var(--ink); }
.neighborhood-map .leaflet-control-attribution { font:12px/1.4 var(--body); padding:2px 5px; }
.neighborhood-map .leaflet-bar a { width:36px; height:36px; line-height:36px; color:var(--ink); }
.neighborhood-resources { display:flex; gap:32px; align-items:flex-start; margin-top:16px; }
.neighborhood-resources details { flex:1; min-width:0; font-size:.8125rem; color:var(--muted); margin:0; }
.neighborhood-resources summary { width:fit-content; min-height:44px; padding:12px 0; cursor:pointer; }
.neighborhood-resources ul { padding-left:18px; margin:0; }
.neighborhood-resources li { padding:4px 0; }
.neighborhood-resources a { text-decoration:underline; text-underline-offset:3px; }
.neighborhood-more a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:36px; }
.postcard-detail-credit a { text-decoration:underline; text-underline-offset:3px; }
/* Native dialog provides Escape, focus containment and return to the postcard. */
body:has(.postcard-dialog[open]) { overflow:hidden; }
.postcard-dialog { width:min(900px,92vw); max-height:90svh; padding:0; margin:auto; border:2px solid var(--ink); border-radius:24px; overflow:auto; background:var(--foam); color:var(--ink); box-shadow:8px 8px 0 #042d3970; }
.postcard-dialog::backdrop { background:#052f3bc9; }
.postcard-dialog-content { position:relative; }
.postcard-close { position:absolute; top:14px; right:14px; width:44px; height:44px; border:2px solid var(--ink); border-radius:50%; background:var(--sunshine); color:var(--ink); font-size:1.8rem; z-index:2; display:grid; place-items:center; line-height:1; }
.postcard-detail-photo { display:block; width:100%; height:auto; max-height:390px; aspect-ratio:1.9; object-fit:cover; border-bottom:2px solid var(--ink); }
.postcard-detail-copy { padding:24px 30px; }
.postcard-detail-copy .eyebrow { margin:0 0 8px; }
.postcard-detail-copy h3 { font-size:clamp(1.8rem,3vw,2.5rem); line-height:1.15; }
.postcard-detail-copy>p:not(.eyebrow):not(.postcard-detail-credit) { margin:14px 0 0; font-size:1rem; }
.postcard-detail-links { display:flex; align-items:center; flex-wrap:wrap; gap:20px; margin-top:20px; }
.postcard-detail-links .button-solid { gap:20px; }
.postcard-detail-links .text-button { font-size:.875rem; }
.postcard-detail-credit { font-size:.75rem; color:var(--muted); margin:22px 0 0; }
.postcard-pagination { display:flex; align-items:center; justify-content:space-between; gap:20px; border-top:1px dashed var(--ink); margin-top:18px; padding-top:14px; font-size:.875rem; }
.postcard-pagination button { display:flex; align-items:center; gap:12px; min-height:44px; padding:8px 12px; border:1.5px solid var(--ink); border-radius:10px; background:var(--paper); }
.postcard-pagination button:hover { background:var(--lagoon); }
.postcard-pagination>span { white-space:nowrap; }

/* Shared finishing details. */
.brand-lockup__crab,.footer-mark .brand-lockup__crab { width:58px; height:58px; filter:none; }
.brand-lockup--inverse .brand-lockup__crab { filter:none; }
.header-nav a[aria-current],.mobile-menu a[aria-current] { text-decoration:underline; text-underline-offset:6px; font-weight:700; }
.lightbox-dialog :focus-visible { outline-color:var(--sunshine); }
.lightbox-dialog .lightbox-title { font-family:var(--body); font-weight:650; letter-spacing:0; }
.regional-facts dd,.fact-strip strong { font-family:var(--body); font-weight:700; }
.rental-confirmation,.rental-suite-note { font-size:.875rem; line-height:1.55; margin-top:16px; color:var(--muted); }
.rental-confirmation a,.rental-suite-note a { text-decoration:underline; text-underline-offset:4px; color:var(--sea); }
.rental-suite-note { margin-top:8px; }
.tour-section { padding:0 4.5vw 32px; background:var(--paper); }
.room-details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.room-details summary { display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:66px; cursor:pointer; font-family:var(--display); font-size:1.2rem; font-weight:800; padding:12px 0; list-style:none; }
.room-details summary::-webkit-details-marker { display:none; }
.room-details-hint { display:flex; gap:18px; align-items:center; font-family:var(--body); font-size:.875rem; font-weight:500; }
.room-details-hint>span { font-size:1.5rem; }
.room-details[open] .room-details-hint>span { transform:rotate(45deg); }
.room-details .tour-group-copy h3 { font-family:var(--body); font-weight:700; }
.room-details .tour-group { padding:20px 0; }
.inquiry-form { box-shadow:3px 4px 0 #d9bc8e; }
.inquiry-form :disabled { opacity:.65; cursor:wait; }
.about-name h1 { font-size:clamp(2.5rem,4.5vw,4.2rem); line-height:1.15; }
.state-city-pin circle:first-child { fill:var(--sunshine); stroke:var(--ink); stroke-width:2; }
.state-city-pin circle:last-child { fill:var(--ink); }
@media(max-width:900px) {
  .postcard-board { gap:15px; }
  .postcard-caption { gap:8px; }.postcard-number { display:none; }
  .postcard-caption strong { font-size:1.0625rem; }
  .neighborhood-selection { padding:20px; gap:20px; grid-template-columns:1fr 1.15fr; }
  .map-legend { flex-wrap:wrap; }
}
@media(max-width:760px) {
  .brand-lockup__crab { width:43px; height:43px; }
  .footer-mark .brand-lockup__crab { width:52px; height:52px; }
  .neighborhood-guide { padding:30px 5vw 16px; scroll-margin-top:140px; }
  .neighborhood-heading { gap:12px; margin-bottom:14px; align-items:flex-start; }
  .neighborhood-heading h2 { font-size:clamp(1.8rem,7vw,2.3rem); }
  .neighborhood-heading .eyebrow { font-size:.8125rem; }
  .coastal-mascot { width:72px; height:72px; margin-top:8px; }
  .neighborhood-heading p:not(.eyebrow) { font-size:.9375rem; }
  .postcard-board { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:16px; padding:8px 5px 18px; scroll-snap-type:x proximity; scrollbar-width:thin; margin-right:-5vw; padding-right:5vw; }
  .postcard { flex:0 0 76%; padding:8px; scroll-snap-align:start; }
  .postcard-photo { aspect-ratio:1.7; }
  .postcard-tag { font-size:.8125rem; }
  .postcard-caption { padding:12px 3px 4px; }
  .postcard-caption strong { font-size:1.125rem; }.postcard-number { display:block; }
  .neighborhood-selection { display:flex; flex-direction:column; padding:18px; gap:20px; }
  .neighborhood-place-detail h3 { font-size:1.6rem; }
  .neighborhood-map { height:320px; min-height:320px; }
  .neighborhood-map-shell { width:100%; }
  .map-legend { gap:6px; padding:6px 10px; font-size:.8125rem; }
  .neighborhood-resources { flex-direction:column; gap:0; }
  .neighborhood-resources details { width:100%; }
  .postcard-dialog { width:94vw; border-radius:18px; max-height:92svh; }
  .postcard-detail-photo { max-height:320px; aspect-ratio:1.5; }
  .postcard-detail-copy { padding:20px 18px; }
  .postcard-detail-copy h3 { font-size:1.5rem; }
  .postcard-pagination { gap:10px; }.postcard-pagination button { padding:8px; }
  #area-map { scroll-margin-top:150px; }
  .tour-section { padding:0 5vw 24px; }
  .rental-confirmation,.rental-suite-note { font-size:.875rem; margin-top:12px; }
  .about-name h1 { font-size:clamp(2.15rem,9vw,3rem); }
}
@media(prefers-reduced-motion:reduce) { .postcard { transition:none; } }

/* Availability and a choice of local guides for California's two homes. */
.rental-availability { display:flex; flex-wrap:wrap; align-items:center; gap:9px 14px; margin:22px 0 4px; }
.rental-availability strong { font-size:1.28rem; color:var(--ink); font-family:var(--display); }
.rental-availability>span:last-child { flex-basis:100%; font-size:.9rem; color:var(--muted); }
.availability-badge { display:inline-flex; align-items:center; gap:7px; padding:5px 11px; border:1px solid #176957; border-radius:20px; color:#145d4c; background:#e3f2e6; font-size:.8125rem; font-weight:700; }
.availability-badge::before { content:''; width:7px; height:7px; border-radius:50%; background:currentColor; }
.rental-availability--card { margin:0 0 20px; }
.neighborhood-home-picker { display:flex; gap:12px; margin:0 0 28px; }
.neighborhood-home-picker button { text-align:left; padding:12px 20px; border:1.5px solid var(--ink); border-radius:12px; background:#fffaf1; color:var(--ink); font:800 1rem var(--display); cursor:pointer; }
.neighborhood-home-picker button span { display:block; font:400 .8125rem var(--body); margin-top:4px; }
.neighborhood-home-picker button[aria-pressed=true] { background:var(--ink); color:#fffaf1; }
@media(max-width:760px) { .neighborhood-home-picker button { flex:1; padding:12px; } }

@media(max-width:760px) {
  .region-intro { display:block; padding:26px 5vw 14px; }
  .region-intro h1 { font-size:clamp(2rem,8vw,3rem); max-width:15ch; }
  .region-intro-tools { margin-top:18px; justify-content:space-between; gap:16px; }
  .region-intro .area-jump { white-space:nowrap; }
  .regional-home { grid-template-columns:minmax(0,1fr); }
  .regional-home>* { min-width:0; }
  .regional-actions .button-solid { min-width:140px; }
}

.postcard-dialog .postcard-detail-photo { object-fit:contain; aspect-ratio:auto; max-height:60svh; background:#f5eee1; }
