/* Editorial layout: one heading scale, clear chapters, two mirrored image compositions. */
.public-site{
 --page-gutter:var(--editorial-gap);
 --page-width:2400px;
 --heading-size:clamp(40px,3.6vw,80px);
 --body-copy:clamp(18px,1.2vw,26px);
 --section-space:clamp(80px,7.5vw,160px);
 --block-space:clamp(36px,3.5vw,72px);
 --editorial-gap:clamp(24px,2.5vw,64px);
 --copy-gap:clamp(24px,2.5vw,48px);
 --copy-leading:1.55;
}
.public-site .wrap{width:min(calc(100% - 2 * var(--page-gutter)),var(--page-width));margin-inline:auto}
.public-site main :is(.section-heading,.selector-heading,.location-heading,.ownership,.documents,.gallery-heading,.contact-grid) h2,
.public-site .intro h1{
 font-size:var(--heading-size);font-weight:400;line-height:1.1;letter-spacing:-.035em;
}
.public-site main>.chapter{padding:var(--section-space) 0;border:0;margin-block:0}
.public-site .intro{padding:var(--section-space) 0}
.public-site .intro h1{max-width:30ch;margin:0 0 var(--block-space)}
.public-site .intro-lower{grid-template-columns:1fr 1fr;gap:8%;align-items:start}
.public-site .intro .copy-intro>p{max-width:43ch}
.public-site .intro .project-facts{max-width:680px;width:100%;justify-self:end}
.public-site .intro .wide-photo{margin:var(--block-space) 0 0;width:100%}
.public-site .intro .wide-photo img{width:100%;aspect-ratio:2.35;object-fit:cover}

/* A common text lead precedes each photographic chapter. */
.public-site .houses .section-heading,.public-site .location-top{display:block;margin:0 0 var(--block-space)}
.public-site .location-heading{max-width:none}
.public-site .houses .house-intro,.public-site .location-heading .location-copy,.public-site .developer-copy.full-copy{
 font-size:var(--body-copy);display:grid;grid-template-columns:1fr 1fr;gap:var(--copy-gap);
 max-width:calc(86ch + var(--copy-gap));width:100%;margin:32px 0 0;
}
.public-site .full-copy>p,.public-site .developer-copy.full-copy>p{margin:0;max-width:none;font-size:var(--body-copy);line-height:var(--copy-leading)}
.public-site .location-heading h2{margin:0}
.public-site .location-highlights{max-width:900px;border:0;margin-top:36px;padding:0;gap:24px}
.public-site .distance-value{font-size:clamp(30px,2.25vw,46px);margin-bottom:8px}
.public-site .location-highlight h3{font-size:var(--text-small);letter-spacing:-.01em}

/* Houses: equal columns with compact captions and three facts in one row. */
.public-site .photo-frame{display:block;width:100%;overflow:hidden}
.public-site .photo-frame img{width:100%}
.public-site .house-composition{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--editorial-gap);align-items:start}
.public-site .house-one{grid-column:1/7;margin:0;padding:0}
.public-site .house-two{grid-column:7/13;margin:0;padding:0}
.public-site .house-one img,.public-site .house-two img{aspect-ratio:3/2;object-fit:cover}
.public-site .house-caption{margin-top:12px;padding-top:0;border-top:0;gap:16px;flex-wrap:wrap}
.public-site .house-caption h3{font-size:clamp(26px,2vw,40px)}
.public-site .house-caption .house-facts{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:clamp(18px,1.2vw,24px);margin:10px 0 0}
.public-site .house-facts span{white-space:nowrap}
/* Three complete image-and-copy stories; each stays together on a small screen. */
.public-site .home-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--editorial-gap);margin-top:var(--section-space)}
.public-site .home-detail{min-width:0}
.public-site .home-detail .photo-frame img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.public-site .home-detail-copy{padding-top:24px}
.public-site .home-detail h3{font-size:clamp(25px,2vw,36px);line-height:1.15;margin:0 0 16px;text-wrap:balance}
.public-site .home-detail p{font-size:var(--body-copy);line-height:var(--copy-leading);margin:0;max-width:42ch}

/* The landscape and coast form one composition, without another full-width banner. */
.public-site .location-photographs{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--editorial-gap);align-items:start}
.public-site .location-photographs figure{margin:0}
.public-site .location-photographs .landscape-photo{grid-column:1/9;position:relative}
.public-site .location-photographs .location-image{width:100%;aspect-ratio:3/2;object-fit:cover}
/* Pins stay anchored to the photographed locations, with larger touch targets. */
.public-site .location-marker{position:absolute;left:9%;top:66%;width:44px;height:44px;transform:translate(-50%,-100%);color:var(--green)}
.public-site .location-marker-toggle{position:relative;display:block;width:44px;height:44px;padding:0;border-radius:50%}
.public-site .location-pin{position:absolute;bottom:0;left:13px;display:block;width:18px;height:24px;fill:var(--paper);stroke:var(--green);stroke-width:1.5;filter:drop-shadow(0 1px 3px #18251640)}
.public-site .location-pin circle{fill:var(--green);stroke:none}
.public-site .location-logo{position:absolute;bottom:36px;left:36px;width:120px;z-index:1}
.public-site .location-logo img{display:block;width:100%;height:auto}
.public-site .location-marker-golf{left:60.5%;top:49%}
.public-site .location-marker-hunnebostrand{left:27.5%;top:22.4%}
.public-site .location-label{position:absolute;bottom:28px;left:36px;color:var(--paper);font-size:clamp(14px,1.4vw,20px);line-height:1.3;white-space:nowrap;text-shadow:0 1px 3px #18251699;z-index:1}

.public-site .location-photographs figure:last-child{grid-column:9/13;width:90%;justify-self:end;margin-top:clamp(64px,9vw,192px)}
.public-site .location-photographs figure:last-child img{width:100%;aspect-ratio:3/4;object-fit:cover}

/* Functional sections are quiet, level and separate from the photographic story. */
.public-site .selector-heading{margin:0 0 var(--block-space)}
.public-site .selector-toolbar{border-top:0}
.public-site .map-layout{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(32px,5vw,120px);padding-top:var(--block-space)}
.public-site .map-detail .detail-title h3{font-size:clamp(28px,2.2vw,44px)}
.public-site .selected-home-price{font-size:clamp(28px,2.1vw,44px)}
.public-site .map-detail .detail-image{aspect-ratio:2/1}
.public-site .ownership{display:block}
.public-site .ownership>h2{margin:0 0 24px}
.public-site .ownership>[data-copy="ownership-intro"]{font-size:var(--body-copy);max-width:54ch;margin:0 0 var(--block-space);line-height:var(--copy-leading)}
.public-site .ownership-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--editorial-gap);align-items:start}
.public-site .ownership-image{grid-column:1/7}
.public-site .ownership-image img{width:100%;aspect-ratio:4/5;object-fit:cover}
.public-site .ownership-copy{grid-column:7/13;min-width:0}
.public-site .ownership-topic h3{font-size:clamp(22px,1.65vw,34px)}
.public-site .ownership-topic .topic-toggle{padding:24px 0}
.public-site .ownership-topic:first-child .topic-toggle{padding-top:0}
.public-site .ownership-topic:first-child{border-top:0}
.public-site .documents{display:block}
.public-site .documents>h2{margin-bottom:var(--block-space)}
.public-site .documents>div{width:100%;max-width:none;font-size:var(--body-copy);border-top:0}
.public-site .documents a{font-size:var(--body-copy);padding:20px 0}
.public-site .documents a:first-child{border-top:1px solid var(--line)}
.public-site .developer-section .section-heading{max-width:none;margin:0}
.public-site .project-roles{font-size:var(--body-copy);width:100%;max-width:none;margin-top:var(--block-space)}
.public-site .project-roles>div{font-size:var(--body-copy);line-height:1.5;padding:20px 0}
.public-site .project-roles>div{align-items:center;min-height:112px}
.public-site .project-roles dd{width:clamp(180px,22vw,240px);flex-shrink:0}
.public-site .partner-logo-link{display:flex;align-items:center;min-height:64px}
.public-site .partner-logo{display:block;width:100%;height:auto;max-height:80px;object-fit:contain;object-position:left center}
.public-site .partner-logo-brick{max-width:180px}
.public-site .partner-logo-kami{max-width:210px}
@media(max-width:760px){
 .public-site .project-roles>div{min-height:96px;gap:16px}
 .public-site .project-roles dd{width:52%}
 .public-site .partner-logo-brick{max-width:160px}
}

.public-site .viewings .section-heading{display:block}
.public-site #viewing-list{margin-top:var(--block-space)}

/* The gallery repeats the large-left/small-right composition before contact. */
.public-site .gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:var(--block-space)}
.public-site .gallery-preview{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--editorial-gap);align-items:start}
.public-site .gallery-preview>button:first-child{grid-column:1/9}
.public-site .gallery-preview>button:first-child img{aspect-ratio:3/2}
.public-site .gallery-preview>button:nth-child(2){grid-column:10/13;margin-top:clamp(64px,9vw,192px)}
.public-site .gallery-preview>button:nth-child(2) img{aspect-ratio:3/4}
.public-site .contact{padding:var(--section-space) 0 32px}
.public-site .contact-grid{grid-template-columns:1fr 1fr;gap:var(--section-space) 8%}
.public-site .contact-grid h2{margin-bottom:var(--block-space)}
.public-site .broker-column>h2{margin-bottom:24px}
.public-site .broker-column>[data-copy="contact-intro"]{font-size:var(--body-copy);line-height:var(--copy-leading);max-width:42ch;margin:0 0 var(--block-space)}
.public-site .footer-wordmark{width:58%;max-width:900px;margin:var(--section-space) auto 64px 0}

/* Tablet introduction: keep the headline break and align facts with the full content width. */
@media(max-width:1100px){
 .public-site .intro h1{max-width:none}
 .public-site .intro-lower{grid-template-columns:minmax(0,1fr);gap:32px}
 .public-site .intro .project-facts{max-width:none;justify-self:stretch}
}
@media(min-width:600px) and (max-width:1100px){
 .public-site .intro h1 br{display:initial}
}

@media(max-width:900px){
 .public-site .map-layout{grid-template-columns:1fr;gap:32px}
 .public-site .house-caption{display:block}
 .public-site .contact-grid{grid-template-columns:1fr;gap:64px}
 .public-site .contact-grid>form{order:0}.public-site .broker-column{order:1}
}
@media(max-width:760px){
 .public-site{--page-gutter:20px;--heading-size:36px;--body-copy:17px;--section-space:64px;--block-space:32px;--editorial-gap:20px;--copy-gap:20px}
 .public-site .intro-lower{grid-template-columns:1fr;gap:32px}
 .public-site .intro h1{max-width:none}
 .public-site .intro .wide-photo img{aspect-ratio:3/2}
 .public-site .houses .house-intro,.public-site .location-heading .location-copy,.public-site .developer-copy.full-copy{grid-template-columns:1fr;margin-top:24px}
 .public-site .house-composition{grid-template-columns:1fr;gap:40px}
 .public-site .house-one,.public-site .house-two{grid-column:auto;margin:0}
 .public-site .house-caption{display:block}
 .public-site .house-caption .house-facts{font-size:clamp(15px,4.1vw,18px);column-gap:12px}
 .public-site .home-details{grid-template-columns:1fr;gap:44px}
 .public-site .home-detail .photo-frame img{aspect-ratio:3/2}
 .public-site .home-detail-copy{padding-top:20px}
 .public-site .home-detail h3{font-size:28px;margin-bottom:12px;text-wrap:initial}
 .public-site .home-detail p{max-width:none}
 .public-site .location-photographs,.public-site .gallery-preview{grid-template-columns:1fr;gap:24px}
 .public-site .location-photographs .landscape-photo,.public-site .gallery-preview>button:first-child{grid-column:auto}
 .public-site .location-photographs figure:last-child,.public-site .gallery-preview>button:nth-child(2){grid-column:auto;width:64%;margin:0 0 0 auto}
 .public-site .location-photographs figure:last-child{width:74%}
 .public-site .location-photographs figure:last-child img,.public-site .gallery-preview>button:nth-child(2) img{aspect-ratio:4/3}
 .public-site .location-highlights{margin-top:28px;gap:12px}
 .public-site .location-highlight h3{font-size:13px}
 .public-site .map-layout{grid-template-columns:1fr;gap:32px}
 .public-site .ownership-layout{grid-template-columns:1fr;gap:32px}
 .public-site .ownership-image,.public-site .ownership-copy{grid-column:auto}
 .public-site .gallery-heading{gap:16px;flex-wrap:wrap}
 .public-site .gallery-heading .line-link{font-size:14px}
 .public-site .footer-wordmark{width:72%;margin-bottom:40px}
}
@media(prefers-reduced-motion:reduce){.public-site .photo-button img{transition:none}}

/* House pair: shared rows so both captions sit on one line, images bottom-aligned above. */
@media(min-width:761px){.public-site .house-composition{grid-template-rows:auto auto;row-gap:0}.public-site .house-one,.public-site .house-two{display:grid;grid-row:span 2;grid-template-rows:subgrid;margin:0}.public-site .house-composition .photo-frame{align-self:end}.public-site .house-composition .house-caption{align-self:start}}

/* Place line under the hero: region, municipality, coordinates (coordinates hidden on mobile). Tighter than the page gutter: same distance to the hero as to the edges (top padding minus the half-leading above the capitals). Mobile keeps the page gutter. */
.public-site .hero-meta{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;padding:calc(16px - .39em) 16px 0;font-size:var(--text-small);font-weight:500;line-height:1.5}
.public-site .hero-coords{text-align:right}
@media(max-width:760px){.public-site .hero-meta{display:flex;justify-content:space-between;padding:12px var(--page-gutter) 0}.public-site .hero-coords{display:none}}

/* Progressive enhancement: content is visible unless the scroll observer is active. */
.public-site .scroll-reveal-pending{opacity:0}
.public-site .scroll-reveal-enter{animation:content-reveal 1200ms ease-out both}
@keyframes content-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){
 .public-site :is(.scroll-reveal-pending,.scroll-reveal-enter){opacity:1;animation:none;transform:none}
}
@media print{
 .public-site :is(.scroll-reveal-pending,.scroll-reveal-enter){opacity:1;animation:none;transform:none}
}

/* Approved editorial layout, 2026-10-07. */

@media(min-width:761px){
 .public-site .home-details{grid-template-columns:1fr;gap:100px}
 .public-site .home-detail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--editorial-gap);align-items:center}
 .public-site .home-detail>.photo-frame{grid-column:2;grid-row:1;width:100%;justify-self:end}
 .public-site .home-detail>.home-detail-copy{grid-column:1;grid-row:1;max-width:440px;padding:0}
 .public-site .home-detail:nth-child(even)>.photo-frame{grid-column:1;justify-self:start}
 .public-site .home-detail:nth-child(even)>.home-detail-copy{grid-column:2;justify-self:end}
 .public-site .home-detail .photo-frame img{aspect-ratio:3/2}
 .public-site .home-detail h3{font-size:clamp(30px,2.65vw,40px);line-height:1.14;margin:0 0 24px;text-wrap:balance}
 .public-site .home-detail p{font-family:inherit;font-size:var(--body-copy);line-height:var(--copy-leading);max-width:43ch}
}

/* Location photographs and spacious gallery. */
.public-site .location-photographs>figure:nth-child(2){grid-column:9/13;width:90%;justify-self:end;margin-top:clamp(64px,9vw,192px)}
.public-site .location-photographs>figure:nth-child(2) img{width:100%;aspect-ratio:3/4;object-fit:cover}
.public-site .location-photographs>.green-photo:last-child{grid-column:3/10;width:100%;justify-self:start;margin:24px 0 0}
.public-site .location-photographs>.green-photo:last-child img{width:100%;aspect-ratio:1.68;object-fit:cover}
#gallery-dialog{width:min(1760px,calc(100vw - 32px));max-width:none;max-height:94svh;padding:44px 56px 18px;overflow:auto}
#gallery-dialog .close{position:absolute;top:5px;right:8px;float:none;margin:0;border:0;background:transparent;width:38px;height:38px}
#gallery-dialog figure{margin:0}
#gallery-dialog .gallery-stage{position:relative}
#gallery-image{display:block;width:100%;height:calc(94svh - 102px);object-fit:contain}
#gallery-dialog .gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:56px;padding:8px;border:0;background:transparent;color:var(--ink);cursor:pointer}
#gallery-prev{left:-50px}#gallery-next{right:-50px}
#gallery-dialog .gallery-arrow svg{width:28px;height:24px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
#gallery-dialog .gallery-arrow:hover{opacity:.6}
#gallery-dialog .gallery-arrow:focus-visible{outline:1px solid currentColor;outline-offset:2px}
#gallery-dialog .gallery-meta{display:flex;justify-content:flex-end;align-items:baseline;gap:24px;margin-top:14px;font-size:14px;line-height:1.4;text-align:right}
#gallery-caption{font-size:inherit;padding:0}
#gallery-position{flex-shrink:0;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:760px){
 .public-site .location-photographs>figure:nth-child(2){grid-column:1;width:74%;margin:0 0 0 auto}
 .public-site .location-photographs>figure:nth-child(2) img{aspect-ratio:4/3}
 .public-site .location-photographs>.green-photo:last-child{grid-column:1;width:88%;margin:0;justify-self:start}
 #gallery-dialog{width:calc(100vw - 16px);padding:44px 8px 16px}
 #gallery-image{height:auto;max-height:calc(84svh - 102px)}
 #gallery-dialog .gallery-arrow{width:44px;height:44px;background:var(--paper);border-radius:50%;opacity:.9}
 #gallery-prev{left:0}#gallery-next{right:0}
 #gallery-dialog .gallery-meta{font-size:12px;gap:16px;margin-top:14px}
}

.public-site .intro .wide-photo{width:100%;max-width:none;margin-left:0;margin-right:0}
.public-site .intro .wide-photo img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}

.public-site .houses .house-intro,.public-site .location-heading .location-copy,.public-site .developer-copy.full-copy{display:block;max-width:43ch}
.public-site .houses .house-intro>p+ p,.public-site .location-heading .location-copy>p+ p,.public-site .developer-copy.full-copy>p+ p{margin-top:1.25em}
