@font-face{font-family:Manrope;src:url('assets/fonts/manrope-latin.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
:root{--ink:#082040;--blue:#082040;--aqua:#3088c0;--paper:#fafbf9;--mist:#eaf2f8;--line:#d9e3eb;--muted:#55667b;--font:Manrope,Arial,sans-serif;--page:1264px;--gutter:clamp(24px,5.5vw,88px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.055em;line-height:1.07;text-wrap:balance}h2{font-size:clamp(36px,4.15vw,62px)}h3{font-size:25px}p{text-wrap:pretty}button,input,textarea,select{color:inherit}button{border:0}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3088c0;outline-offset:5px}::selection{background:#cde8f8;color:var(--ink)}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.icon{width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.section-wrap{width:min(var(--page),calc(100% - var(--gutter)*2));margin-inline:auto}.section-kicker{font-size:13px;font-weight:600;letter-spacing:.01em;margin-bottom:24px;display:flex;align-items:center;gap:12px}.section-kicker:before{content:'';width:18px;height:1px;background:currentColor}.button{display:inline-flex;align-items:center;justify-content:center;gap:27px;min-height:54px;padding:16px 24px;border-radius:3px;font-size:13px;font-weight:700;line-height:1.4;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button:active{transform:translateY(0)}.button-blue{background:var(--blue);color:white}.button-blue:hover{background:#17466f}.button-white{background:var(--paper);color:var(--blue)}.button-white:hover{background:#e7f4fc}.text-link{display:inline-flex;align-items:center;gap:20px;font-size:13px;font-weight:700;line-height:1.5;padding-block:13px;border-bottom:1px solid currentColor}.text-link .icon{transition:transform .2s}.text-link:hover .icon{transform:translateX(4px)}.skip-link{position:fixed;left:20px;top:10px;transform:translateY(-150%);padding:12px 22px;background:white;z-index:50}.skip-link:focus{transform:none}
/* The ceramic rim: a quiet, useful navigation. */
.site-header{height:96px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding-inline:var(--gutter);background:var(--paper);position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:13px;flex-shrink:0}.brand-mark{position:relative;font-size:40px;font-weight:600;letter-spacing:-9px;line-height:1;width:49px;height:58px}.brand-mark>span{font-weight:400}.brand-mark>svg{position:absolute;left:0;bottom:1px;width:42px;height:19px;stroke:currentColor;stroke-width:2;fill:none}.brand-name{font-size:17px;letter-spacing:-.6px;font-weight:700;line-height:1.5}.brand-name small{display:block;font-size:10px;font-weight:500;letter-spacing:.045em}.main-nav{display:flex;align-items:center;gap:30px}.main-nav>a{font-size:12px;font-weight:600;position:relative;padding-block:12px}.main-nav>a:after{content:'';position:absolute;bottom:5px;height:1px;background:var(--blue);left:0;right:100%;transition:right .2s}.main-nav>a:hover:after{right:0}.nav-cta{min-height:45px;font-size:11px;padding:13px 17px;gap:18px}.nav-cta .icon{width:18px;height:18px}.menu-toggle{display:none}
/* Water is the first image, not a decorative afterthought. */
.hero{position:relative;isolation:isolate;min-height:690px;height:calc(100svh - 96px);max-height:960px;overflow:hidden;background:#257c8d;color:white}.hero-image{position:absolute;z-index:-3;width:100%;height:100%;object-position:center 58%;animation:arrive 1.5s ease-out both}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,38,44,.66),rgba(7,38,44,.17) 64%,rgba(7,38,44,.04)),linear-gradient(0deg,rgba(5,39,46,.5),transparent 35%)}.hero-content{padding:clamp(70px,9vh,130px) var(--gutter) 110px;max-width:1000px}.hero-location{font-size:13px;display:flex;align-items:center;gap:10px;font-weight:500;margin-bottom:35px}.location-dot{width:7px;height:7px;border-radius:50%;background:#a8edeb;box-shadow:0 0 0 5px #a8edeb26}.hero h1{font-size:clamp(76px,8.8vw,142px);font-weight:500;letter-spacing:-.072em;line-height:.99;margin-left:-6px}.hero-description{font-size:15px;line-height:1.7;margin:28px 0 28px;max-width:390px}.hero-film{position:absolute;right:var(--gutter);bottom:105px;width:184px;display:block;transform:rotate(3deg);transition:transform .3s;background:var(--paper);color:var(--ink);box-shadow:0 12px 40px #09262f40;padding:7px 7px 0}.hero-film:hover{transform:rotate(0deg) translateY(-5px)}.film-picture{display:block;position:relative;height:225px;overflow:hidden;background:var(--blue)}.film-picture>img{height:100%;width:100%;object-fit:cover}.play-disc{position:absolute;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#ffffffed;color:var(--blue);top:50%;left:50%;transform:translate(-50%,-50%);transition:background .2s,scale .2s}.play-disc .icon{width:23px;height:23px;margin-left:-2px}.hero-film:hover .play-disc{background:white;scale:1.06}.film-caption{font-size:10px;line-height:1.8;display:block;padding:12px 8px 13px}.film-caption strong{display:flex;align-items:center;justify-content:space-between;font-size:12px}.film-caption .icon{width:16px;height:16px}.hero-bottom{position:absolute;bottom:0;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;gap:20px;align-items:center;padding-block:22px;border-top:1px solid #ffffff45;font-size:10px;letter-spacing:.025em}.hero-divider{padding-inline:13px;opacity:.5}.hero-bottom>a{display:flex;align-items:center;gap:22px}.hero-bottom>a>span{font-size:23px}.pool-edge{height:80px;background-color:#d3e9e9;background-image:linear-gradient(90deg,#fafbf9a6 1px,transparent 1px),linear-gradient(#fafbf9a6 1px,transparent 1px);background-size:40px 40px;display:flex;align-items:center;justify-content:center;gap:40px;color:var(--blue);font-size:12px;font-weight:600}.pool-edge>svg{width:45px;height:25px;fill:none;stroke:var(--blue);stroke-width:1.5}.tile-surface{background-color:var(--mist);background-image:linear-gradient(90deg,#ffffffa6 1px,transparent 1px),linear-gradient(#ffffffa6 1px,transparent 1px);background-size:72px 72px}
/* Portrait / a person before a catalogue. */
.about{display:grid;grid-template-columns:1fr 1fr;gap:clamp(50px,9vw,140px);padding-block:140px 130px;align-items:center}.portrait-composition{position:relative;padding:45px 0 68px 45px}.portrait{width:100%;aspect-ratio:4/4.6;object-position:57% center;position:relative}.portrait-tile{position:absolute;top:0;left:0;width:55%;height:60%;padding:20px 25px;color:var(--blue)}.portrait-tile>span{display:none}.portrait-tile>svg{position:absolute;bottom:14px;left:13px;width:28px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.experience{position:absolute;bottom:0;left:0;padding:22px 29px;background:var(--paper);border:1px solid var(--line);display:flex;gap:18px;align-items:center}.experience>strong{font-size:79px;font-weight:400;letter-spacing:-6px;line-height:1}.experience>span{font-size:12px;line-height:1.65}.about-copy h2{font-size:clamp(34px,3.8vw,55px);margin-bottom:27px}.about-copy>p:not(.section-kicker){margin-top:18px;font-size:14px;color:var(--muted)}.about-copy>p.lead{font-size:17px;line-height:1.65;color:var(--ink)}.about-signoff{display:flex;align-items:center;justify-content:space-between;margin-top:25px;gap:24px}.kw-signature{display:flex;align-items:center;gap:10px}.kw-signature>b{color:#b82839;font-size:40px;letter-spacing:-5px;font-weight:500;line-height:1}.kw-signature>span{font-size:9px;line-height:1.5}
/* Deliberately open property layouts, always using real listing photographs. */
.properties{padding-block:25px 100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin-bottom:45px}.section-heading>p{max-width:325px;font-size:14px;color:var(--muted);padding-bottom:5px}.property-toolbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;margin-bottom:32px;border-bottom:1px solid var(--line);gap:20px}.filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.filter{background:none;color:var(--muted);border:1px solid transparent;border-radius:2px;padding:10px 18px;font-size:12px;min-height:42px;transition:background .2s,color .2s}.filter:hover{background:var(--mist)}.filter.active{border-color:var(--blue);color:var(--blue)}#property-count{font-size:11px;color:var(--muted);white-space:nowrap}.property-grid{display:grid;grid-template-columns:1.13fr 1fr;gap:60px 40px;align-items:start}.property:nth-child(even){padding-top:65px}.property-grid.filtered .property{padding-top:0}.property-image{position:relative;display:block;overflow:hidden;background:var(--mist);aspect-ratio:1.44}.property:nth-child(even) .property-image{aspect-ratio:1.38}.property-image>img{width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.3,1)}.property-image:hover>img{transform:scale(1.035)}.property-badge{position:absolute;top:18px;left:18px;display:flex;align-items:center;gap:8px;background:var(--paper);font-size:10px;font-weight:600;padding:7px 12px}.property-badge .icon{width:20px;height:13px}.image-arrow{position:absolute;right:18px;bottom:18px;width:42px;height:42px;display:grid;place-items:center;background:var(--paper);border-radius:50%;color:var(--blue)}.property-copy{padding-top:22px}.property-location{font-size:11px;color:var(--muted);margin-bottom:12px}.property-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.property-title-row h3{font-size:25px;line-height:1.18;letter-spacing:-.045em}.property-price{font-size:17px;font-weight:700;white-space:nowrap;line-height:1.5;letter-spacing:-.04em}.property-price>span{display:block;text-align:right;font-size:9px;font-weight:500;letter-spacing:0;color:var(--muted)}.property-specs{display:flex;flex-wrap:wrap;gap:7px 14px;list-style:none;margin:20px 0;padding:0;font-size:11px;color:var(--muted)}.property-specs li+li{border-left:1px solid #b4cbce;padding-left:14px}.property-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:13px}.property-actions>a{display:flex;align-items:center;gap:11px;font-size:11px;font-weight:700;min-height:40px}.property-actions>a:hover{text-decoration:underline;text-underline-offset:5px}.property-actions>a:first-child{color:var(--muted)}.property-actions .icon{width:18px;height:18px}.property-footer{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-top:55px;border-top:1px solid var(--line);padding-top:22px}.property-footer>p{font-size:10px;color:var(--muted)}
.estimate{padding-block:80px}.estimate-inner{display:grid;grid-template-columns:1fr 2fr;gap:100px;align-items:center}.estimate-symbol{aspect-ratio:1;max-width:275px;padding:35px;display:flex;flex-direction:column;justify-content:space-between;background:var(--blue);color:var(--paper);border:9px solid #fafbf9;box-shadow:0 0 0 1px #c6dcdc;transform:rotate(-4deg)}.estimate-symbol svg{width:90px;height:50px;stroke:currentColor;fill:none;stroke-width:1.2}.estimate-symbol>span{font-size:26px;line-height:1.25;letter-spacing:-1.2px}.estimate h2{font-size:clamp(32px,3.7vw,52px)}.estimate .section-kicker{margin-bottom:19px}.estimate-inner>div>p:not(.section-kicker){font-size:14px;max-width:510px;margin:23px 0 28px}
/* Blue room for the community. */
.community{background:var(--blue);color:var(--paper);overflow:hidden;position:relative}.community:after{content:'';position:absolute;right:0;top:0;width:35%;height:100%;background-image:linear-gradient(90deg,#ffffff08 1px,transparent 1px),linear-gradient(#ffffff08 1px,transparent 1px);background-size:90px 90px;pointer-events:none}.community-layout{padding-block:115px 120px;display:grid;grid-template-columns:1fr 1.05fr;gap:75px;align-items:center}.community-copy h2{font-size:clamp(35px,4vw,57px)}.community-copy>p:not(.section-kicker){font-size:14px;max-width:385px;margin-top:24px;color:#d9e7f5}.community-number{display:block;margin-top:30px}.community-number>strong{display:block;font-size:clamp(72px,7.8vw,115px);font-weight:400;line-height:1.2;letter-spacing:-.065em}.community-number>strong>span{font-size:.58em;color:#48b0e8;vertical-align:top;margin-left:6px}.community-number>span{display:flex;align-items:center;gap:22px;font-size:11px;color:#d9e7f5}.community-number .icon{width:18px;height:18px}.social-links{display:flex;gap:25px;margin-top:28px}.social-links>a{font-size:12px;border-bottom:1px solid #c6ebef66;padding-bottom:7px}.social-links>a:hover{border-color:white}.social-links span{margin-left:8px}.reel-wall{display:flex;align-items:center;gap:24px;padding:30px 5px;position:relative;z-index:1}.reel{position:relative;width:50%;aspect-ratio:9/16;overflow:hidden;border-radius:9px;border:5px solid #eff7f3;box-shadow:0 14px 40px #08253440;transition:transform .3s;background:#0d3448;display:block}.reel-intro{transform:rotate(-7deg) translateY(-20px)}.reel-life{transform:rotate(7deg) translateY(35px)}.reel-intro:hover{transform:rotate(-2deg) translateY(-24px)}.reel-life:hover{transform:rotate(2deg) translateY(31px)}.reel>img{width:100%;height:100%}.reel:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#061c2bd9,transparent 50%,#061c2b50)}.reel-platform{position:absolute;top:13px;left:14px;color:white;z-index:1;font-size:9px}.reel-title{position:absolute;bottom:23px;left:17px;right:10px;color:white;font-size:24px;letter-spacing:-1px;line-height:1.1;z-index:1}.reel-title .icon{display:block;margin-top:18px}.reel .play-disc{z-index:1}.reel-life>img{object-position:50% 48%}
/* One sourced recommendation is more useful than a wall of invented stars. */
.testimonials{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;padding-block:120px;align-items:center}.testimonials h2{font-size:clamp(34px,3.6vw,52px)}.testimonials .text-link{margin-top:30px}.testimonial{position:relative;padding-top:24px}.quote-mark{position:absolute;top:-45px;left:-10px;font-family:Georgia,serif;font-size:145px;line-height:1;color:#d1e7e8;z-index:-1}.testimonial blockquote{margin:0;font-size:clamp(26px,2.7vw,39px);line-height:1.4;letter-spacing:-.045em;font-weight:400}.testimonial figcaption{display:flex;align-items:center;gap:15px;margin-top:30px}.review-avatar{background:var(--mist);width:47px;height:47px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600}.testimonial figcaption>span:nth-child(2){display:grid;font-size:10px;line-height:1.9}.testimonial figcaption strong{font-size:12px}.testimonial time{color:var(--muted);font-size:9px}.review-wave{width:48px;height:25px;fill:none;stroke:var(--aqua);stroke-width:1.3;margin-left:auto}
.partners{display:grid;grid-template-columns:1fr 1.1fr;gap:100px;border-top:1px solid var(--line);padding-block:100px}.partners h2{font-size:clamp(34px,3.6vw,52px)}.partners-intro>p:not(.section-kicker){font-size:14px;color:var(--muted);margin:25px 0 17px;max-width:365px}.partner-list{padding-top:22px}.partner-list>a{display:flex;align-items:center;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}.partner-list>a:first-child{border-top:1px solid var(--line)}.partner-icon{display:grid;place-items:center;width:53px;height:53px;background:var(--mist);color:var(--blue);font-size:31px;flex-shrink:0}.partner-list h3{font-size:19px;letter-spacing:-.035em}.partner-list p{font-size:11px;color:var(--muted);margin-top:7px}.partner-list .icon{margin-left:auto;transition:transform .2s}.partner-list>a:hover>.icon{transform:rotate(90deg)}
.journal{padding-block:60px 120px}.journal-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:80px}.journal-image{aspect-ratio:1.65;position:relative;overflow:hidden}.journal-image>img{width:100%;height:100%;object-position:center 75%;transition:transform .4s}.journal-feature:hover img{transform:scale(1.03)}.article-meta{display:flex;align-items:center;gap:18px;color:var(--blue);font-size:10px;font-weight:600;margin-block:23px 13px}.article-meta>span{color:var(--muted);font-weight:400}.journal h3{font-size:27px;line-height:1.25;letter-spacing:-.04em}.journal-list>a{display:block;border-top:1px solid var(--line);padding-bottom:25px}.journal-list>a+ a{padding-top:7px}.journal-list .text-link{border:0;font-size:11px;margin-top:12px}.journal-list .icon{width:19px;height:19px}
/* Every CTA comes here, with its context intact. */
.contact{background:var(--mist);border-top:1px solid var(--line)}.contact-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:100px;padding-block:95px 100px;align-items:start}.contact h2{font-size:clamp(56px,6.5vw,95px);line-height:1.02;letter-spacing:-.06em}.contact-copy>p:not(.section-kicker){font-size:14px;line-height:1.8;margin-top:25px}.contact-phone{display:flex;align-items:center;gap:25px;font-size:32px;letter-spacing:-1px;margin-top:35px;width:fit-content}.contact-phone .icon{width:24px;height:24px}.contact-email{font-size:13px;display:inline-block;margin-top:8px;border-bottom:1px solid #98b6c0}.contact-person{display:flex;align-items:center;gap:14px;margin-top:38px;font-size:10px}.contact-person>img{border-radius:50%;width:54px;height:54px;object-position:55% 30%}.contact-person>span{display:grid;gap:3px}.contact-person strong{font-size:12px}.lead-form{padding-top:4px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:20px;min-width:0}.field label{font-size:11px;font-weight:600}.field label>span{color:var(--aqua)}input,select,textarea{width:100%;background:#fafbf9;border:1px solid #c4d8dc;border-radius:2px;min-height:48px;padding:12px 14px;outline-offset:2px;font-size:13px}input::placeholder,textarea::placeholder{color:#637f88;opacity:1}textarea{resize:vertical;min-height:98px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='m1 1 6 6 6-6' fill='none' stroke='%23124d69' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:35px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.lead-form>.button{width:100%;justify-content:space-between}.form-note{font-size:10px;line-height:1.7;color:var(--muted);margin-top:13px}.form-note.error{color:#9f3434}.lead-form.submitted{scroll-margin-top:30px}.site-footer{overflow:hidden}.footer-top{padding-block:55px 40px;display:flex;justify-content:space-between;gap:35px;align-items:center}.footer-address{font-size:11px;color:var(--muted);line-height:1.9}.footer-social{display:flex;gap:25px;font-size:11px}.footer-social>a:hover{text-decoration:underline;text-underline-offset:4px}.footer-bottom{border-top:1px solid var(--line);padding-block:20px;display:flex;gap:24px;font-size:9px;color:var(--muted)}.footer-bottom>span{margin-right:auto}.video-dialog{border:0;border-radius:8px;padding:18px;max-width:430px;width:calc(100% - 30px);max-height:94dvh;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px #051b3780}.video-dialog::backdrop{background:#042333d9;backdrop-filter:blur(6px)}.video-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.video-dialog h2{font-size:15px;font-weight:600;letter-spacing:-.025em}.close-dialog{display:grid;place-items:center;width:40px;height:40px;background:var(--mist);border-radius:50%}#video-container{width:100%;aspect-ratio:9/16;max-height:calc(94dvh - 132px);background:#103346}#video-container iframe{width:100%;height:100%;border:0}.video-dialog>p{font-size:10px;margin-top:10px}.video-dialog>p>a{text-decoration:underline}.modal-open{overflow:hidden}
/* Readable, directly addressable journal pages. */
.article-page .site-header{position:relative}.article-shell{max-width:760px;margin:70px auto 100px;padding-inline:24px}.article-back{font-size:12px;display:inline-block;margin-bottom:42px;text-decoration:underline;text-underline-offset:5px}.article-shell h1{font-size:clamp(38px,5vw,66px);margin-bottom:25px}.article-shell .article-intro{font-size:20px;line-height:1.6;color:var(--muted);margin-bottom:35px}.article-shell h2{font-size:28px;letter-spacing:-.04em;margin:40px 0 18px}.article-shell p{margin-bottom:18px}.article-shell ul{padding-left:20px}.article-shell li{margin-bottom:10px}.article-shell .article-cover{width:100%;aspect-ratio:1.7;margin-block:35px}.article-shell a:not(.button){text-decoration:underline;text-underline-offset:4px}.article-cta{margin-top:50px;padding:32px;background:var(--mist)}.article-cta h2{margin:0 0 15px}.article-cta p{font-size:14px}.article-shell .article-meta{margin-top:0}.article-byline{font-size:11px;color:var(--muted);border-bottom:1px solid var(--line);padding-bottom:25px;margin-bottom:30px}
.hero h1{font-size:clamp(64px,6.15vw,99px);line-height:1.06;letter-spacing:-.062em}.hero-description{max-width:475px}.hero-actions{display:flex;align-items:center;gap:28px}.hero-secondary{display:inline-flex;align-items:center;gap:14px;font-size:12px;padding-block:14px;border-bottom:1px solid #ffffff70}.hero-secondary:hover{border-color:white}.hero-secondary .icon{width:18px;height:18px}
@keyframes arrive{from{transform:scale(1.035)}to{transform:scale(1)}}
@media(min-width:1600px){.hero-content{padding-left:max(var(--gutter),calc((100vw - var(--page))/2))}.hero-film{right:max(var(--gutter),calc((100vw - var(--page))/2))}}
@media(max-width:1150px){.main-nav{gap:20px}.main-nav>a{font-size:11px}.site-header{gap:20px}.brand-name{font-size:15px}.nav-cta{font-size:10px;gap:10px}.about{gap:60px}.property-title-row{display:block}.property-price{margin-top:14px;display:flex;gap:7px;align-items:baseline}.property-price>span{text-align:left}.estimate-inner{gap:65px}.community-layout{gap:45px}.reel-title{font-size:21px}.testimonials,.partners,.journal-grid,.contact-layout{gap:60px}.about-signoff{flex-wrap:wrap}}
@media(max-width:900px){.site-header{height:82px}.main-nav{position:absolute;display:none;top:81px;left:0;right:0;background:var(--paper);padding:20px var(--gutter) 30px;border-bottom:1px solid var(--line);box-shadow:0 12px 18px #08204010}.main-nav.is-open{display:flex;align-items:flex-start;flex-direction:column;gap:4px}.main-nav>a{font-size:17px;padding-block:12px}.nav-cta{margin-left:auto;font-size:11px}.menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;align-items:center;gap:7px;background:transparent}.menu-toggle>span{height:1.5px;width:23px;background:var(--blue);transition:transform .2s}.menu-toggle[aria-expanded=true]>span:first-child{transform:translateY(4.25px) rotate(45deg)}.menu-toggle[aria-expanded=true]>span:last-child{transform:translateY(-4.25px) rotate(-45deg)}.hero{height:calc(100svh - 82px);min-height:690px}.hero-content{padding-top:70px}.hero-film{width:152px;bottom:105px}.film-picture{height:190px}.hero h1{font-size:92px}.hero-description{max-width:340px}.about{padding-block:95px;gap:38px}.portrait-composition{padding-left:24px;padding-top:28px}.portrait{aspect-ratio:3/4.2}.experience{padding:18px}.experience>strong{font-size:65px}.experience>span{font-size:10px}.about-copy h2{font-size:35px}.about-copy>p:not(.section-kicker){font-size:12px}.about-copy>p.lead{font-size:15px}.about-signoff .text-link{font-size:11px}.section-kicker{font-size:11px}.section-heading>p{max-width:265px;font-size:12px}.property-grid{gap:45px 25px}.property-actions>a{font-size:10px;gap:6px}.property-actions .icon{width:15px}.property-title-row h3{font-size:23px}.estimate-inner{gap:45px;grid-template-columns:1fr 2fr}.estimate-symbol{padding:20px;border-width:6px}.estimate-symbol>span{font-size:22px}.estimate-symbol>svg{width:65px}.estimate h2{font-size:35px}.community-layout{grid-template-columns:1fr;gap:15px;padding-block:80px}.community-copy{max-width:540px}.community-copy h2{font-size:48px}.community-number>strong{font-size:90px}.community-number{margin-top:20px}.reel-wall{max-width:480px;justify-self:end;margin-top:-110px;width:57%;gap:15px}.reel-title{font-size:20px}.reel-platform{font-size:8px}.community-copy>p:not(.section-kicker){max-width:360px}.community-number>span{max-width:240px;font-size:10px}.social-links{gap:16px}.social-links>a{font-size:10px}.testimonials{gap:45px;padding-block:90px}.testimonials h2{font-size:35px}.testimonial blockquote{font-size:28px}.partners{gap:40px;padding-block:70px}.partners h2{font-size:35px}.partner-list h3{font-size:16px}.partner-list>a{gap:12px}.partner-icon{width:42px;height:42px;font-size:26px}.partner-list p{font-size:10px}.journal{padding-block:35px 80px}.journal-grid{gap:35px}.journal h3{font-size:23px}.contact-layout{gap:45px;padding-block:75px}.contact-phone{font-size:28px}.form-row{gap:10px}.footer-social{gap:15px}.footer-top{gap:22px}.footer-bottom{flex-wrap:wrap;gap:10px 20px}.footer-bottom>span{flex-basis:100%}}
@media(max-width:620px){:root{--gutter:24px}body{font-size:14px}html{scroll-padding-top:20px}.site-header{height:76px;padding-inline:20px;gap:10px}.brand-mark{font-size:34px;width:43px;height:49px;letter-spacing:-8px}.brand-mark>svg{width:36px;height:16px}.brand{gap:9px}.brand-name{font-size:14px}.brand-name small{font-size:9px}.nav-cta{font-size:10px;min-height:38px;padding:11px 13px;max-width:113px;text-align:center;line-height:1.35}.nav-cta .icon{display:none}.menu-toggle{width:35px;flex-shrink:0}.main-nav{top:75px}.hero{height:auto;min-height:850px;max-height:none}.hero-content{padding:54px 24px 0}.hero-location{font-size:11px;margin-bottom:29px}.hero h1{font-size:clamp(66px,14.2vw,86px);line-height:1.02;margin-left:-3px}.hero-description{font-size:13px;margin-top:26px;line-height:1.7}.hero .button{font-size:12px;min-height:49px;padding:14px 18px;gap:20px}.hero-image{object-position:54% center}.hero-shade{background:linear-gradient(90deg,#07262c9e,#07262c24),linear-gradient(0deg,#05272e99,transparent 45%)}.hero-film{width:140px;bottom:88px;right:30px;transform:rotate(5deg)}.film-picture{height:168px}.film-caption{padding:8px 5px 10px;font-size:9px}.film-caption strong{font-size:10px}.play-disc{width:43px;height:43px}.hero-bottom{left:24px;right:24px;bottom:0;padding-block:18px;font-size:8px;gap:10px}.hero-bottom>span{max-width:130px}.hero-divider{padding-inline:4px}.hero-bottom>a{font-size:9px;gap:10px}.pool-edge{height:65px;gap:14px;font-size:8px;background-size:32px 32px}.pool-edge>svg{width:29px;height:18px}.about{grid-template-columns:1fr;padding-block:70px 60px;gap:35px}.portrait-composition{max-width:420px;width:100%;padding:25px 0 49px 28px}.portrait{aspect-ratio:1.04;object-position:center 35%}.portrait-tile{background-size:45px 45px}.experience{padding:14px 21px;gap:16px}.experience>strong{font-size:63px}.experience>span{font-size:11px}.about-copy h2{font-size:43px}.about-copy>p:not(.section-kicker){font-size:13px}.about-copy>p.lead{font-size:17px}.about-signoff{flex-wrap:nowrap;gap:16px}.about-signoff .text-link{font-size:11px;gap:10px}.kw-signature>b{font-size:34px}.kw-signature>span{font-size:8px}.section-kicker{margin-bottom:19px;font-size:11px}.section-heading{display:block;margin-bottom:28px}.section-heading h2{font-size:41px}.section-heading>p{max-width:330px;margin-top:20px;font-size:13px}.properties{padding-block:15px 60px}.property-toolbar{margin-bottom:27px;align-items:flex-start;gap:7px}.filters{gap:5px}.filter{font-size:10px;padding:8px 10px;min-height:38px}.property-toolbar>#property-count{display:none}.property-grid{grid-template-columns:1fr;gap:38px}.property:nth-child(even){padding-top:0}.property-image,.property:nth-child(even) .property-image{aspect-ratio:1.33}.property-badge{top:13px;left:13px;font-size:9px;padding:6px 9px}.image-arrow{right:13px;bottom:13px;width:37px;height:37px}.property-copy{padding-top:17px}.property-location{font-size:10px;margin-bottom:10px}.property-title-row{display:flex;gap:12px}.property-title-row h3{font-size:21px}.property-price{display:block;font-size:15px;margin-top:0}.property-price>span{font-size:8px;text-align:right}.property-specs{font-size:10px;margin:17px 0 13px;gap:5px 10px}.property-specs li+li{padding-left:10px}.property-actions{padding-top:9px}.property-actions>a{font-size:10px}.property-footer{margin-top:35px;flex-direction:column;align-items:flex-start;gap:12px}.property-footer>p{font-size:9px}.property-footer .text-link{font-size:11px}.estimate{padding-block:55px}.estimate-inner{grid-template-columns:1fr;gap:31px}.estimate-symbol{width:140px;height:140px;padding:16px;transform:rotate(-5deg);margin-left:5px}.estimate-symbol>svg{width:45px;height:22px}.estimate-symbol>span{font-size:18px;letter-spacing:-.7px}.estimate h2{font-size:35px}.estimate-inner>div>p:not(.section-kicker){font-size:13px;margin-block:20px 24px}.estimate .button{font-size:12px}.community-layout{padding-block:65px;gap:35px}.community-copy h2{font-size:39px}.community-copy>p:not(.section-kicker){font-size:13px;max-width:320px}.community-number>strong{font-size:86px}.community-number>span{max-width:none;gap:13px;font-size:10px}.social-links{gap:23px;margin-top:23px}.social-links>a{font-size:11px}.reel-wall{width:100%;max-width:380px;justify-self:center;margin:0;padding:20px 9px 28px;gap:18px}.reel{border-width:4px}.reel-intro{transform:rotate(-6deg) translateY(-5px)}.reel-life{transform:rotate(6deg) translateY(20px)}.reel-title{font-size:22px;bottom:18px;left:12px}.reel-platform{font-size:8px;left:12px}.community:after{width:100%;opacity:.6}.testimonials{grid-template-columns:1fr;gap:48px;padding-block:65px}.testimonials h2{font-size:39px}.testimonials .text-link{font-size:11px;margin-top:18px}.testimonial{padding-top:0}.quote-mark{top:-35px;font-size:125px}.testimonial blockquote{font-size:30px}.testimonial figcaption{margin-top:24px}.partners{grid-template-columns:1fr;gap:28px;padding-block:60px}.partners h2{font-size:39px}.partners-intro>p:not(.section-kicker){font-size:13px}.partners-intro .text-link{font-size:11px}.partner-list{padding-top:0}.partner-list>a{padding-block:23px;gap:15px}.partner-list h3{font-size:17px}.partner-list p{font-size:10px}.partner-icon{width:44px;height:44px}.journal{padding-block:20px 65px}.journal-grid{grid-template-columns:1fr;gap:33px}.journal h3{font-size:25px}.journal-image{aspect-ratio:1.4}.article-meta{font-size:10px;margin-top:17px}.journal-list>a{padding-block:7px 22px}.journal-list h3{font-size:23px}.journal-list .text-link{margin-top:5px}.contact-layout{grid-template-columns:1fr;gap:40px;padding-block:60px}.contact h2{font-size:73px}.contact-copy>p:not(.section-kicker){font-size:13px}.contact-phone{font-size:34px;margin-top:24px}.contact-person{margin-top:25px}.form-row{gap:12px}.lead-form .button{font-size:11px;padding-inline:17px}.field label{font-size:10px}input,select,textarea{font-size:16px;padding:12px 10px}.form-note{font-size:10px}.footer-top{padding-block:38px 28px;flex-wrap:wrap;align-items:flex-start;gap:25px}.footer-top .brand{flex-basis:100%}.footer-address{font-size:10px;flex:1}.footer-social{flex-direction:column;gap:7px;font-size:10px}.footer-bottom{padding-block:18px;gap:10px 17px;font-size:8px}.article-shell{margin-block:40px 60px}.article-shell h1{font-size:40px}.article-shell .article-intro{font-size:18px}.article-shell h2{font-size:26px}.article-cta{padding:24px}.article-page .site-footer{padding-bottom:0}}
@media(max-width:370px){.site-header{padding-inline:15px;gap:6px}.brand-name{font-size:12px}.brand-mark{width:37px}.brand-name small{font-size:8px}.nav-cta{max-width:96px;font-size:9px;padding:9px}.hero{min-height:830px}.hero h1{font-size:62px}.hero-description{font-size:12px}.property-title-row h3{font-size:19px}.property-price{font-size:13px}.property-actions>a{font-size:9px}.filter{padding-inline:8px}.about-copy h2{font-size:38px}.about-signoff{flex-wrap:wrap}.section-heading h2{font-size:37px}.reel-title{font-size:19px}.form-row{grid-template-columns:1fr}.form-row .field{margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-film:hover,.reel:hover{transform:none}.property-image:hover>img,.journal-feature:hover img{transform:none}}
@media(max-width:900px) and (min-width:621px){.hero h1{font-size:clamp(53px,7.6vw,68px)}.hero-description{max-width:420px}.hero-film{bottom:88px}.hero-actions{gap:18px}.hero-secondary{font-size:11px}}
@media(max-width:620px){.hero h1{font-size:clamp(37px,9.2vw,56px);letter-spacing:-.06em;line-height:1.1}.hero-location{font-size:10px}.hero-description{max-width:330px;font-size:13px;line-height:1.7}.hero-actions{align-items:flex-start;gap:12px;flex-direction:column}.hero-secondary{font-size:11px;padding-block:8px}.hero-film{bottom:79px;width:130px}.film-picture{height:150px}.hero{min-height:790px}}
@media(max-width:370px){.hero{min-height:845px}.hero h1{font-size:36px}}

/* Client identity: the original artwork, with its navy and pool blue. */
.site-header { height: 112px; background: #fff; }
.brand-logo { width: 112px; height: 112px; object-fit: contain; }
.main-nav { gap: 28px; }
.main-nav > a { font-size: 15px; }
.footer-top { padding-block: 24px; }
.footer-top .brand-logo { width: 180px; height: 180px; }
.site-footer { background: #fff; }
.hero { height: calc(100svh - 112px); }
.hero-shade { background: linear-gradient(90deg, #061a38b0, #061a3820 75%), linear-gradient(0deg, #061a385c, transparent 45%); }
.location-dot { background: #8ed4fb; box-shadow: 0 0 0 5px #8ed4fb26; }

/* Small glazed tesserae, pale grout, a dark waterline and a stone coping. */
.tile-surface, .pool-edge { background: #3088c0 url('assets/pool-mosaic.svg') repeat; background-size: 132px 132px; }
.pool-edge { position: relative; height: 108px; border-top: 9px solid #f5f4ed; border-bottom: 7px solid #f5f4ed; box-shadow: inset 0 5px 0 #082040, inset 0 8px 0 #a4d3ee, inset 0 -3px 0 #b7d6e6; overflow: hidden; }
.pool-edge:before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 22% 90%, #b3e8ff88, transparent 50%), radial-gradient(ellipse at 76% 0, #b3e8ff77, transparent 46%); pointer-events: none; }
.pool-edge-caption { position: relative; display: flex; align-items: center; gap: 22px; background: #fff; padding: 11px 26px; box-shadow: 0 2px 6px #08204018; font-size: 11px; }
.pool-edge-caption svg { width: 40px; height: 24px; stroke: #3088c0; stroke-width: 1.7; fill: none; }

/* A compact personal introduction: a portrait, not a second hero. */
.about { grid-template-columns: 250px minmax(0, 1fr); max-width: 1080px; gap: 80px; padding-block: 86px 90px; }
.portrait-composition { padding: 0; width: 250px; border-top: 8px solid #3088c0; }
.portrait { width: 250px; height: 282px; aspect-ratio: auto; object-position: 54% 36%; }
.portrait-caption { display: grid; padding: 17px 0; border-bottom: 1px solid var(--line); gap: 2px; }
.portrait-caption strong { font-size: 14px; font-weight: 600; }
.portrait-caption > span { font-size: 11px; color: var(--muted); }
.experience { position: static; border: 0; padding: 17px 0 0; gap: 19px; }
.experience > strong { font-size: 47px; letter-spacing: -.07em; }
.experience > strong > span { font-size: 25px; color: var(--aqua); vertical-align: top; }
.experience > span { font-size: 10px; }
.about-copy .section-kicker { margin-bottom: 19px; }
.about-copy h2 { font-size: clamp(33px, 3.2vw, 46px); margin-bottom: 23px; }
.about-copy > p:not(.section-kicker) { font-size: 13px; margin-top: 15px; }
.about-copy > p.lead { font-size: 16px; }
.about-signoff { margin-top: 18px; }

/* Film library. All covers and destinations come from Thibault's own videos. */
.video-visits { padding-block: 22px 95px; }
.video-visits .section-heading { align-items: end; }
.visits-intro { max-width: 315px; }
.visits-intro > p { font-size: 14px; color: var(--muted); }
.visits-intro .text-link { margin-top: 9px; font-size: 12px; }
.visit-films { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.visit-poster { position: relative; display: block; aspect-ratio: 9/15; overflow: hidden; background: var(--blue); }
.visit-poster > img { width: 100%; height: 100%; transition: transform .5s; }
.visit-poster:after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #05152ddd, transparent 45%, #05152d80); pointer-events: none; }
.visit-poster:hover > img { transform: scale(1.035); }
.visit-poster .play-disc { width: 55px; height: 55px; background: #ffffffed; z-index: 1; }
.film-label { position: absolute; left: 18px; right: 18px; top: 17px; display: flex; align-items: center; justify-content: space-between; z-index: 1; color: #fff; font-size: 10px; font-weight: 600; }
.poster-caption { position: absolute; left: 21px; bottom: 24px; right: 15px; z-index: 1; color: #fff; font-size: clamp(20px, 2vw, 28px); line-height: 1.15; letter-spacing: -.035em; }
.visit-film-caption { padding-block: 17px 10px; }
.visit-film-caption > span { display: block; font-size: 10px; color: var(--muted); margin-bottom: 8px; }
.visit-film-caption h3 { font-size: 20px; letter-spacing: -.04em; line-height: 1.3; }
.visit-film-caption > a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; border-bottom: 1px solid var(--line); font-size: 11px; margin-top: 10px; }
.visit-film-caption > a:hover { border-color: var(--blue); }
.visit-film-caption .icon { width: 17px; height: 17px; }
.visits-note { font-size: 10px; color: var(--muted); max-width: 740px; margin-top: 21px; }
.estimate { padding-block: 52px; border-block: 9px solid #eef0ed; box-shadow: inset 0 4px 0 #082040; }
.estimate-inner { background: var(--paper); padding: 54px 62px; grid-template-columns: .75fr 2fr; gap: 70px; }
.estimate-symbol { background: var(--blue); border: 0; box-shadow: none; transform: none; padding: 27px; max-width: 230px; }
.estimate-symbol > span { font-size: 23px; }
.estimate-symbol > svg { stroke: #48b0e8; }
.estimate h2 { font-size: clamp(30px, 3.1vw, 45px); }
.estimate-inner > div > p:not(.section-kicker) { font-size: 13px; }
.community:after { background-image: url('assets/pool-mosaic.svg'); background-size: 132px 132px; opacity: .07; }

/* A source-backed recommendation, with an identifiable author and direct link. */
.testimonials { display: block; padding-block: 92px 90px; }
.testimonials h2 { font-size: clamp(36px, 4.15vw, 60px); }
.testimonials .section-heading { margin-bottom: 38px; }
.testimonials .text-link { margin-top: 0; }
.review-board { display: grid; grid-template-columns: 280px minmax(0, 1fr); border: 1px solid #ccdce9; background: #fff; }
.review-source { padding: 32px; background: var(--blue); color: #fff; display: flex; flex-direction: column; align-items: start; position: relative; isolation: isolate; }
.review-source:after { content: ''; position: absolute; inset: auto 0 0; height: 66px; background: url('assets/pool-mosaic.svg'); z-index: -1; opacity: .22; }
.review-source > img { filter: brightness(0) invert(1); margin-bottom: 16px; }
.review-source > span { font-size: 12px; line-height: 1.7; color: #d0e3f2; }
.review-author { margin-block: 28px 35px; display: grid; grid-template-columns: 44px 1fr; gap: 3px 12px; align-items: center; }
.review-author .review-avatar { grid-row: span 2; width: 44px; height: 44px; color: #fff; background: #ffffff16; border: 1px solid #ffffff66; }
.review-author strong { font-size: 12px; font-weight: 600; }
.review-author time { font-size: 10px; color: #bdd3e4; }
.review-source > a { display: flex; gap: 10px; align-items: center; font-size: 10px; border-bottom: 1px solid #ffffff70; padding-block: 10px; margin-top: auto; }
.review-source > a:hover { border-color: #fff; }
.review-source > a .icon { width: 16px; height: 16px; }
.testimonial { padding: 53px 58px 42px; position: relative; isolation: isolate; }
.quote-mark { position: static; display: block; color: #3088c0; font-family: Georgia, serif; font-size: 91px; height: 48px; line-height: .95; margin-left: -5px; }
.testimonial blockquote { font-size: clamp(26px, 2.6vw, 37px); line-height: 1.35; font-weight: 400; letter-spacing: -.04em; }
.testimonial figcaption { display: flex; flex-direction: column; align-items: start; margin-top: 27px; gap: 2px; font-size: 10px; color: var(--muted); }
.review-signature { font-size: 13px; color: var(--blue); font-weight: 700; }
.testimonial figcaption > span:nth-child(2) { font-size: 10px; }
.testimonial .review-wave { position: absolute; bottom: 38px; right: 38px; width: 52px; height: 27px; margin: 0; }

/* A pool-side service directory, ready for Thibault's named contacts. */
.partners { display: block; padding-block: 75px 85px; border-top: 1px solid var(--line); }
.partners h2 { font-size: clamp(36px, 4vw, 57px); }
.partners-layout { display: grid; grid-template-columns: .94fr 1fr; gap: 75px; align-items: stretch; }
.partners-scene { min-height: 530px; position: relative; overflow: hidden; background: #3088c0; border-bottom: 22px solid transparent; border-image: url('assets/pool-mosaic.svg') 22 round; }
.partners-scene > img { position: absolute; inset: 0; width: 100%; height: 100%; object-position: 71% center; }
.partners-scene:after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg,#082040b3,transparent 70%); }
.scene-caption { position: absolute; z-index: 1; left: 34px; bottom: 65px; right: 25px; color: #fff; }
.scene-caption .icon { width: 55px; height: 29px; display: block; margin-bottom: 22px; }
.scene-caption > span { font-size: clamp(24px, 2.9vw, 40px); line-height: 1.15; letter-spacing: -.05em; display: block; }
.scene-label { position: absolute; bottom: 24px; left: 34px; z-index: 1; color: #fff; font-size: 10px; }
.partner-list { padding: 0; }
.partner-service { border-top: 1px solid var(--line); }
.partner-service summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 23px; padding-block: 27px; }
.partner-service summary::-webkit-details-marker { display: none; }
.partner-service summary:focus-visible { outline: 3px solid var(--aqua); outline-offset: 4px; }
.service-number { color: var(--aqua); font-size: 11px; align-self: flex-start; padding-top: 5px; }
.partner-service summary > span:nth-child(2) { font-size: 24px; line-height: 1.3; letter-spacing: -.04em; }
.partner-service summary small { display: block; margin-top: 8px; font-size: 11px; font-weight: 400; color: var(--muted); letter-spacing: 0; }
.partner-service summary .icon { margin-left: auto; width: 20px; height: 20px; transition: transform .2s; }
.partner-service[open] summary .icon { transform: rotate(45deg); }
.service-details { padding: 0 15px 28px 38px; }
.service-details > p { font-size: 12px; color: var(--muted); max-width: 370px; margin: 0; line-height: 1.8; }
.service-details ul { list-style: none; padding: 0; display: grid; grid-template-columns: 1fr; gap: 7px; margin-block: 17px 12px; font-size: 11px; }
.service-details li { display: flex; align-items: center; gap: 10px; }
.service-details li:before { content: ''; width: 5px; height: 5px; background: #3088c0; }
.service-details .text-link { font-size: 11px; gap: 24px; }
.partners-help { border-top: 1px solid var(--line); padding-top: 22px; font-size: 11px; color: var(--muted); }
.partners-help > a { margin-left: 8px; color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }

@media (max-width: 1150px) {
  .site-header { gap: 20px; }
  .main-nav { gap: 21px; }
  .main-nav > a { font-size: 13px; }
  .about { grid-template-columns: 225px 1fr; gap: 55px; }
  .portrait-composition { width: 225px; }
  .portrait { width: 225px; height: 267px; }
  .visit-films { gap: 18px; }
  .estimate-inner { padding: 42px; gap: 45px; }
  .estimate-symbol { padding: 21px; }
  .estimate-symbol > span { font-size: 20px; }
  .partners-layout { gap: 45px; }
  .review-board { grid-template-columns: 245px 1fr; }
  .review-source { padding: 28px; }
  .testimonial { padding: 42px; }
}
@media (max-width: 900px) {
  .site-header { height: 104px; }
  .brand-logo { width: 104px; height: 104px; }
  .main-nav { top: 103px; background: #fff; }
  .main-nav > a { font-size: 18px; }
  .hero { height: calc(100svh - 104px); }
  .about { grid-template-columns: 200px 1fr; gap: 40px; padding-block: 65px; }
  .portrait-composition { width: 200px; }
  .portrait { width: 200px; height: 244px; }
  .about-copy h2 { font-size: 34px; }
  .about-copy > p:not(.section-kicker) { font-size: 12px; }
  .about-copy > p.lead { font-size: 15px; }
  .about-signoff { flex-wrap: wrap; }
  .video-visits { padding-block: 10px 65px; }
  .video-visits .section-heading { gap: 30px; }
  .visits-intro { max-width: 250px; }
  .visits-intro > p { font-size: 12px; }
  .visit-films { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px 23px; }
  .visit-poster { aspect-ratio: 9/13; }
  .poster-caption { font-size: 29px; }
  .estimate-inner { padding: 35px; gap: 32px; grid-template-columns: .7fr 1.8fr; }
  .estimate-symbol { min-height: 180px; }
  .estimate-symbol > span { font-size: 18px; }
  .estimate h2 { font-size: 32px; }
  .testimonials { padding-block: 70px; }
  .testimonials h2 { font-size: 40px; }
  .review-board { grid-template-columns: 210px 1fr; }
  .review-source { padding: 24px; }
  .review-source > a { font-size: 9px; }
  .testimonial { padding: 32px; }
  .testimonial blockquote { font-size: 28px; }
  .testimonial .review-wave { width: 34px; right: 25px; }
  .partners { padding-block: 60px; }
  .partners h2 { font-size: 40px; }
  .partners-layout { gap: 30px; }
  .partners-scene { min-height: 490px; }
  .scene-caption { left: 24px; }
  .scene-label { left: 24px; font-size: 8px; }
  .partner-service summary { gap: 15px; padding-block: 23px; }
  .partner-service summary > span:nth-child(2) { font-size: 20px; }
  .partner-service summary small { font-size: 10px; }
  .service-details { padding-left: 28px; }
  .partners-help > a { display: inline-block; margin-left: 0; }
}
@media (max-width: 620px) {
  .site-header { height: 96px; padding-inline: 16px; }
  .brand-logo { width: 96px; height: 96px; }
  .nav-cta { max-width: none; padding: 12px; margin-left: auto; min-height: 44px; font-size: 10px; }
  .main-nav { top: 95px; }
  .hero { height: auto; }
  .hero-image { height: 125%; top: -25%; object-position: 52% center; }
  .hero-shade { background: linear-gradient(90deg,#061a38a6,#061a3838), linear-gradient(0deg,#061a3880,transparent 50%); }
  .pool-edge { height: 94px; }
  .pool-edge-caption { gap: 13px; padding: 9px 16px; font-size: 8px; }
  .pool-edge-caption span { max-width: 105px; }
  .pool-edge-caption svg { width: 28px; flex-shrink: 0; }
  .about { display: flex; flex-direction: column; align-items: stretch; gap: 29px; padding-block: 48px 55px; }
  .portrait-composition { display: grid; grid-template-columns: 106px 1fr; column-gap: 22px; width: 100%; max-width: none; border: 0; padding: 0; }
  .portrait { width: 106px; height: 132px; grid-row: span 2; border-top: 5px solid var(--aqua); object-position: 55% 30%; }
  .portrait-caption { align-self: start; padding: 3px 0 10px; }
  .portrait-caption strong { font-size: 14px; }
  .portrait-caption > span { font-size: 10px; }
  .experience { padding: 7px 0 0; gap: 15px; }
  .experience > strong { font-size: 38px; }
  .experience > strong > span { font-size: 21px; }
  .experience > span { font-size: 9px; }
  .about-copy .section-kicker { font-size: 10px; margin-bottom: 14px; }
  .about-copy h2 { font-size: 36px; margin-bottom: 21px; }
  .about-copy > p:not(.section-kicker) { font-size: 13px; }
  .about-copy > p.lead { font-size: 16px; }
  .about-signoff { flex-wrap: nowrap; }
  .video-visits { padding-block: 8px 55px; }
  .video-visits .section-heading { margin-bottom: 26px; }
  .video-visits h2 { font-size: 39px; }
  .visits-intro { max-width: 320px; margin-top: 20px; }
  .visits-intro > p { font-size: 13px; }
  .visits-intro .text-link { margin-top: 4px; font-size: 11px; }
  .visit-films { display: flex; overflow-x: auto; gap: 17px; scroll-snap-type: x mandatory; padding: 0 24px 18px; margin-inline: -24px; scrollbar-width: thin; scrollbar-color: var(--aqua) var(--line); }
  .visit-film { flex: 0 0 76%; min-width: 0; scroll-snap-align: center; }
  .visit-poster { aspect-ratio: 9/14; }
  .poster-caption { font-size: 26px; left: 18px; bottom: 22px; }
  .visit-film-caption h3 { font-size: 21px; }
  .visits-note { font-size: 9px; margin-top: 15px; }
  .estimate { padding-block: 28px; border-width: 7px; }
  .estimate-inner { display: block; padding: 28px 24px; }
  .estimate-symbol { display: none; }
  .estimate h2 { font-size: 30px; }
  .estimate .section-kicker { font-size: 10px; }
  .estimate .button { font-size: 11px; gap: 12px; padding: 14px 15px; width: 100%; }
  .estimate-inner > div > p:not(.section-kicker) { font-size: 12px; }
  .testimonials { padding-block: 55px; }
  .testimonials h2 { font-size: 39px; }
  .testimonials .section-heading { margin-bottom: 26px; }
  .testimonials .text-link { margin-top: 16px; }
  .review-board { display: flex; flex-direction: column-reverse; }
  .testimonial { padding: 30px 27px; }
  .quote-mark { font-size: 78px; height: 39px; }
  .testimonial blockquote { font-size: 27px; }
  .testimonial figcaption { margin-top: 24px; }
  .testimonial .review-wave { bottom: 29px; right: 25px; width: 38px; }
  .review-source { display: grid; grid-template-columns: 28px 1fr; gap: 16px; padding: 23px 27px; }
  .review-source > img { margin: 0; width: 25px; height: 25px; }
  .review-source > span { font-size: 11px; }
  .review-source > span br { display: none; }
  .review-author { display: none; }
  .review-source > a { grid-column: 2; width: fit-content; font-size: 10px; padding-block: 4px; margin-top: -3px; }
  .partners { padding-block: 50px 55px; }
  .partners h2 { font-size: 38px; }
  .partners .section-kicker { font-size: 10px; }
  .partners-layout { display: flex; flex-direction: column; gap: 30px; }
  .partners-scene { min-height: 0; height: 260px; border-bottom-width: 18px; }
  .partners-scene > img { object-position: center 65%; }
  .scene-caption { bottom: 53px; }
  .scene-caption .icon { width: 40px; height: 24px; margin-bottom: 12px; }
  .scene-caption > span { font-size: 30px; }
  .scene-label { bottom: 20px; font-size: 9px; }
  .partner-service summary { padding-block: 24px; }
  .partner-service summary > span:nth-child(2) { font-size: 23px; }
  .partner-service summary small { font-size: 11px; }
  .service-details { padding-left: 30px; }
  .service-details > p { font-size: 13px; }
  .service-details .text-link { font-size: 11px; }
  .partners-help > a { margin-left: 6px; }
  .footer-top { gap: 20px; }
  .footer-top .brand { flex-basis: auto; }
  .footer-top .brand-logo { width: 125px; height: 125px; }
  .footer-address { align-self: center; }
  .footer-social { flex-basis: 100%; flex-direction: row; justify-content: space-between; padding-bottom: 12px; }
}
@media (max-width: 370px) {
  .site-header { padding-inline: 12px; gap: 8px; }
  .nav-cta { max-width: 120px; font-size: 9px; }
  .about-copy h2 { font-size: 32px; }
  .about-signoff { flex-wrap: wrap; }
  .poster-caption { font-size: 23px; }
  .estimate-inner { padding: 25px 20px; }
  .estimate h2 { font-size: 27px; }
  .testimonial blockquote { font-size: 24px; }
  .testimonials h2, .partners h2 { font-size: 34px; }
  .partners .section-kicker { font-size: 9px; }
  .portrait-composition { column-gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { .visit-poster:hover > img { transform: none; } }

/* Recognizable social signatures, accessible text labels retained. */
.social-icon { width: 20px; height: 20px; object-fit: contain; flex-shrink: 0; display: inline-block; vertical-align: middle; }
.social-links > a, .footer-social > a { display: inline-flex; align-items: center; gap: 10px; }
.social-links .social-icon, .film-label .social-icon, .reel-platform .social-icon { filter: brightness(0) invert(1); }
.social-links span { margin-left: 0; }
.film-label > span, .reel-platform, .film-intro-label { display: inline-flex; align-items: center; gap: 7px; }
.film-label .social-icon { width: 16px; height: 16px; }
.reel-platform .social-icon { width: 17px; height: 17px; }
.film-intro-label { font-size: 9px; gap: 5px; }
.film-intro-label .social-icon { width: 15px; height: 15px; }

/* The client's expertise copy, illustrated as a pool plan. */
.expertise { background: var(--blue); color: #fff; }
.expertise-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 36px 100px; padding-block: 75px 26px; }
.expertise-intro h2 { font-size: clamp(34px, 3.6vw, 50px); }
.expertise-map { max-width: 470px; margin-top: 25px; }
.expertise-map > svg { display: block; width: 100%; height: auto; }
.expertise-copy { align-self: center; padding-top: 9px; }
.expertise-copy > p { font-size: 14px; color: #d0e0ee; margin-bottom: 21px; line-height: 1.85; }
.expertise-copy > .expertise-lead { font-size: 26px; color: #fff; letter-spacing: -.04em; line-height: 1.35; margin-bottom: 15px; }
.expertise-copy .button { margin-top: 7px; font-size: 12px; }
.expertise-signature { grid-column: 1/-1; border-top: 1px solid #ffffff30; padding-top: 23px; display: flex; align-items: center; justify-content: center; gap: 20px; font-size: 10px; color: #d0e0ee; }
.expertise-signature > span { color: #48b0e8; }
.expertise + .properties { padding-top: 90px; }
.expertise-page-rim { height: 66px; margin-block: 34px; background: #3088c0 url('assets/pool-mosaic.svg'); border-top: 6px solid #e7eae9; box-shadow: inset 0 3px 0 var(--blue); }
.expertise-perspectives { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; border-top: 1px solid var(--line); margin-top: 40px; padding-top: 32px; }
.expertise-perspectives .section-kicker { font-size: 12px; margin-bottom: 18px; }
.expertise-perspectives h2 { margin: 0 0 18px; font-size: 27px; }
.expertise-perspectives p { font-size: 14px; }
.expertise-perspectives .text-link { font-size: 12px; }
@media (max-width: 1150px) {
  .main-nav { gap: 18px; }
  .expertise-layout { gap: 30px 55px; }
  .expertise-copy > p { font-size: 13px; }
  .expertise-copy > .expertise-lead { font-size: 24px; }
}
@media (max-width: 900px) {
  .expertise-layout { gap: 25px 40px; padding-top: 60px; }
  .expertise-intro h2 { font-size: 35px; }
  .expertise-intro .section-kicker { font-size: 10px; }
  .expertise-copy > p { font-size: 12px; margin-bottom: 18px; }
  .expertise-copy > .expertise-lead { font-size: 23px; }
  .expertise-copy .button { font-size: 10px; gap: 14px; padding-inline: 17px; }
  .social-links { gap: 17px; }
  .social-links > a { gap: 7px; }
  .social-links .social-icon { width: 17px; height: 17px; }
}
@media (max-width: 620px) {
  .expertise-layout { display: block; padding-block: 45px 25px; }
  .expertise-intro h2 { font-size: 35px; }
  .expertise-intro h2 br:nth-child(2) { display: none; }
  .expertise-map { margin: 25px auto 29px; max-width: 380px; }
  .expertise-copy > p { font-size: 13px; line-height: 1.8; }
  .expertise-copy > .expertise-lead { font-size: 24px; }
  .expertise-copy .button { font-size: 11px; gap: 23px; }
  .expertise-signature { display: block; font-size: 10px; line-height: 2.1; text-align: center; margin-top: 32px; padding-top: 18px; text-wrap: balance; }
  .expertise-signature > span { margin-inline: 8px; }
  .expertise + .properties { padding-top: 55px; }
  .expertise-perspectives { grid-template-columns: 1fr; gap: 30px; }
  .social-links { gap: 18px; flex-wrap: wrap; }
  .social-links > a { font-size: 10px; gap: 6px; }
  .social-links span { margin-left: 0; }
  .footer-social > a { gap: 8px; }
  .footer-social .social-icon { width: 17px; height: 17px; }
  .reel-platform { gap: 5px; font-size: 8px; }
  .reel-platform .social-icon { width: 14px; height: 14px; }
  .film-intro-label { font-size: 8px; gap: 4px; }
  .film-intro-label .social-icon { width: 13px; height: 13px; }
}

/* The hero film has the scale of a featured story. */
.hero-film { width: clamp(250px, 21vw, 300px); bottom: 105px; padding: 9px 9px 0; }
.hero-film .film-picture { height: auto; aspect-ratio: 9/13; }
.hero-film .play-disc { width: 66px; height: 66px; }
.hero-film .play-disc .icon { width: 28px; height: 28px; }
.hero-film .film-caption { padding: 13px 9px 16px; }
.hero-film .film-intro-label { font-size: 11px; gap: 7px; }
.hero-film .film-caption strong { font-size: 14px; margin-top: 3px; }
@media (min-width: 901px) and (max-width: 1150px) {
  .site-header { gap: 18px; }
  .site-header .brand-logo { width: 100px; height: 100px; }
  .hero h1 { font-size: clamp(49px, 5.5vw, 63px); }
  .hero-film { width: 236px; bottom: 97px; }
}
@media (min-width: 621px) and (max-width: 900px) {
  .hero { min-height: 790px; }
  .hero-film { width: clamp(210px, 29vw, 245px); bottom: 93px; }
  .hero-description { max-width: min(380px, calc(100vw - var(--gutter)*2 - 255px)); }
  .hero-actions { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 620px) {
  .hero { min-height: 0; height: auto; }
  .hero-film { position: relative; right: auto; bottom: auto; width: clamp(196px, 54vw, 235px); margin: 37px 34px 94px auto; transform: rotate(3deg); }
  .hero-film .film-picture { aspect-ratio: 9/12; }
  .hero-film .play-disc { width: 55px; height: 55px; }
  .hero-film .play-disc .icon { width: 25px; height: 25px; }
  .hero-film .film-caption { padding: 11px 6px 12px; }
  .hero-film .film-intro-label { font-size: 10px; }
  .hero-film .film-caption strong { font-size: 12px; }
}

/* Landmarks stay reachable throughout the long page. */
html { scroll-padding-top: 132px; }
.site-header { position: sticky; top: 0; z-index: 25; }
.main-nav { gap: 24px; }
.main-nav > a, .nav-group > summary { white-space: nowrap; }
.main-nav > a[aria-current]:after { right: 0; }
.nav-group { position: relative; }
.nav-group > summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; padding-block: 12px; font-size: 15px; font-weight: 600; border-bottom: 1px solid transparent; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary > span { font-size: 15px; transition: transform .2s; }
.nav-group[open] > summary > span { transform: rotate(180deg); }
.nav-group.is-current > summary { border-bottom-color: var(--blue); }
.nav-group > summary:focus-visible { outline: 3px solid var(--aqua); outline-offset: 4px; }
.nav-dropdown { position: absolute; top: calc(100% + 12px); right: -24px; width: 305px; background: #fff; padding: 10px 22px; border: 1px solid var(--line); box-shadow: 0 12px 26px #08204012; }
.nav-dropdown > a { display: block; padding: 17px 0; font-size: 14px; font-weight: 600; line-height: 1.5; }
.nav-dropdown > a + a { border-top: 1px solid var(--line); }
.nav-dropdown > a > span { display: block; font-size: 11px; color: var(--muted); font-weight: 400; margin-top: 4px; }
.nav-dropdown > a:hover, .nav-dropdown > a[aria-current] { color: #2678ab; }
.nav-dropdown > a[aria-current]::before { content: '•'; display: inline-block; margin-right: 8px; }

/* A centered pause for a single, genuine client voice. */
.testimonials { text-align: center; padding-block: 78px 82px; max-width: 1080px; }
.testimonials > .section-kicker { justify-content: center; margin-bottom: 18px; }
.testimonials h2 { font-size: clamp(36px, 3.4vw, 49px); }
.testimonials h2 br { display: none; }
.testimonial { max-width: 875px; margin: 27px auto 0; padding: 0; }
.quote-mark { height: 52px; font-size: 88px; margin: 0; }
.testimonial blockquote { font-size: clamp(27px, 2.8vw, 39px); line-height: 1.45; letter-spacing: -.04em; }
.testimonial figcaption { display: flex; flex-direction: row; justify-content: center; align-items: center; gap: 13px; margin-top: 26px; text-align: left; }
.testimonial .review-avatar { background: var(--mist); color: var(--blue); width: 45px; height: 45px; }
.testimonial figcaption > span:nth-child(2) { display: grid; font-size: 10px; line-height: 1.8; }
.testimonial figcaption strong { font-size: 12px; color: var(--blue); }
.testimonial figcaption time { font-size: 9px; color: var(--muted); }
.review-links { display: flex; justify-content: center; align-items: center; gap: 28px; margin-top: 22px; }
.review-links .text-link { font-size: 11px; gap: 11px; margin: 0; }
.review-links .social-icon { width: 18px; height: 18px; }
.review-links > a:last-child { font-size: 10px; color: var(--muted); padding-block: 12px; }

/* The directory sits opposite its introduction, rather than beneath it. */
.partners { padding-block: 80px; }
.partners-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 95px; align-items: start; }
.partners-intro { grid-column: 2; grid-row: 1; }
.partners-intro h2 { font-size: clamp(34px, 3.2vw, 46px); }
.partners-intro > p:not(.section-kicker) { max-width: 460px; margin: 23px 0 0; font-size: 13px; }
.partners-scene { grid-column: 2; grid-row: 2; min-height: 0; height: 270px; width: 100%; }
.partners-scene > img { object-position: center 70%; }
.partners-scene .scene-caption { left: 25px; bottom: 53px; }
.partners-scene .scene-caption > span { font-size: 28px; }
.partners-scene .scene-caption .icon { display: none; }
.partners-scene .scene-label { left: 25px; bottom: 20px; }
.partner-list { grid-column: 1; grid-row: 1 / span 2; padding-top: 8px; }
.service-list-title { font-size: 13px; font-weight: 600; margin-bottom: 24px; }
.partner-service summary { padding-block: 25px; }

/* The journal reads as an index: one entry, one destination. */
.journal { display: grid; grid-template-columns: .72fr 1.28fr; gap: 85px; padding-block: 70px 85px; border-top: 1px solid var(--line); }
.journal-intro { padding-top: 5px; }
.journal-intro h2 { font-size: clamp(43px, 5vw, 68px); }
.journal-intro > p:not(.section-kicker) { max-width: 270px; font-size: 13px; color: var(--muted); margin-top: 24px; }
.journal-index { display: flex; gap: 28px; align-items: center; font-size: 10px; color: var(--muted); margin-top: 28px; }
.journal-index > span { font-size: 25px; color: var(--blue); }
.journal-story { display: grid; grid-template-columns: 150px 1fr; gap: 26px; padding-block: 24px; border-top: 1px solid var(--line); }
.journal-story:first-child { padding-top: 0; border: 0; }
.journal-story:last-child { padding-bottom: 0; }
.journal-story > img { width: 150px; height: 142px; object-fit: cover; }
.journal-story .article-meta { margin: 0 0 9px; }
.journal-story h3 { font-size: 23px; line-height: 1.25; }
.story-link { display: flex; gap: 20px; align-items: center; margin-top: 17px; font-size: 11px; font-weight: 600; }
.story-link .icon { width: 18px; height: 18px; transition: transform .2s; }
.journal-story:hover h3 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.journal-story:hover .icon { transform: translate(2px, -2px); }

/* The final invitation spans the page; the form has its own visual boundary. */
.contact-heading { padding-top: 68px; text-align: center; }
.contact-heading .section-kicker { justify-content: center; margin-bottom: 18px; }
.contact-heading h2 { font-size: clamp(43px, 5vw, 68px); }
.contact-layout { max-width: 1050px; grid-template-columns: .8fr 1.2fr; gap: 72px; padding-block: 48px 75px; align-items: center; }
.contact-copy > p:not(.section-kicker) { margin-top: 0; }
.contact-person { margin-top: 32px; }
.contact-person > img { width: 70px; height: 70px; }
.lead-form { background: #fff; padding: 30px; border-top: 3px solid var(--aqua); }
@media (max-width: 1150px) {
  .main-nav { gap: 17px; }
  .nav-group > summary { font-size: 13px; gap: 5px; }
  .partners-layout { gap: 25px 55px; }
  .journal { gap: 55px; }
  .journal-story { grid-template-columns: 125px 1fr; gap: 20px; }
  .journal-story > img { width: 125px; height: 145px; }
  .journal-story h3 { font-size: 21px; }
  .contact-layout { gap: 45px; }
}
@media (max-width: 900px) {
  html { scroll-padding-top: 124px; }
  .main-nav { max-height: calc(100dvh - 125px); overflow-y: auto; }
  .main-nav > a, .nav-group > summary { font-size: 18px; }
  .nav-group { width: 100%; }
  .nav-group > summary { width: 100%; justify-content: space-between; }
  .nav-dropdown { position: static; width: 100%; border: 0; border-left: 2px solid var(--line); box-shadow: none; padding: 0 0 0 20px; margin: 6px 0 12px; }
  .nav-dropdown > a { padding-block: 12px; font-size: 14px; }
  .nav-dropdown > a > span { font-size: 11px; }
  .partners-layout { gap: 25px 35px; }
  .partners-intro h2 { font-size: 35px; }
  .partners-scene { height: 290px; }
  .partners-scene .scene-caption > span { font-size: 25px; }
  .partners-intro .section-kicker { font-size: 10px; }
  .journal { grid-template-columns: .65fr 1.35fr; gap: 35px; }
  .journal-intro h2 { font-size: 43px; }
  .journal-story { grid-template-columns: 100px 1fr; gap: 18px; }
  .journal-story > img { width: 100px; height: 128px; }
  .journal-story h3 { font-size: 20px; }
  .journal-story .article-meta { gap: 10px; font-size: 9px; flex-wrap: wrap; }
  .contact-layout { gap: 30px; grid-template-columns: .8fr 1.2fr; }
  .lead-form { padding: 24px; }
  .contact-phone { font-size: 26px; gap: 15px; }
  .contact-email { font-size: 11px; }
}
@media (max-width: 620px) {
  html { scroll-padding-top: 116px; }
  .main-nav { max-height: calc(100dvh - 155px); }
  .testimonials { padding-block: 52px; }
  .testimonials h2 { font-size: 35px; }
  .testimonials h2 br { display: block; }
  .testimonial { margin-top: 24px; }
  .testimonial blockquote { font-size: 27px; line-height: 1.45; }
  .testimonial figcaption { margin-top: 23px; }
  .review-links { flex-direction: column; gap: 10px; margin-top: 24px; }
  .partners { padding-block: 50px; }
  .partners-layout { display: flex; flex-direction: column; gap: 25px; }
  .partners-intro { width: 100%; }
  .partners-intro h2 { font-size: 35px; }
  .partners-intro > p:not(.section-kicker) { font-size: 13px; margin-top: 20px; }
  .partners-scene { height: 230px; }
  .partners-scene .scene-caption > span { font-size: 26px; }
  .partner-list { width: 100%; padding-top: 7px; }
  .service-list-title { font-size: 13px; margin-bottom: 20px; }
  .journal { display: block; padding-block: 50px; }
  .journal-intro { margin-bottom: 30px; }
  .journal-intro h2 { font-size: 42px; }
  .journal-intro h2 br { display: none; }
  .journal-intro > p:not(.section-kicker) { max-width: 300px; margin-top: 18px; }
  .journal-index { display: none; }
  .journal-story { grid-template-columns: 92px 1fr; gap: 17px; padding-block: 22px; }
  .journal-story > img { width: 92px; height: 134px; }
  .journal-story h3 { font-size: 21px; }
  .journal-story h3 br { display: none; }
  .journal-story .article-meta { display: block; font-size: 9px; line-height: 1.5; }
  .journal-story .article-meta > span { margin-left: 8px; }
  .story-link { margin-top: 14px; font-size: 10px; gap: 15px; }
  .contact-heading { padding-top: 50px; }
  .contact-heading .section-kicker { font-size: 10px; }
  .contact-heading h2 { font-size: 43px; }
  .contact-layout { display: flex; flex-direction: column; align-items: stretch; gap: 30px; padding-block: 30px 55px; }
  .contact-copy { text-align: center; }
  .contact-phone { font-size: 31px; margin: 20px auto 0; }
  .contact-person { margin-top: 22px; justify-content: center; text-align: left; }
  .contact-person > img { width: 54px; height: 54px; }
  .lead-form { padding: 24px 20px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 370px) {
  .testimonial blockquote { font-size: 24px; }
  .journal-story { grid-template-columns: 78px 1fr; gap: 14px; }
  .journal-story > img { width: 78px; height: 128px; }
  .journal-story h3 { font-size: 19px; }
  .journal-story .article-meta > span { display: block; margin: 0; }
  .contact-heading h2 { font-size: 36px; }
  .lead-form { padding: 22px 15px; }
  .lead-form > .button { font-size: 10px; }
}

@media (min-width: 901px) and (max-width: 1050px) {
  .site-header { gap: 14px; }
  .main-nav { gap: 12px; }
}
/* Offset section anchors without excluding the sticky controls from the viewport. */
:root { --section-offset: 132px; }
html { scroll-padding-top: 0; }
main[id], main > section[id] { scroll-margin-top: var(--section-offset); }
@media (max-width: 900px) { :root { --section-offset: 124px; } }
@media (max-width: 620px) { :root { --section-offset: 116px; } }

/* A place to meet and respond, built around a real publication. */
.community-hub { background: #edf4f8; color: var(--blue); border-block: 1px solid var(--line); }
.community-hub:after { display: none; }
.community-inner { padding-block: 78px 40px; }
.community-header { display: flex; justify-content: space-between; align-items: center; gap: 60px; margin-bottom: 38px; }
.community-header h2 { font-size: clamp(38px, 4.2vw, 60px); }
.community-header > div > p:not(.section-kicker) { max-width: 520px; margin-top: 24px; font-size: 14px; color: var(--muted); }
.community-profile { display: flex; align-items: center; gap: 25px; flex-shrink: 0; }
.community-profile-picture { display: block; position: relative; }
.community-profile-picture > img:first-child { width: 104px; height: 104px; border-radius: 50%; border: 5px solid #fff; object-position: 54% 30%; }
.community-profile-picture .profile-network { position: absolute; bottom: 2px; right: 0; width: 31px; height: 31px; background: #fff; border: 4px solid #fff; border-radius: 50%; }
.community-profile > span:last-child { display: grid; gap: 2px; font-size: 11px; }
.community-profile strong { font-size: 48px; font-weight: 500; letter-spacing: -.06em; line-height: 1.15; }
.community-profile strong > span { font-size: .62em; color: var(--aqua); vertical-align: top; }
.profile-handle { font-size: 11px; font-weight: 600; margin-top: 8px; }
.profile-handle > span { margin-left: 12px; }
.community-conversations { display: grid; grid-template-columns: 1.75fr 1fr; gap: 26px; align-items: stretch; }
.community-post { display: grid; grid-template-columns: .92fr 1fr; background: #fff; border: 1px solid var(--line); min-width: 0; }
.community-post-cover { display: block; position: relative; min-height: 395px; overflow: hidden; background: var(--blue); }
.community-post-cover > img { width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.community-post-cover:after { content: ''; position: absolute; inset: 0; background: linear-gradient(#08204055, transparent 45%); pointer-events: none; }
.post-video-label { position: absolute; z-index: 1; top: 19px; left: 18px; display: flex; align-items: center; gap: 8px; color: #fff; font-size: 10px; }
.post-video-label > img { filter: brightness(0) invert(1); }
.community-post-cover .play-disc { z-index: 1; width: 58px; height: 58px; }
.community-post-copy { padding: 28px; display: flex; flex-direction: column; }
.post-author { display: flex; align-items: center; gap: 10px; margin-bottom: 35px; }
.post-author > img { width: 37px; height: 37px; border-radius: 50%; object-position: 55% 30%; }
.post-author > span { display: grid; font-size: 9px; color: var(--muted); gap: 3px; }
.post-author strong { font-size: 11px; color: var(--blue); font-weight: 600; }
.community-post h3 { font-size: clamp(25px, 2.3vw, 33px); line-height: 1.15; }
.community-post-copy > p { font-size: 12px; color: var(--muted); margin-block: 22px 27px; line-height: 1.9; }
.post-discuss { display: flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; margin-top: auto; padding-top: 17px; border-top: 1px solid var(--line); }
.post-discuss .icon { width: 19px; height: 19px; }
.post-discuss .icon:last-child { margin-left: auto; }
.post-discuss:hover { color: #2678ab; }
.community-invitation { padding: 31px; background: var(--blue); color: #fff; display: flex; flex-direction: column; }
.conversation-label { display: flex; align-items: center; gap: 9px; font-size: 10px; color: #d0e0ee; }
.conversation-label > span { width: 7px; height: 7px; border: 1px solid #91cbee; border-radius: 50%; }
.community-invitation h3 { font-size: clamp(28px, 2.5vw, 36px); line-height: 1.14; margin-top: 24px; }
.community-invitation p { font-size: 12px; color: #d0e0ee; margin-block: 21px 24px; }
.community-invitation .button { min-height: 47px; font-size: 10px; gap: 15px; padding: 13px; justify-content: space-between; margin-top: auto; }
.community-invitation .button .icon { width: 18px; height: 18px; }
.invitation-signature { font-size: 10px; color: #d0e0ee; margin-top: 18px; }
.invitation-signature strong { font-size: 13px; color: #fff; font-weight: 500; }
@media (max-width: 1150px) {
  .community-header { gap: 35px; }
  .community-profile { gap: 17px; }
  .community-profile-picture > img:first-child { width: 88px; height: 88px; }
  .community-profile strong { font-size: 42px; }
  .community-conversations { grid-template-columns: 1.6fr 1fr; gap: 22px; }
  .community-post-copy { padding: 23px; }
  .community-invitation { padding: 26px; }
  .post-discuss { font-size: 10px; gap: 7px; }
}
@media (max-width: 900px) {
  .community-inner { padding-block: 60px 28px; }
  .community-header { align-items: flex-start; }
  .community-header h2 { font-size: 41px; }
  .community-header > div > p:not(.section-kicker) { font-size: 13px; max-width: 390px; }
  .community-profile { flex-direction: column; align-items: flex-start; gap: 10px; }
  .community-profile-picture > img:first-child { width: 74px; height: 74px; }
  .community-profile strong { font-size: 39px; }
  .community-profile > span:last-child { font-size: 10px; }
  .community-conversations { grid-template-columns: 1fr; }
  .community-post { grid-template-columns: .85fr 1.15fr; }
  .community-post-cover { min-height: 370px; }
  .community-post-copy { padding: 30px; }
  .community-post h3 { font-size: 34px; }
  .community-post-copy > p { font-size: 13px; }
  .post-discuss { font-size: 11px; }
  .community-invitation { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 35px; padding: 30px; }
  .conversation-label { grid-column: 1; }
  .community-invitation h3 { grid-column: 1; grid-row: 2 / span 2; margin: 0; font-size: 32px; }
  .community-invitation p { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
  .community-invitation .button { grid-column: 2; grid-row: 3; }
  .invitation-signature { grid-column: 1/-1; margin: 0; }
}
@media (max-width: 620px) {
  .community-inner { padding-block: 45px 20px; }
  .community-header { display: block; margin-bottom: 27px; }
  .community-header .section-kicker { font-size: 10px; margin-bottom: 19px; }
  .community-header h2 { font-size: 38px; }
  .community-header > div > p:not(.section-kicker) { margin-top: 21px; font-size: 13px; }
  .community-profile { flex-direction: row; align-items: center; gap: 18px; margin-top: 26px; }
  .community-profile-picture > img:first-child { width: 75px; height: 75px; }
  .community-profile strong { font-size: 38px; }
  .community-profile > span:last-child { grid-template-columns: auto auto; gap: 0 12px; align-items: center; }
  .profile-handle { grid-column: 1/-1; margin-top: 3px; }
  .community-post { display: block; }
  .community-post-cover { min-height: 0; height: 280px; }
  .community-post-cover > img { object-position: 50% 58%; }
  .community-post-copy { padding: 24px; }
  .post-author { margin-bottom: 21px; }
  .community-post h3 { font-size: 32px; }
  .community-post-copy > p { font-size: 13px; margin-block: 18px 22px; }
  .post-discuss { font-size: 10px; }
  .community-invitation { display: flex; padding: 28px; gap: 0; }
  .community-invitation h3 { font-size: 33px; margin-top: 22px; }
  .community-invitation p { font-size: 13px; margin-block: 20px 24px; }
  .community-invitation .button { font-size: 10px; }
  .invitation-signature { margin-top: 19px; }
}
@media (max-width: 370px) {
  .community-header h2 { font-size: 33px; }
  .community-profile { gap: 12px; }
  .community-profile > span:last-child { font-size: 9px; gap: 0 8px; }
  .community-profile strong { font-size: 32px; }
  .community-profile-picture > img:first-child { width: 65px; height: 65px; }
  .community-post-copy { padding: 22px 19px; }
  .community-post h3 { font-size: 29px; }
  .community-invitation { padding: 24px; }
  .community-invitation h3 { font-size: 31px; }
}

/* Full portrait player: a major element of the hero, not a thumbnail. */
.hero { min-height: 840px; }
.hero-player { width: clamp(300px, 25vw, 360px); bottom: 92px; transform: rotate(1.5deg); }
.hero-player:hover { transform: rotate(1.5deg); }
.hero-player .film-picture { aspect-ratio: 9/16; }
.hero-video-poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
#hero-video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; background: #082040; }
.hero-player .film-caption { padding: 11px 8px 12px; }
.hero-player-controls { display: flex; justify-content: space-between; align-items: center; gap: 15px; margin-bottom: 6px; }
.hero-player-controls > button { min-height: 38px; font-size: 11px; font-weight: 600; background: var(--mist); color: var(--blue); padding: 9px 12px; border-radius: 2px; }
.hero-player-controls > button:hover { background: #dceaf5; }
.hero-player-controls > button:last-child { min-width: 58px; }
.hero-video-source { display: flex; justify-content: space-between; align-items: center; gap: 15px; min-height: 33px; font-size: 11px; font-weight: 600; }
.hero-video-source > span { display: flex; align-items: center; gap: 8px; }
.hero-video-source .icon { width: 17px; height: 17px; }
#hero-player-status { font-size: 11px; margin-bottom: 7px; }
@media (min-width: 901px) and (max-width: 1150px) {
  .hero { min-height: 745px; }
  .hero-player { width: 260px; bottom: 93px; }
}
@media (max-width: 900px) {
  .hero { min-height: 0; height: auto; max-height: none; }
  .hero-content { padding-bottom: 0; }
  .hero-player { position: relative; right: auto; bottom: auto; width: 280px; margin: 30px var(--gutter) 100px auto; }
  .hero-description { max-width: 440px; }
}
@media (max-width: 620px) {
  .hero-player { width: clamp(230px, 62vw, 270px); margin: 34px 30px 98px auto; }
  .hero-player .film-picture { aspect-ratio: 9/16; }
  .hero-player-controls > button { font-size: 10px; padding-inline: 10px; }
  .hero-video-source { font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) { .hero-player, .hero-player:hover { transform: none; } }

/* A film shelf with its next frame in view: the direction is self-evident. */
.hero-film-duration { color: var(--muted); font-weight: 400; font-size: 10px; }
.reel-gallery { padding-block: 100px 70px; background: #edf4f8; overflow: hidden; }
.reel-heading { display: grid; grid-template-columns: 1.4fr 1fr; align-items: end; gap: 70px; margin-bottom: 46px; }
.reel-heading h2 { font-size: clamp(34px, 4vw, 58px); line-height: 1.12; letter-spacing: -.045em; }
.reel-description { max-width: 390px; padding-bottom: 4px; }
.reel-description p { color: var(--muted); font-size: 14px; line-height: 1.8; margin-bottom: 20px; }
.reel-description .text-link { font-size: 11px; gap: 10px; }
.reel-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 23px; }
.reel-toolbar > p { display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 600; }
.reel-dot { width: 7px; height: 7px; border-radius: 50%; background: #3088c0; }
.reel-total { margin-left: 8px; padding-left: 16px; border-left: 1px solid #b7ccda; font-size: 11px; font-weight: 400; color: var(--muted); }
.reel-navigation { display: flex; align-items: center; gap: 10px; }
#reel-position { min-width: 77px; text-align: right; margin-right: 13px; font-variant-numeric: tabular-nums; font-size: 11px; color: var(--muted); }
.reel-navigation > button { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid #a6c1d2; border-radius: 50%; background: transparent; color: var(--blue); transition: background .2s, color .2s; }
.reel-navigation > button:last-child { background: var(--blue); color: #fff; border-color: var(--blue); }
.reel-navigation > button:hover:not(:disabled) { background: #3088c0; border-color: #3088c0; color: #fff; }
.reel-navigation > button:disabled { opacity: .3; cursor: default; }
.reel-navigation > button:first-of-type .icon { transform: rotate(180deg); }
.reel-track { display: flex; align-items: flex-start; gap: 24px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); padding: 4px var(--gutter) 25px; scrollbar-width: thin; scrollbar-color: #8eb5cf #dce8f0; }
.reel-track:focus-visible { outline: 2px solid #3088c0; outline-offset: -2px; }
.reel-card { flex: 0 0 clamp(260px, 23vw, 340px); min-width: 0; scroll-snap-align: start; }
.reel-screen { position: relative; aspect-ratio: 9/16; overflow: hidden; border-radius: 9px; background: #082040; }
.reel-screen > video { display: block; width: 100%; height: 100%; object-fit: contain; }
.reel-duration { position: absolute; top: 13px; right: 13px; color: #fff; background: #082040c9; border-radius: 4px; padding: 4px 7px; font-size: 10px; font-variant-numeric: tabular-nums; pointer-events: none; }
.reel-controls { position: absolute; left: 12px; right: 12px; bottom: 12px; display: flex; gap: 7px; }
.reel-controls > button { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #082040d9; border: 1px solid #ffffff40; color: #fff; backdrop-filter: blur(6px); }
.reel-controls > button:hover { background: #3088c0; }
.reel-controls .icon { width: 18px; height: 18px; }
.reel-controls > button:last-child { margin-left: auto; }
.sound-on, .playback-pause { display: none; }
[data-muted="false"] .sound-off, [data-playing="true"] .playback-play { display: none; }
[data-muted="false"] .sound-on, [data-playing="true"] .playback-pause { display: block; }
.reel-error { position: absolute; inset: 40% 16px auto; padding: 14px; background: #082040e8; color: #fff; font-size: 12px; text-align: center; border-radius: 5px; }
.reel-copy { padding: 18px 2px 0; }
.reel-copy > p { font-size: 10px; color: var(--muted); margin-bottom: 6px; }
.reel-copy h3 { font-size: clamp(18px, 1.7vw, 24px); line-height: 1.25; font-weight: 500; letter-spacing: -.035em; min-height: 30px; }
.reel-links { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 9px; border-top: 1px solid #cadce7; }
.reel-links > a:first-child { display: flex; align-items: center; gap: 10px; min-height: 38px; font-size: 11px; font-weight: 600; }
.reel-links > a:first-child .icon { width: 17px; height: 17px; }
.reel-source { width: 38px; height: 38px; display: grid; place-items: center; }
.reel-source img { width: 18px; height: 18px; }
.reel-links a:hover { color: #3088c0; }
.reel-footer { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-top: 25px; color: var(--muted); }
.reel-footer > p { font-size: 10px; }
@media (min-width: 1600px) {
  .reel-track { padding-inline: max(var(--gutter), calc((100vw - 1440px) / 2)); scroll-padding-inline: max(var(--gutter), calc((100vw - 1440px) / 2)); }
}
@media (max-width: 900px) {
  .reel-gallery { padding-block: 65px 45px; }
  .reel-heading { gap: 35px; grid-template-columns: 1.1fr 1fr; margin-bottom: 30px; }
  .reel-heading h2 { font-size: 37px; }
  .reel-description p { font-size: 12px; }
  .reel-description .text-link { font-size: 10px; }
  .reel-track { gap: 20px; }
  .reel-card { flex-basis: 280px; }
  .reel-footer { align-items: flex-start; }
  .reel-footer > p { max-width: 230px; }
}
@media (max-width: 620px) {
  .reel-gallery { padding-block: 50px 35px; }
  .reel-heading { display: block; margin-bottom: 27px; }
  .reel-heading h2 { font-size: clamp(30px, 8.5vw, 43px); }
  .reel-description { margin-top: 23px; max-width: 335px; }
  .reel-description p { font-size: 13px; margin-bottom: 16px; }
  .reel-toolbar { gap: 8px; margin-bottom: 15px; }
  .reel-toolbar > p { font-size: 10px; gap: 7px; }
  .reel-total { display: none; }
  .reel-navigation { gap: 7px; }
  .reel-navigation > button { width: 42px; height: 42px; }
  #reel-position { font-size: 10px; min-width: 36px; margin-right: 2px; }
  .reel-track { gap: 16px; padding-bottom: 19px; }
  .reel-card { flex-basis: min(76vw, 310px); }
  .reel-copy h3 { font-size: 21px; }
  .reel-footer { display: block; padding-top: 18px; }
  .reel-footer > p { max-width: none; margin-top: 13px; }
}

/* Mobile composition: comfortable reading, portrait films and reachable controls. */
.nav-label-short { display: none; }
@media (max-width: 900px) {
  :root { --mobile-header: 88px; --section-offset: calc(var(--mobile-header) + 16px); }
  html.nav-open, html.nav-open body { overflow: hidden; overscroll-behavior: none; }
  .site-header { height: var(--mobile-header); gap: 16px; }
  .site-header .brand-logo { width: var(--mobile-header); height: var(--mobile-header); }
  .site-header .brand, .menu-toggle { flex-shrink: 0; }
  .menu-toggle { width: 44px; height: 44px; }
  .nav-cta { min-height: 44px; font-size: 12px; padding: 12px 16px; gap: 10px; }
  .main-nav { position: fixed; top: var(--mobile-header); bottom: 0; max-height: none; padding: 20px var(--gutter) max(28px, env(safe-area-inset-bottom)); overscroll-behavior: contain; box-shadow: none; }
  .main-nav.is-open { gap: 0; }
  .main-nav > a, .nav-group > summary { font-size: 20px; min-height: 64px; padding-block: 16px; width: 100%; border-bottom: 1px solid var(--line); }
  .nav-dropdown { margin-block: 12px 20px; }
  .nav-dropdown > a { min-height: 56px; font-size: 16px; }
  .nav-dropdown > a > span { font-size: 12px; }
  .hero-player, .hero-player:hover { transform: none; }
  .hero-player-controls > button { min-width: 70px; min-height: 44px; font-size: 12px; }
  .hero-video-source { min-height: 44px; font-size: 12px; }
  .hero-film-duration { font-size: 11px; }
  .hero-description { font-size: 14px; line-height: 1.8; }
  .about-copy > p:not(.section-kicker), .expertise-copy > p, .partners-intro > p:not(.section-kicker), .service-details > p { font-size: 14px; }
  .about-copy > p.lead { font-size: 16px; }
  .reel-description p { font-size: 14px; }
  .reel-description .text-link { font-size: 12px; }
  .reel-navigation > button, .reel-controls > button, .reel-source { width: 44px; height: 44px; flex-shrink: 0; }
  .reel-links > a:first-child { min-height: 44px; font-size: 12px; gap: 8px; }
  .reel-copy > p, .reel-footer > p { font-size: 12px; }
  .reel-copy h3 { min-height: 2.5em; }
  .reel-links { margin-top: 8px; }
  .field label { font-size: 13px; }
  input, select, textarea { font-size: 16px; min-height: 52px; }
  .lead-form > .button { font-size: 13px; min-height: 54px; gap: 12px; }
  .form-note { font-size: 12px; }
  .contact-layout > *, .community-post > *, .hero-content { min-width: 0; }
  .footer-social > a, .footer-bottom > a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (min-width: 621px) and (max-width: 900px) {
  .hero { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 24px; align-items: center; padding: 46px var(--gutter) 0; }
  .hero-content { padding: 0; }
  .hero h1 { font-size: clamp(34px, 4.8vw, 43px); line-height: 1.12; }
  .hero-location { font-size: 11px; margin-bottom: 22px; }
  .hero-description { margin-block: 24px; }
  .hero-player { width: 100%; max-width: 300px; margin: 0 0 0 auto; }
  .hero-bottom { position: relative; inset: auto; grid-column: 1/-1; width: 100%; margin-top: 8px; font-size: 11px; }
  .contact-layout { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 24px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .lead-form { padding: 24px 20px; }
}

@media (max-width: 620px) {
  :root { --mobile-header: 80px; --gutter: clamp(20px, 6vw, 32px); }
  .site-header { padding-left: max(12px, env(safe-area-inset-left)); padding-right: max(12px, env(safe-area-inset-right)); gap: 10px; }
  .nav-label-full { display: none; }
  .nav-label-short { display: inline; }
  .nav-cta { margin-left: auto; font-size: 12px; padding-inline: 12px; }
  .nav-cta .icon { width: 17px; height: 17px; }
  .hero { padding-top: 0; }
  .hero-content { padding: 32px var(--gutter) 0; }
  .hero-location { font-size: 11px; line-height: 1.6; gap: 8px; margin-bottom: 22px; }
  .hero h1 { font-size: clamp(30px, 9.5vw, 48px); line-height: 1.12; }
  .hero-description { margin-block: 22px; font-size: 14px; max-width: 460px; }
  .hero-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; align-items: stretch; }
  .hero-actions .button, .hero-secondary { font-size: 12px; min-height: 54px; line-height: 1.5; padding: 10px 12px; gap: 9px; justify-content: space-between; }
  .hero-secondary { display: flex; align-items: center; padding-inline: 0; }
  .hero-actions .icon { width: 18px; height: 18px; }
  .hero-player { width: min(calc(100% - 2 * var(--gutter)), 326px); margin: 28px auto 0; padding: 7px 7px 0; }
  .hero-player .film-caption { padding: 8px; }
  .hero-player-controls { gap: 10px; margin-bottom: 0; }
  .hero-player-controls > button { padding-inline: 12px; }
  .hero-bottom { position: relative; inset: auto; margin: 24px var(--gutter) 0; padding-block: 18px 22px; font-size: 10px; align-items: center; gap: 20px; }
  .hero-bottom > span { max-width: 160px; }
  .hero-bottom > a { font-size: 11px; gap: 12px; }
  .hero-bottom > a { min-height: 44px; }
  .pool-edge { height: 72px; }
  .pool-edge-caption { font-size: 10px; }
  .section-kicker, .about-copy .section-kicker, .community-header .section-kicker, .contact-heading .section-kicker { font-size: 11px; margin-bottom: 18px; }
  .about { gap: 26px; padding-block: 44px 48px; }
  .about-copy h2, .expertise-intro h2, .partners-intro h2 { font-size: clamp(31px, 8.6vw, 40px); }
  .about-signoff { flex-wrap: wrap; gap: 18px; }
  .about-signoff .text-link { font-size: 12px; min-height: 44px; }
  .expertise-layout { padding-block: 48px 28px; gap: 24px; }
  .expertise-map { max-width: 350px; margin: 24px auto 0; }
  .expertise-copy > p.expertise-lead { font-size: 19px; }
  .expertise-copy .button { font-size: 12px; min-height: 52px; padding-inline: 16px; gap: 14px; }
  .expertise-signature { font-size: 11px; line-height: 2; }
  .reel-gallery { padding-block: 48px 32px; }
  .reel-heading { margin-bottom: 22px; }
  .reel-description { margin-top: 18px; max-width: none; }
  .reel-description p { margin-bottom: 10px; }
  .reel-toolbar > p { font-size: 11px; gap: 6px; }
  .reel-toolbar .reel-dot { display: none; }
  #reel-position { font-size: 12px; min-width: 40px; }
  .reel-navigation { gap: 8px; }
  .reel-track { gap: 16px; }
  .reel-card { flex-basis: min(80vw, 326px, max(216px, calc((100svh - 340px) * .5625))); }
  .reel-copy { padding-top: 14px; }
  .reel-copy h3 { font-size: 21px; }
  .estimate-inner { padding-block: 40px; }
  .estimate-inner h2 { font-size: clamp(30px, 8vw, 38px); }
  .estimate-inner p:not(.section-kicker) { font-size: 14px; }
  .estimate-inner .button { font-size: 13px; }
  .community-inner { padding-block: 48px 24px; }
  .community-header h2 { font-size: clamp(32px, 9vw, 42px); }
  .community-header > div > p:not(.section-kicker) { font-size: 14px; }
  .community-profile > span:last-child { font-size: 11px; }
  .community-conversations { gap: 20px; }
  .community-post { display: grid; grid-template-columns: minmax(0, .65fr) minmax(0, 1.35fr); }
  .community-post-cover { height: 100%; min-height: 340px; }
  .community-post-cover > img { object-position: 50% 50%; }
  .community-post-copy { padding: 20px 16px; }
  .post-author { gap: 7px; margin-bottom: 18px; }
  .post-author > img { display: none; }
  .post-author strong { font-size: 12px; }
  .post-author > span { font-size: 10px; }
  .post-video-label { inset: 14px 10px auto; font-size: 10px; flex-wrap: wrap; gap: 7px; }
  .community-post h3 { font-size: clamp(24px, 6.6vw, 31px); }
  .community-post h3 br { display: none; }
  .community-post-copy > p { font-size: 13px; line-height: 1.75; margin-block: 16px; }
  .post-discuss { font-size: 11px; line-height: 1.6; min-height: 48px; gap: 7px; }
  .post-discuss .icon:first-child { display: none; }
  .community-invitation { padding: 24px; }
  .community-invitation h3 { font-size: 31px; margin-top: 18px; }
  .community-invitation h3 br { display: none; }
  .community-invitation p { font-size: 14px; margin-block: 18px 22px; }
  .community-invitation .button { min-height: 50px; font-size: 12px; }
  .conversation-label, .invitation-signature { font-size: 11px; }
  .testimonials { padding-block: 48px; }
  .testimonial blockquote { margin-inline: 0; font-size: clamp(25px, 7vw, 30px); }
  .review-links { gap: 4px; margin-top: 18px; }
  .review-links .text-link, .review-links > a:last-child { min-height: 44px; font-size: 12px; }
  .partners-layout { gap: 24px; }
  .partner-list { order: 1; }
  .partners-scene { order: 2; height: 180px; }
  .partner-service summary { padding-block: 22px; }
  .service-details .text-link { font-size: 12px; min-height: 44px; }
  .service-details ul, .partners-help { font-size: 12px; }
  .partners-help > a { display: inline-flex; align-items: center; min-height: 44px; }
  .journal-intro h2 { font-size: 38px; }
  .journal-intro > p:not(.section-kicker) { font-size: 14px; }
  .journal-story { grid-template-columns: minmax(76px, .75fr) minmax(0, 1.8fr); gap: 16px; }
  .journal-story > img { width: 100%; height: 100%; min-height: 138px; }
  .journal-story h3 { font-size: 21px; }
  .journal-story .article-meta { font-size: 11px; }
  .story-link { font-size: 12px; min-height: 32px; margin-top: 10px; }
  .contact-heading h2 { font-size: clamp(36px, 10vw, 48px); }
  .contact-layout { gap: 28px; padding-top: 24px; }
  .contact-email { font-size: 14px; padding-block: 8px; min-height: 44px; }
  .contact-person { font-size: 11px; }
  .lead-form { padding: 24px 18px; }
  .field { margin-bottom: 18px; }
  .lead-form > .button { padding: 14px 16px; text-align: left; }
  .site-footer { padding-bottom: env(safe-area-inset-bottom); }
  .footer-social { gap: 20px; font-size: 12px; flex-wrap: wrap; }
  .footer-bottom { font-size: 11px; gap: 4px; }
  .article-shell { padding-inline: var(--gutter); margin-block: 28px 48px; font-size: 16px; line-height: 1.8; }
  .article-back { min-height: 44px; font-size: 13px; margin-bottom: 24px; }
  .article-shell h1 { font-size: clamp(32px, 9vw, 44px); }
  .article-shell .article-intro { font-size: 18px; }
  .article-shell h2 { font-size: 28px; }
  .article-cta { padding: 22px; }
  .article-cta .button { font-size: 12px; width: 100%; padding-inline: 14px; }
}

@media (max-width: 350px) {
  .site-header { gap: 6px; }
  .nav-cta { padding-inline: 10px; font-size: 11px; }
  .hero-actions { gap: 12px; }
  .hero-actions .icon { display: none; }
  .hero-player { width: calc(100% - 2 * var(--gutter)); }
  .hero-bottom { gap: 12px; }
  .hero-bottom > span { max-width: 134px; }
  .community-post { grid-template-columns: minmax(0, .55fr) minmax(0, 1.45fr); }
  .community-post-copy { padding: 18px 14px; }
  .community-profile > span:last-child { display: grid; grid-template-columns: 1fr; gap: 0; }
  .reel-links > a:first-child { font-size: 11px; }
  .lead-form { padding-inline: 14px; }
  .journal-story .article-meta > span { display: block; margin: 0; }
}

@media (min-width: 621px) and (max-width: 900px) and (max-height: 550px) {
  :root { --mobile-header: 72px; }
  .hero { padding-top: 28px; align-items: start; }
  .hero-player { max-width: 230px; }
  .reel-card { flex-basis: 200px; }
}

/* Thibault's editorial revision: real estate, direct contact and two social homes. */
:root { --section-offset: 156px; }
.plain-spelling { font-variant-ligatures: none; }
.site-header { height: 140px; padding-inline: clamp(24px, 3.5vw, 56px); gap: 22px; }
.site-header .brand-logo { width: 136px; height: 136px; }
.main-nav { gap: 18px; }
.main-nav > a, .nav-group > summary { font-size: 14px; }
.header-actions { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.header-actions .nav-cta { margin-left: 0; }
.header-call { min-height: 46px; padding: 12px 15px; display: inline-flex; justify-content: center; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 3px; color: var(--blue); font-size: 12px; font-weight: 600; white-space: nowrap; transition: background .2s; }
.header-call:hover { background: var(--mist); }
.header-call .icon { width: 17px; height: 17px; }
.community-profiles { display: grid; gap: 16px; min-width: 285px; }
.community-profiles .community-profile { display: grid; grid-template-columns: 76px minmax(0, 1fr); align-items: center; gap: 20px; margin: 0; }
.community-profiles .community-profile-picture > img:first-child { width: 76px; height: 76px; }
.community-profiles .community-profile > span:last-child { display: grid; grid-template-columns: 1fr; gap: 4px; font-size: 11px; }
.community-profiles .community-profile strong { font-size: 43px; line-height: 1.1; }
.community-profiles .profile-platform { color: var(--blue); font-size: 13px; font-weight: 600; }
.community-tiktok-icon { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 50%; background: #fff; border: 1px solid var(--line); }
.community-profile-tiktok { padding-top: 16px; border-top: 1px solid #c6d9e7; }
.post-availability { font-size: 11px; min-height: 44px; display: flex; align-items: center; margin-top: 6px; color: var(--muted); text-decoration: underline; text-underline-offset: 4px; }
.partners-intro { grid-column: 1; }
.partners-scene { grid-column: 1; }
.partner-list { grid-column: 2; }
.journal-intro h2 { font-size: clamp(36px, 4.1vw, 57px); }
.reel-shelf-title { max-width: 650px; }
.contact-method { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
.contact-method legend { font-size: 13px; font-weight: 600; margin-bottom: 10px; padding: 0; }
.contact-method-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.contact-method label { position: relative; cursor: pointer; min-width: 0; }
.contact-method input { position: absolute; width: 1px; height: 1px; min-height: 1px; opacity: 0; padding: 0; margin: 0; }
.contact-method label > span { display: flex; justify-content: center; align-items: center; gap: 10px; min-height: 52px; padding: 12px; border: 1px solid #bccddb; border-radius: 3px; background: var(--paper); font-size: 13px; }
.contact-method input:checked + span { border-color: var(--blue); background: var(--blue); color: white; font-weight: 600; }
.contact-method input:checked + span img { filter: brightness(0) invert(1); }
.contact-method input:focus-visible + span { outline: 3px solid var(--aqua); outline-offset: 3px; }
.field label #phone-optional { color: var(--muted); font-weight: 400; }
#message-fallback { font-size: 12px; margin-top: 12px; }
.sold-empty { margin-block: 40px; padding-block: 5px; }
.sold-empty h2 { margin-top: 0; }

@media (min-width: 1181px) and (max-width: 1320px) {
  .site-header { padding-inline: 24px; gap: 16px; }
  .main-nav { gap: 13px; }
  .main-nav > a, .nav-group > summary { font-size: 13px; }
  .header-actions { gap: 8px; }
  .header-call { padding-inline: 11px; }
  .nav-cta { padding-inline: 14px; }
}

@media (max-width: 1180px) {
  :root { --mobile-header: 112px; --section-offset: calc(var(--mobile-header) + 16px); }
  .site-header { height: var(--mobile-header); padding-inline: var(--gutter); gap: 18px; }
  .site-header .brand-logo { width: 108px; height: 108px; }
  .header-actions { margin-left: auto; }
  .menu-toggle { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 7px; width: 44px; height: 44px; flex-shrink: 0; background: transparent; }
  .menu-toggle > span { height: 1.5px; width: 23px; background: var(--blue); transition: transform .2s; }
  .menu-toggle[aria-expanded="true"] > span:first-child { transform: translateY(4.25px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] > span:last-child { transform: translateY(-4.25px) rotate(-45deg); }
  html.nav-open, html.nav-open body { overflow: hidden; overscroll-behavior: none; }
  .main-nav { display: none; position: fixed; inset: var(--mobile-header) 0 0; max-height: none; overflow-y: auto; background: #fff; padding: 16px var(--gutter) max(28px, env(safe-area-inset-bottom)); overscroll-behavior: contain; box-shadow: none; }
  .main-nav.is-open { display: flex; align-items: flex-start; flex-direction: column; gap: 0; }
  .main-nav > a, .nav-group > summary { font-size: 20px; min-height: 60px; padding-block: 14px; width: 100%; border-bottom: 1px solid var(--line); }
  .nav-group { width: 100%; }
  .nav-group > summary { justify-content: space-between; }
  .nav-dropdown { position: static; width: 100%; border: 0; border-left: 2px solid var(--line); box-shadow: none; padding: 0 0 0 20px; margin: 12px 0 20px; }
  .nav-dropdown > a { min-height: 56px; font-size: 16px; padding-block: 12px; }
  .nav-dropdown > a > span { font-size: 12px; }
  .community-profiles { min-width: 255px; }
  .field label { font-size: 13px; }
  input, select, textarea { font-size: 16px; }
  .hero-player-controls > button { min-height: 44px; }
  .reel-controls > button { width: 44px; height: 44px; }
}

@media (max-width: 900px) {
  .community-header { gap: 30px; }
  .community-profiles { min-width: 225px; }
  .community-profiles .community-profile { grid-template-columns: 62px minmax(0, 1fr); gap: 14px; }
  .community-profiles .community-profile-picture > img:first-child, .community-tiktok-icon { width: 62px; height: 62px; }
  .community-profiles .community-profile strong { font-size: 36px; }
  .reel-toolbar > .reel-shelf-title { font-size: 12px; }
  .reel-total { white-space: nowrap; }
  .header-actions .nav-cta { max-width: none; }
}

@media (max-width: 620px) {
  .site-header { display: grid; grid-template-columns: 104px minmax(0, 1fr) 44px; gap: 8px; padding-inline: max(12px, env(safe-area-inset-left)) max(12px, env(safe-area-inset-right)); }
  .site-header .brand-logo { width: 104px; height: 104px; }
  .header-actions { display: grid; grid-template-columns: 1fr; gap: 4px; margin: 0; min-width: 0; }
  .header-actions .nav-cta, .header-call { width: 100%; min-height: 44px; padding: 8px 9px; font-size: 12px; }
  .header-call { gap: 8px; }
  .article-page .site-header { grid-template-columns: 104px minmax(0, 1fr); gap: 30px; }
  .article-page .header-actions { max-width: 225px; width: 100%; justify-self: end; }
  .hero-actions { grid-template-columns: .95fr 1.05fr; gap: 12px; }
  .hero-secondary { text-wrap: balance; }
  .reel-toolbar { gap: 15px; }
  .reel-toolbar > .reel-shelf-title { display: block; flex: 1; font-size: 12px; line-height: 1.55; }
  .reel-navigation { flex-shrink: 0; }
  .community-profiles { margin-top: 28px; gap: 18px; min-width: 0; }
  .community-profiles .community-profile { grid-template-columns: 64px minmax(0, 1fr); gap: 20px; }
  .community-profiles .community-profile-picture > img:first-child, .community-tiktok-icon { width: 64px; height: 64px; }
  .community-profiles .community-profile > span:last-child { grid-template-columns: auto 1fr; align-items: center; gap: 2px 14px; }
  .community-profiles .profile-platform { grid-column: 1/-1; }
  .community-profiles .community-profile strong { font-size: 34px; }
  .post-availability { font-size: 11px; line-height: 1.6; }
  .journal-intro h2 { font-size: 36px; max-width: 330px; }
  .contact-heading h2 { font-size: clamp(35px, 9.6vw, 48px); max-width: 440px; margin-inline: auto; }
  .contact-method-options { gap: 8px; }
  .contact-method label > span { font-size: 13px; gap: 8px; padding-inline: 8px; }
}
@media (max-width: 350px) {
  .site-header { grid-template-columns: 92px minmax(0, 1fr) 44px; }
  .site-header .brand-logo { width: 92px; height: 92px; }
  .header-actions .nav-cta, .header-call { font-size: 11px; }
  .article-page .site-header { grid-template-columns: 92px minmax(0, 1fr); gap: 22px; }
  .community-profiles .community-profile { gap: 14px; }
  .community-profiles .community-profile > span:last-child { gap: 2px 8px; font-size: 10px; }
  .community-profiles .community-profile strong { font-size: 30px; }
  .journal-intro h2 { font-size: 33px; }
}
@media (min-width: 621px) and (max-width: 1180px) and (max-height: 550px) {
  :root { --mobile-header: 88px; }
  .site-header .brand-logo { width: 88px; height: 88px; }
}

/* Client voices: a personal letter, an apartment purchase, a public recommendation. */
.client-reviews { padding-block: 84px 76px; }
.client-reviews-heading { margin-bottom: 38px; }
.client-reviews-heading .section-kicker { margin-bottom: 18px; }
.client-reviews-heading h2 { font-size: clamp(38px, 4.2vw, 58px); }
.client-reviews-grid { display: grid; grid-template-columns: 1.12fr 1fr; align-items: start; gap: clamp(32px, 5vw, 76px); }
.review-letter { min-width: 0; margin: 0; }
.review-hina { background: var(--mist); padding: 34px 38px 32px; border-top: 3px solid var(--aqua); }
.review-isabelle { padding-top: 34px; border-top: 1px solid var(--line); }
.review-context { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 27px; color: var(--muted); font-size: 12px; }
.review-context .icon { width: 39px; height: 20px; color: var(--aqua); }
.review-letter blockquote { padding: 0; margin: 0; font-size: clamp(19px, 1.65vw, 24px); font-weight: 400; line-height: 1.65; letter-spacing: -.025em; }
.review-letter blockquote p + p { margin-top: 22px; }
.review-letter figcaption { display: grid; gap: 5px; margin-top: 27px; font-size: 12px; color: var(--muted); }
.review-letter figcaption strong { font-size: 18px; font-weight: 600; color: var(--blue); }
.review-stars { display: block; width: fit-content; margin: 0 0 23px; color: #edb72c; font-size: 25px; letter-spacing: 5px; line-height: 1; }
.review-facebook { display: grid; grid-template-columns: 1.5fr 1fr; align-items: center; gap: 55px; margin-top: 40px; padding-top: 31px; border-top: 1px solid var(--line); }
.review-sandra { margin: 0; }
.review-sandra blockquote { margin: 0; font-size: 17px; line-height: 1.8; letter-spacing: -.01em; }
.review-sandra figcaption { display: flex; align-items: center; gap: 12px; margin-top: 19px; }
.review-sandra figcaption > span { display: grid; gap: 3px; font-size: 11px; color: var(--muted); }
.review-sandra figcaption strong { font-size: 13px; font-weight: 600; color: var(--blue); }
.review-facebook .review-links { display: flex; flex-direction: column; align-items: flex-start; justify-self: end; gap: 2px; margin: 0; }
.review-facebook .review-links a { min-height: 44px; font-size: 12px; }
@media (max-width: 900px) {
  .client-reviews { padding-block: 60px; }
  .client-reviews-grid { gap: 30px; grid-template-columns: 1.12fr 1fr; }
  .review-hina { padding: 27px 25px; }
  .review-isabelle { padding-top: 28px; }
  .review-context { margin-bottom: 22px; font-size: 11px; }
  .review-letter blockquote { font-size: 19px; }
  .review-facebook { grid-template-columns: 1.25fr 1fr; gap: 30px; }
}
@media (max-width: 620px) {
  .client-reviews { padding-block: 48px; }
  .client-reviews-heading { margin-bottom: 28px; }
  .client-reviews-heading h2 { font-size: clamp(33px, 9vw, 42px); }
  .client-reviews-grid { grid-template-columns: 1fr; gap: 30px; }
  .review-hina { padding: 24px 22px; }
  .review-isabelle { padding-top: 25px; }
  .review-letter blockquote { font-size: 18px; line-height: 1.75; }
  .review-letter blockquote p + p { margin-top: 18px; }
  .review-letter figcaption { margin-top: 22px; }
  .review-stars { font-size: 24px; margin-bottom: 22px; }
  .review-facebook { grid-template-columns: 1fr; gap: 18px; margin-top: 30px; padding-top: 25px; }
  .review-sandra blockquote { font-size: 16px; }
  .review-facebook .review-links { justify-self: start; }
}

/* Phone hero, October 2026: the pool fills the first screen, the film becomes a thumbnail beside the actions. */
.film-expand { display: none; }
@media (max-width: 620px) {
  .hero { display: grid; grid-template-columns: minmax(0, 1fr) clamp(104px, 30vw, 124px); column-gap: 16px; align-items: end; padding: 28px var(--gutter) 0; }
  .hero-image { height: 100%; top: 0; object-position: 68% 82%; }
  .hero-shade { background: linear-gradient(180deg, #061a38c7 0%, #061a389e 42%, #061a3833 68%, #061a3833 82%, #061a388c 100%); }
  .hero-content { display: contents; }
  .hero-location, .hero h1, .hero-description { grid-column: 1 / -1; }
  .hero-description { margin-block: 20px 24px; text-shadow: 0 1px 12px #061a3866; }
  .hero-actions { grid-column: 1; grid-row: 4; grid-template-columns: 1fr; gap: 10px; align-self: end; }
  .hero-actions .button, .hero-secondary { width: 100%; }
  .hero-secondary { text-shadow: 0 1px 10px #061a38cc; border-bottom-color: #ffffffb3; }
  .hero-player { grid-column: 2; grid-row: 4; width: 100%; margin: 0; padding: 5px 5px 0; align-self: end; box-shadow: 0 10px 30px #061a3859; }
  .hero-player .film-picture { aspect-ratio: 9 / 16; }
  .hero-player .hero-player-controls { display: none; }
  .hero-player .film-caption { padding: 6px 3px 7px; }
  .hero-player .hero-video-source { display: block; min-height: 0; font-size: 10px; line-height: 1.35; }
  .hero-player .hero-video-source > span { display: block; }
  .hero-player .hero-video-source .icon { display: none; }
  .hero-player .hero-film-duration { display: block; font-size: 10px; }
  #hero-player-status { font-size: 10px; line-height: 1.4; margin: 4px 0; }
  .film-expand { display: grid; position: absolute; inset: 0; align-content: end; justify-items: start; padding: 8px; background: linear-gradient(0deg, #061a3880, transparent 45%); color: #fff; }
  .film-expand > span { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 6px 9px 6px 7px; border-radius: 20px; background: #fafbf9eb; color: var(--blue); font-size: 11px; font-weight: 700; }
  .film-expand .icon { width: 14px; height: 14px; }
  .hero-bottom { grid-column: 1 / -1; margin: 22px 0 0; }
}
@media (max-width: 370px) {
  .hero { column-gap: 12px; }
  .hero-actions .button, .hero-secondary { font-size: 11px; padding-inline: 10px; }
}

/* Five yellow stars on every review, as requested by Thibault. */
.review-stars { display: flex; gap: 5px; width: fit-content; margin: 0 0 22px; color: #f5b400; letter-spacing: 0; font-size: 0; }
.review-stars .icon { width: 26px; height: 26px; fill: currentColor; stroke: none; filter: drop-shadow(0 1px 0 #c98f00); }
.review-sandra .review-stars { margin-bottom: 16px; }
@media (max-width: 620px) {
  .review-stars { gap: 4px; margin-bottom: 18px; }
  .review-stars .icon { width: 24px; height: 24px; }
}

/* Providers page: three trades, ready to receive names as Thibault sends them. */
.provider-group { padding-block: 34px; border-top: 1px solid var(--line); }
.provider-group:first-of-type { border-top: 0; padding-top: 6px; }
.provider-group-heading { display: grid; grid-template-columns: 44px 1fr; gap: 16px; align-items: start; }
.provider-group-heading .service-number { font-size: 12px; font-weight: 700; color: var(--aqua); padding-top: 9px; }
.article-shell .provider-group h2 { margin: 0 0 8px; font-size: 28px; }
.article-shell .provider-group-heading p { margin: 0; font-size: 14px; color: var(--muted); }
.article-shell .provider-list { list-style: none; padding: 0; margin: 22px 0 0 60px; display: grid; gap: 14px; }
.article-shell .provider-list:empty { display: none; }
.provider { margin: 0; padding: 20px 22px; background: #fff; border: 1px solid var(--line); border-left: 3px solid var(--aqua); }
.article-shell .provider h3 { font-size: 20px; margin-bottom: 4px; }
.article-shell .provider p { margin: 0 0 8px; font-size: 14px; }
.article-shell .provider .provider-trade { font-size: 12px; font-weight: 600; color: var(--aqua); }
.article-shell .provider-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 4px 0 0; font-size: 13px; font-weight: 600; }
.article-shell .provider-soon { margin: 18px 0 0 60px; padding: 16px 20px; background: var(--mist); font-size: 14px; }
.article-shell .provider-soon a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
@media (max-width: 620px) {
  .provider-group { padding-block: 28px; }
  .provider-group-heading { grid-template-columns: 34px 1fr; gap: 10px; }
  .article-shell .provider-group h2 { font-size: 24px; }
  .article-shell .provider-list, .article-shell .provider-soon { margin-left: 0; }
}

/* Sold properties: one card per sale, newest first. */
.article-shell .sold-list { list-style: none; padding: 0; margin: 10px 0 0; display: grid; gap: 28px; }
.article-shell .sold-list:empty { display: none; }
.sold-card { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; align-items: center; }
.sold-card > img { width: 100%; aspect-ratio: 3 / 2; height: auto; }
.article-shell .sold-card h2 { margin: 6px 0 6px; font-size: 26px; }
.article-shell .sold-card p { margin: 0 0 8px; font-size: 14px; }
.article-shell .sold-meta { display: flex; align-items: center; gap: 10px; font-size: 12px; color: var(--muted); }
.sold-badge { padding: 4px 9px; background: var(--blue); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.sold-badge-pending { background: var(--aqua); }
.sold-list ~ .sold-empty { display: none; }
.article-shell .sold-place { font-size: 13px; font-weight: 600; color: var(--aqua); }
@media (max-width: 620px) { .sold-card { grid-template-columns: 1fr; gap: 14px; } }

/* Sold page as a portfolio: cards in a grid, wider than the article column. */
.sold-page .article-shell { max-width: 1180px; }
.sold-page .article-shell > h1, .sold-page .article-shell > .article-intro, .sold-page .article-shell > .article-cta { max-width: 760px; }
.sold-page .article-shell .sold-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 36px 24px; margin-top: 4px; }
.sold-page .sold-card { grid-template-columns: 1fr; gap: 14px; align-items: start; }
.sold-page .sold-card > img { aspect-ratio: 4 / 3; }
.sold-page .article-shell .sold-card h2 { font-size: 22px; margin-top: 2px; }
@media (max-width: 960px) { .sold-page .article-shell .sold-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .sold-page .article-shell .sold-list { grid-template-columns: 1fr; gap: 30px; } }

/* Readability floor (design review, October 2026): no visible text under 12px, links and lists at 13px or more. */
html body .section-kicker, html body .hero-location, html body .hero-bottom, html body .hero-bottom > a, html body .hero-film-duration,
html body .reel-duration, html body .reel-total, html body #reel-position, html body .reel-copy > p, html body .reel-footer > p,
html body .expertise-signature, html body .post-video-label, html body .conversation-label, html body .invitation-signature,
html body .post-author > span, html body .community-profile > span:last-child, html body .profile-platform,
html body .review-sandra figcaption > span, html body .review-letter figcaption, html body .review-context, html body time,
html body .scene-label, html body .service-list-title, html body .service-number, html body .article-meta, html body .article-meta > span,
html body .experience > span, html body .portrait-caption > span, html body .kw-signature > span, html body .contact-person, html body .contact-person > span,
html body .form-note, html body .footer-address, html body .footer-bottom, html body .footer-bottom > a, html body .footer-bottom > span,
html body .nav-dropdown > a > span, html body .hero-video-source, html body #hero-player-status { font-size: max(12px, 1em); }
html body .section-kicker, html body .hero-location, html body .reel-duration, html body .article-meta, html body .service-number,
html body .scene-label, html body .form-note, html body .footer-bottom, html body .footer-bottom > a, html body .footer-address,
html body .experience > span, html body .kw-signature > span, html body .portrait-caption > span, html body .post-video-label,
html body .conversation-label, html body .invitation-signature, html body .review-context, html body .nav-dropdown > a > span { font-size: 12px; }
html body .partner-service small, html body .service-details li, html body .partners-help, html body .partners-help > a,
html body .partners-intro .text-link, html body .service-details .text-link, html body .story-link, html body .reel-links > a:first-child,
html body .reel-description .text-link, html body .post-discuss, html body .post-availability, html body .community-invitation .button,
html body .field label, html body .contact-person strong { font-size: 13px; }
html body .service-details li { font-size: 14px; }
html body .hero-player-controls > button, html body .nav-cta, html body .main-nav > a, html body .nav-group > summary { font-size: max(12px, 1em); }
html body .footer-bottom { gap: 8px 22px; align-items: center; }
html body .footer-bottom > a { min-height: 44px; display: inline-flex; align-items: center; }
html body .section-kicker.section-kicker, html body .article-meta.article-meta, html body .hero-film-duration.hero-film-duration,
html body .hero-bottom > span, html body .hero-bottom .hero-divider, html body .community-profile span, html body .footer-social > a { font-size: max(12px, 1em); }
html body .section-kicker.section-kicker, html body .article-meta.article-meta, html body .hero-bottom > span { font-size: 12px; }
html body .footer-social > a { font-size: 13px; }
@media (max-width: 620px) {
  html body .hero-player .hero-video-source { min-height: 44px; display: flex; flex-direction: column; justify-content: center; }
  html body .hero-film-duration.hero-film-duration { font-size: 11px; }
}
html body .post-author strong, html body .invitation-signature strong { font-size: 13px; }
@media (max-width: 620px) {
  html body .hero-player .hero-video-source, html body .hero-player .hero-video-source > span, html body .hero-film-duration.hero-film-duration { font-size: 12px; }
  html body .film-expand > span { font-size: 12px; }
}
@media (max-width: 370px) {
  html body .hero-actions .button, html body .hero-secondary, html body .header-call, html body .nav-label-short { font-size: 12px; }
  html body .hero-actions .button, html body .hero-secondary { padding-inline: 8px; gap: 6px; }
}
@media (min-width: 621px) and (max-width: 900px) {
  html body .hero-secondary, html body .about-signoff .text-link, html body .expertise-copy .button { font-size: 13px; }
  html body .hero-bottom > a { min-height: 44px; }
}
@media (max-width: 620px) {
  html body .film-expand { padding: 6px; }
  html body .film-expand > span { white-space: nowrap; gap: 4px; padding: 5px 8px 5px 6px; }
  html body .film-expand .icon { width: 12px; height: 12px; }
  /* The header logo already names Thibault and KW: the hero foot keeps only the invitation to scroll. */
  html body .hero-bottom > span:first-child { display: none; }
  html body .hero-bottom { justify-content: flex-end; padding-block: 12px 16px; margin-top: 18px; }
}

/* Providers scene: the caption must read on the bright pool photo. */
html body .partners-scene:after { background: linear-gradient(0deg, #082040eb 0%, #082040a6 40%, #08204033 75%, transparent 100%); }
html body .scene-caption > span { text-shadow: 0 1px 14px #08204099; }
html body .partner-service summary { padding-right: 6px; }
@media (max-width: 620px) {
  html body .partners-scene { height: 220px; }
  html body .scene-caption { bottom: 30px; left: 20px; }
  html body .scene-caption > span { font-size: 24px; }
  html body .scene-caption .icon { margin-bottom: 12px; }
}

/* Journal, October 2026: an editorial front page. One lead story, four reads beside it. */
#conseils.journal { display: block; padding-block: 92px 104px; }
#conseils .journal-intro { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); column-gap: 48px; align-items: end; margin-bottom: 46px; padding: 0; }
#conseils .journal-intro .section-kicker { grid-column: 1 / -1; }
#conseils .journal-intro h2 { grid-column: 1; font-size: clamp(40px, 4.6vw, 64px); max-width: none; }
#conseils .journal-intro h2 br { display: inline; }
#conseils .journal-intro > p:not(.section-kicker) { grid-column: 2; max-width: 400px; margin: 0 0 6px; font-size: 16px; line-height: 1.7; color: var(--muted); }
#conseils .journal-index { display: none; }
#conseils .journal-stories { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: 44px 28px; border-top: 1px solid var(--line); padding-top: 36px; }
#conseils .journal-story { display: flex; flex-direction: column; gap: 0; padding: 0; border: 0; min-width: 0; }
#conseils .journal-story > img { width: 100%; height: auto; aspect-ratio: 4 / 3; min-height: 0; object-fit: cover; transition: filter .3s; }
#conseils .journal-story:hover > img { filter: brightness(1.06) saturate(1.08); }
#conseils .journal-story > div { padding-top: 18px; }
#conseils .journal-story .article-meta { display: flex; align-items: center; gap: 12px; margin: 0 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--aqua); }
#conseils .journal-story .article-meta > span { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); margin: 0; display: inline; }
#conseils .journal-story h3 { font-size: 21px; line-height: 1.25; }
#conseils .journal-story h3 br { display: none; }
#conseils .story-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 14px; min-height: 32px; font-size: 13px; font-weight: 700; }
#conseils .story-link .icon { width: 17px; height: 17px; transition: transform .2s; }
#conseils .story-excerpt { margin-top: 14px; max-width: 520px; font-size: 16px; line-height: 1.7; color: var(--muted); }
#conseils .journal-story-featured { grid-row: 1 / span 2; }
#conseils .journal-story-featured > img { flex: 1 1 auto; aspect-ratio: auto; min-height: 380px; }
#conseils .journal-story-featured h3 { font-size: clamp(28px, 2.6vw, 36px); line-height: 1.15; }
#conseils .journal-story-featured h3 br { display: inline; }
@media (max-width: 1023px) and (min-width: 621px) {
  #conseils.journal { padding-block: 70px 80px; }
  #conseils .journal-intro { grid-template-columns: 1fr; row-gap: 16px; }
  #conseils .journal-intro > p:not(.section-kicker) { grid-column: 1; }
  #conseils .journal-stories { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: none; gap: 40px 24px; }
  #conseils .journal-story-featured { grid-row: auto; grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 28px; align-items: center; }
  #conseils .journal-story-featured > img { aspect-ratio: 4 / 3; min-height: 0; }
  #conseils .journal-story-featured > div { padding: 0; }
}
@media (max-width: 620px) {
  #conseils.journal { padding-block: 56px 64px; }
  #conseils .journal-intro { display: block; margin-bottom: 28px; }
  #conseils .journal-intro h2 { font-size: clamp(32px, 9vw, 40px); }
  #conseils .journal-intro h2 br { display: none; }
  #conseils .journal-intro > p:not(.section-kicker) { margin-top: 14px; font-size: 15px; }
  #conseils .journal-stories { display: block; padding-top: 0; border: 0; }
  #conseils .journal-story-featured > img { aspect-ratio: 16 / 11; min-height: 0; }
  #conseils .journal-story-featured { padding-bottom: 26px; border-bottom: 1px solid var(--line); }
  #conseils .journal-story-featured h3 { font-size: 27px; }
  #conseils .journal-story-featured h3 br { display: none; }
  #conseils .story-excerpt { font-size: 15px; }
  #conseils .journal-story:not(.journal-story-featured) { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: start; padding-block: 20px; border-bottom: 1px solid var(--line); }
  #conseils .journal-story:not(.journal-story-featured) > img { aspect-ratio: 1; }
  #conseils .journal-story:not(.journal-story-featured) > div { padding-top: 0; }
  #conseils .journal-story:not(.journal-story-featured) h3 { font-size: 19px; }
  #conseils .journal-story:not(.journal-story-featured) .story-link { margin-top: 6px; }
}

/* Contact, October 2026: the conversation starts on the left, the form waits on the right. */
#contact.contact { background: var(--mist); }
#contact .contact-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: start; max-width: none; padding-block: 96px 104px; }
#contact .contact-copy { position: sticky; top: 120px; text-align: left; }
#contact .contact-copy .section-kicker { justify-content: flex-start; margin-bottom: 18px; }
#contact h2 { font-size: clamp(40px, 4.6vw, 64px); line-height: 1.04; letter-spacing: -.06em; max-width: 520px; margin: 0; }
#contact .contact-lead { margin-top: 22px; max-width: 440px; font-size: 17px; line-height: 1.7; color: var(--muted); }
#contact .contact-person { display: flex; align-items: center; gap: 16px; margin-top: 30px; font-size: 14px; color: var(--muted); }
#contact .contact-person > img { width: 64px; height: 64px; border-radius: 50%; object-fit: cover; object-position: 55% 30%; }
#contact .contact-person > span { display: grid; gap: 2px; }
#contact .contact-person strong { font-size: 17px; color: var(--blue); font-weight: 600; }
#contact .contact-actions { display: grid; gap: 10px; margin-top: 26px; max-width: 440px; }
#contact .contact-action { display: flex; align-items: center; gap: 16px; min-height: 64px; padding: 10px 18px 10px 10px; background: #fff; border: 1px solid var(--line); border-radius: 3px; transition: border-color .2s, transform .2s; }
#contact .contact-action:hover { border-color: var(--aqua); transform: translateX(3px); }
#contact .contact-action-icon { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; border-radius: 50%; background: var(--mist); color: var(--blue); }
#contact .contact-action-icon .icon { width: 20px; height: 20px; }
#contact .contact-action > span:last-child { display: grid; gap: 1px; min-width: 0; font-size: 14px; color: var(--muted); overflow-wrap: anywhere; }
#contact .contact-action strong { font-size: 15px; color: var(--blue); font-weight: 700; }
#contact .contact-office { margin-top: 24px; font-size: 13px; line-height: 1.7; color: var(--muted); }
#contact .lead-form { margin: 0; padding: clamp(24px, 3vw, 40px); border-top: 0; border-radius: 3px; box-shadow: 0 18px 50px #0820400f; }
@media (max-width: 900px) {
  #contact .contact-layout { grid-template-columns: 1fr; gap: 36px; padding-block: 64px 72px; }
  #contact .contact-copy { position: static; }
  #contact .contact-actions { max-width: none; }
}
@media (max-width: 620px) {
  #contact .contact-layout { padding-block: 52px 64px; gap: 30px; }
  #contact h2 { font-size: clamp(34px, 9.6vw, 44px); }
  #contact .contact-lead { font-size: 15px; margin-top: 16px; }
  #contact .contact-person { margin-top: 22px; }
  #contact .contact-person > img { width: 52px; height: 52px; }
  #contact .contact-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 20px; }
  #contact .contact-action { flex-direction: column; justify-content: center; gap: 6px; min-height: 84px; padding: 10px 4px; text-align: center; }
  #contact .contact-action-detail { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  #contact .contact-action strong { font-size: 13px; }
  #contact .contact-action:hover { transform: none; }
  #contact .contact-office { font-size: 12px; margin-top: 18px; }
  #contact .lead-form { padding: 24px 18px; }
}
#contact .contact-person { justify-content: flex-start; text-align: left; }
@media (min-width: 621px) and (max-width: 900px) {
  #contact .contact-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #contact .contact-action { flex-direction: column; align-items: flex-start; gap: 10px; padding: 14px; }
  #contact .contact-action > span:last-child { font-size: 13px; }
}
html body .sold-badge { font-size: 12px; }
html body .article-byline { font-size: 13px; }

/* Reading text: 16px on large screens, 15px on phones (design review, October 2026). */
@media (min-width: 621px) {
  html body .about-copy > p:not(.section-kicker):not(.lead), html body .expertise-copy > p:not(.expertise-lead),
  html body .reel-description p, html body .estimate-inner > div > p:not(.section-kicker), html body .community-header > div > p:not(.section-kicker),
  html body .community-post-copy > p, html body .community-invitation p, html body .partners-intro > p:not(.section-kicker),
  html body .service-details > p { font-size: 16px; line-height: 1.75; }
  html body .contact-office, html body .form-note { font-size: 13px; }
}
@media (max-width: 620px) {
  html body .about-copy > p:not(.section-kicker):not(.lead), html body .expertise-copy > p:not(.expertise-lead),
  html body .reel-description p, html body .estimate-inner p:not(.section-kicker), html body .community-header > div > p:not(.section-kicker),
  html body .community-invitation p, html body .partners-intro > p:not(.section-kicker), html body .service-details > p { font-size: 15px; line-height: 1.75; }
  html body .community-post-copy > p { font-size: 14px; }
}

/* Contact form: hidden trap field for bots, sent state. */
.field-piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.lead-form.is-sending > .button { opacity: .7; pointer-events: none; }
.form-success { display: grid; gap: 10px; padding: 22px; margin-top: 16px; background: #e8f5ee; border: 1px solid #b9dcc8; border-radius: 3px; color: #12452c; }
.form-success strong { font-size: 18px; }
.form-success p { margin: 0; font-size: 15px; line-height: 1.6; }
.form-success a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* Biens à vendre : la carte ouvre l'annonce KW, « Demander une visite » reste à part. */
.sale-card { display: flex; flex-direction: column; gap: 0; }
.sale-card-main { display: grid; gap: 14px; color: inherit; text-decoration: none; }
.article-shell a.sale-card-main { text-decoration: none; }
.sale-card-main > img { width: 100%; aspect-ratio: 4 / 3; height: auto; transition: filter .3s; }
.sale-card-main:hover > img { filter: brightness(1.06) saturate(1.08); }
.sale-card-main:hover h2 { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.sale-pool { padding: 4px 9px; background: var(--mist); color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.article-shell .sold-meta .sale-ref { margin-left: auto; font-size: 12px; color: var(--muted); }
.article-shell .sale-card .sale-price { margin: 4px 0 0; font-size: 18px; font-weight: 700; color: var(--blue); }
.sale-link { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--aqua); }
.article-shell a.sale-visit { display: inline-flex; align-items: center; min-height: 44px; margin-top: 8px; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; width: fit-content; }
.article-shell .sale-crosslink { margin: 34px 0 0; }

/* Fiche bien, commune aux pages « à vendre » et « vendus » : même cadre, même ordre, mêmes couleurs que le journal. */
.article-shell .sold-list { align-items: stretch; }
.fiche-bien { display: flex; flex-direction: column; margin: 0; background: #fff; border: 1px solid var(--line); border-radius: 3px; overflow: hidden; transition: border-color .2s, box-shadow .2s; }
.fiche-bien:hover { border-color: #b9cfe0; box-shadow: 0 14px 34px #0820400f; }
.article-shell a.fiche-bien-lien, .fiche-bien-lien { display: flex; flex-direction: column; flex: 1 1 auto; color: inherit; text-decoration: none; }
.fiche-media { position: relative; display: block; overflow: hidden; }
.fiche-media > img { display: block; width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .3, 1); }
.fiche-bien:hover .fiche-media > img { transform: scale(1.03); }
.fiche-statut, .fiche-piscine { position: absolute; top: 14px; padding: 6px 10px; border-radius: 2px; font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; line-height: 1.2; }
.fiche-statut { left: 14px; background: var(--blue); color: #fff; }
.fiche-statut.est-en-cours { background: var(--aqua); }
.fiche-piscine { right: 14px; background: #fff; color: var(--blue); }
.fiche-corps { display: flex; flex-direction: column; flex: 1 1 auto; gap: 8px; padding: 18px 20px 20px; }
.fiche-lieu { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--aqua); }
.fiche-lieu > span { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
.article-shell .fiche-bien h2.fiche-titre { margin: 0; font-size: 21px; line-height: 1.25; letter-spacing: -.035em; }
.fiche-bien-lien:hover .fiche-titre { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.fiche-texte { font-size: 14px; line-height: 1.6; color: var(--muted); }
.fiche-bas { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: auto; padding-top: 6px; }
.fiche-prix { font-size: 18px; font-weight: 700; color: var(--blue); letter-spacing: -.01em; }
.fiche-ref, .fiche-date { font-size: 13px; color: var(--muted); }
.fiche-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 0 20px; border-top: 1px solid var(--line); }
.article-shell .fiche-actions a { display: inline-flex; align-items: center; gap: 6px; min-height: 52px; font-size: 14px; font-weight: 700; color: var(--muted); text-decoration: none; }
.article-shell .fiche-actions a.fiche-visite { color: var(--blue); }
.article-shell .fiche-actions a:hover { color: var(--blue); text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 560px) {
  .fiche-corps { padding: 16px 16px 18px; }
  .fiche-actions { padding: 0 16px; }
}
@media (max-width: 900px) { html body .article-back { display: inline-flex; align-items: center; min-height: 44px; } }

/* Accueil : bandeau « Vendus récemment », avec la fiche bien des pages intérieures. */
.recent-sales { padding-block: 84px 92px; border-top: 1px solid var(--line); }
.recent-sales-heading { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; align-items: end; gap: 24px 40px; margin-bottom: 36px; }
.recent-sales-heading h2 { font-size: clamp(36px, 4.2vw, 56px); }
.recent-sales-heading > p { margin: 0 0 8px; font-size: 16px; color: var(--muted); }
.recent-sales-heading .text-link { margin-bottom: 4px; font-size: 14px; gap: 12px; }
.recent-sales-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.fiche-bien .fiche-titre { margin: 0; font-size: 21px; font-weight: 500; line-height: 1.25; letter-spacing: -.035em; }
@media (max-width: 900px) {
  .recent-sales { padding-block: 60px 64px; }
  .recent-sales-heading { grid-template-columns: 1fr; gap: 12px; margin-bottom: 26px; }
  .recent-sales-heading > p { margin: 0; }
  .recent-sales-list { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--gutter); margin-inline: calc(var(--gutter) * -1); padding: 0 var(--gutter) 12px; scrollbar-width: thin; }
  .recent-sales-list > .fiche-bien { flex: 0 0 min(78vw, 320px); scroll-snap-align: start; }
}
@media (max-width: 620px) {
  .recent-sales-heading h2 { font-size: clamp(32px, 9vw, 40px); }
  .recent-sales-heading > p { font-size: 15px; }
}
.recent-sales-heading .text-link { justify-self: start; width: fit-content; }
@media (min-width: 901px) { .recent-sales-heading .text-link { justify-self: end; } }
