.suites-scroll{height:300vh;height:300svh}
.suites-track{width:300vw}
.suite-panel{grid-template-columns:minmax(0,52%) minmax(0,48%);background:var(--paper)}
.suite-panel:nth-child(even){background:var(--paper)}
.suite-photo{background:#829c8e}
.suite-photo:after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#172e294d);pointer-events:none}
.suite-photo img{transition:opacity .3s ease}
.suite-photo img.is-changing{opacity:.3}
.suite-photo-top,.suite-photo-actions{position:absolute;left:28px;right:28px;z-index:2;display:flex;align-items:center;justify-content:space-between;color:var(--white)}
.suite-photo-top{top:25px;font-size:13px;font-weight:500}
.suite-photo-actions{bottom:24px;justify-content:flex-end;gap:10px}
.suite-photo-actions button{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #ffffff45;background:#1f3c324d;color:var(--white);font-size:19px;transition:background .2s,border-color .2s}
.suite-photo-actions button:hover{background:#fffdf7;color:var(--ink);border-color:#fffdf7}
.suite-photo-actions [data-image-large]{margin-right:auto}
.suite-photo-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
/* Keep the introduction compact so the plan remains the main element. */
.suite-copy{min-width:0;min-height:0;padding:32px clamp(24px,3vw,52px) 24px;justify-content:flex-start;align-items:stretch;gap:24px;overflow-y:auto}
.suite-copy-top{flex:none;display:block}
.suite-copy-top .eyebrow{font-size:13px;font-weight:500}
.suite-copy h3{font-size:clamp(36px,3.5vw,56px);line-height:1.05;margin:14px 0 18px;text-wrap:balance}
.suite-copy h3 em{color:#74816a}
.suite-copy .suite-spec{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 22px;min-width:0;margin:0;padding:0;color:var(--muted);letter-spacing:normal;text-transform:none}
.suite-facts{display:flex;flex-wrap:wrap;gap:4px 0;font-size:13px;font-weight:400;line-height:1.5}
.suite-facts span{white-space:nowrap}
.suite-facts span+span:before{content:"·";padding:0 10px;color:#839080}
.suite-rate{display:flex;align-items:baseline;gap:5px;line-height:1.4;white-space:nowrap}
.suite-rate span{font-size:13px;font-weight:400}
.suite-rate strong{font:400 25px/1 var(--serif);letter-spacing:-.025em;color:var(--ink)}
/* Unframed plans and text tabs echo the surrounding editorial UI. */
.suite-plan-card{flex:1;min-height:0;display:flex;flex-direction:column;background:transparent;border:0;box-shadow:none}
.suite-plan-heading{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--muted);font-size:13px;font-weight:400;letter-spacing:.035em}
.suite-plan-heading button{flex:none;min-height:44px;border:0;background:transparent;padding:8px 0 8px 12px;color:var(--ink);font-size:13px;font-weight:500;letter-spacing:.035em;transition:color .2s}
.suite-plan-heading button:hover{color:#74816a}
.suite-plan-canvas{min-height:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:12px 0 18px}
.suite-drawing{width:100%;height:100%;max-height:none;min-height:180px}
.suite-drawing .suite-zone-fill{fill:#eeeee5;stroke:#d9dfd2;stroke-width:1;transition:fill .22s,stroke .22s}
.suite-drawing .suite-zone-fill.is-outdoor{fill:#e9eee4}
.suite-drawing .suite-zone-fill.is-active{fill:#dfe8da;stroke:#a8baa2;stroke-width:1.2}
.suite-drawing .plan-deck{pointer-events:none;fill-opacity:.15;stroke:#bdcbb7;stroke-width:1}
.suite-drawing .plan-glazing{fill:none;stroke:#91aba0;stroke-width:1.5;stroke-linecap:round}
.suite-drawing .plan-plant{fill:none;stroke:#a0b29a;stroke-width:1.2}
.suite-drawing .plan-fixed-label{font:400 13px var(--sans);letter-spacing:.035em;fill:#6a8270;pointer-events:none}
.suite-drawing .outer-wall{fill:none;stroke:#42564a;stroke-width:5}
.suite-drawing .inner-wall{fill:none;stroke:#647b65;stroke-width:2.3}
.suite-drawing .door{fill:none;stroke:#90a28b;stroke-width:1.2}
.suite-drawing .furniture{fill:none;stroke:#8c9e87;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.suite-drawing .furniture-line{fill:var(--paper);stroke:#8c9e87;stroke-width:1.2}
.suite-drawing .furniture-soft{fill:#e7ebdf;stroke:#b1bdaa;stroke-width:1}
.suite-drawing .plan-space-label{font:500 15px var(--sans);letter-spacing:.025em;fill:#42564a;pointer-events:none}
.suite-drawing .plan-suite-label{font:500 13px var(--sans);fill:#526d59;pointer-events:none}
.suite-drawing .plan-edge-label{font:400 13px var(--sans);fill:#688174;pointer-events:none}
.suite-drawing .suite-zone-hit{fill:transparent;stroke:transparent;stroke-width:3;cursor:pointer;pointer-events:all}
.suite-drawing .suite-zone-hit:hover{fill:#42564a08;stroke:#91a68c}
.suite-drawing .suite-zone-hit:focus-visible{stroke:var(--ink);stroke-width:3;outline:none}
.suite-drawing .view-direction{opacity:0;pointer-events:none;transition:opacity .22s}
.suite-drawing .view-direction circle{fill:var(--paper);stroke:#647b65;stroke-width:1.3}
.suite-drawing .view-direction path{fill:none;stroke:#42564a;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.suite-drawing .view-direction.is-active{opacity:1}
.suites-progress{left:auto;right:24px;top:17px;bottom:auto}
.suites-progress button{min-height:44px}
.is-viewing-suites .contact-float{visibility:hidden;pointer-events:none}
.suite-plan-spaces{flex:none;display:flex;justify-content:space-between;gap:4px;overflow-x:auto;scrollbar-width:none}.suite-plan-spaces::-webkit-scrollbar{display:none}
/* Room tabs: one hairline rail, the chosen room as a solid ink tile. */
.suite-plan-spaces{position:relative;gap:0;border-top:1px solid var(--line);scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter,20px)}
.suite-plan-spaces button{position:relative;flex:1 0 auto;min-width:0;min-height:44px;padding:10px 14px;line-height:1.2;white-space:nowrap;text-align:center;border:0;background:transparent;color:var(--muted);font-size:13px;font-weight:400;letter-spacing:.02em;scroll-snap-align:start;transition:color .25s,background-color .25s}
.suite-plan-spaces button:after{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .3s cubic-bezier(.2,.7,.2,1)}
.suite-plan-spaces button:hover{color:var(--ink)}
.suite-plan-spaces button:hover:after{transform:scaleX(1)}
.suite-plan-spaces button[aria-pressed=true]{color:var(--paper);background:var(--ink);font-weight:500}
.suite-plan-spaces button[aria-pressed=true]:after{transform:scaleX(1)}
.suite-plan-spaces button:focus-visible{outline:2px solid var(--ink);outline-offset:-4px}
.suite-plan-spaces button[aria-pressed=true]:focus-visible{outline-color:var(--paper)}
.suite-image-dialog{position:fixed;inset:0;max-width:none;max-height:none;width:100vw;height:100dvh;padding:clamp(14px,3vw,38px);border:0;background:#162f27;color:var(--white);overflow:hidden}
.suite-image-dialog[open]{display:flex;flex-direction:column;gap:14px}
.suite-image-dialog::backdrop{background:#10261fdd}
.suite-image-dialog>img{width:100%;height:calc(100% - 102px);min-height:0;object-fit:contain}
.suite-image-dialog>[data-dialog-close]{align-self:flex-end;flex:none;width:44px;height:44px;border:1px solid #ffffff79;background:transparent;color:white;font-size:25px;line-height:1}
.suite-image-dialog>div{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;letter-spacing:.04em;text-align:center}
.suite-image-dialog>div button{width:44px;height:44px;flex:none;border:1px solid #ffffff79;background:transparent;color:white;font-size:18px}
.suite-image-dialog button:hover{background:#ffffff25}
.suite-plan-dialog{width:min(1180px,94vw);height:min(760px,94dvh);max-width:none;max-height:none;padding:0;border:1px solid var(--line);background:var(--paper);color:var(--ink);box-shadow:0 28px 80px #09251c8c;overflow:hidden}
.suite-plan-dialog[open]{display:flex;flex-direction:column}
.suite-plan-dialog::backdrop{background:#0d261dcc}
.suite-plan-dialog-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:8px 20px;font-size:13px;font-weight:500}
.suite-plan-dialog-head button{border:0;background:transparent;min-height:44px;padding:5px 10px;font-size:13px;font-weight:500}
.suite-plan-dialog-head button:hover{background:#e9eee4}
.suite-plan-dialog-body{flex:1;min-height:0;display:grid;grid-template-columns:47% 53%}
.suite-plan-dialog-photo{position:relative;min-height:0;margin:0;background:#8ea494;overflow:hidden}
.suite-plan-dialog-photo img{width:100%;height:100%;object-fit:cover}
.suite-plan-dialog-photo figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;flex-wrap:wrap;gap:6px 18px;padding:25px 22px 18px;background:linear-gradient(transparent,#152b24ad);color:white;font-size:13px}
.suite-plan-dialog-photo strong{font-size:13px}
.suite-plan-dialog-map{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:16px;background:var(--paper)}
.suite-plan-dialog-map .suite-drawing{width:100%;height:auto;max-height:none;min-height:0}
.suite-plan-dialog-hint{flex:none;padding:12px 20px;color:var(--muted);font-size:13px;letter-spacing:.03em}
@media(max-width:1100px){.suite-copy{padding:28px 24px 18px;gap:18px}.suite-copy h3{font-size:40px;margin:14px 0}.suite-copy .suite-spec{gap:5px 14px}.suite-facts{font-size:13px}.suite-facts span+span:before{padding:0 7px}.suite-rate strong{font-size:23px}.suite-plan-spaces{gap:0}.suite-plan-spaces button{font-size:13px}.suites-progress{right:20px;gap:5px}.suites-progress button{min-width:36px}}
@media(max-width:767px){.suite-panel{display:flex;flex-direction:column}.suite-photo{height:39%;min-height:0;flex:none}.suite-photo-top{top:17px;left:20px;right:20px}.suite-photo-actions{left:16px;right:16px;bottom:14px}.suite-copy{height:61%;flex:none;padding:18px var(--gutter) 12px;gap:13px;overflow:auto}.suite-copy-top .eyebrow{font-size:13px}.suite-copy h3{font-size:clamp(30px,7.9vw,40px);margin:8px 0 10px;line-height:1.05}.suite-facts{font-size:13px}.suite-rate span{font-size:13px}.suite-rate strong{font-size:22px}.suite-plan-heading{font-size:13px}.suite-plan-heading button{font-size:13px}.suite-plan-canvas{min-height:150px;padding:0}.suite-drawing{min-height:150px;max-height:300px}.suite-plan-spaces{gap:0;margin-inline:calc(-1 * var(--gutter,20px))}.suite-plan-spaces button{min-height:44px;font-size:13px;padding:9px 14px}.suite-plan-spaces button:first-child{margin-left:var(--gutter,20px)}.suite-plan-spaces button:last-child{margin-right:var(--gutter,20px)}.suite-plan-dialog{width:96vw;height:94dvh}.suite-plan-dialog-body{display:flex;flex-direction:column}.suite-plan-dialog-photo{flex:0 0 31%}.suite-plan-dialog-map{flex:1;justify-content:flex-start;padding:4px}.suite-plan-dialog-map .suite-drawing{flex:none;width:650px;min-width:650px;height:420px;max-height:none}}
@media(max-width:420px){.site-header{gap:8px}.site-header .brand-logo{width:clamp(125px,36vw,158px)}.site-header .studio-home-link{font-size:13px;padding:6px 7px}.site-header .menu-toggle{padding-left:7px}}
@media(max-height:720px) and (min-width:768px){.suite-copy{padding-top:24px;padding-bottom:12px;gap:14px}.suite-copy h3{font-size:38px;margin:10px 0 12px}.suite-plan-canvas{padding:0}.suite-drawing{min-height:130px}}
@media(prefers-reduced-motion:reduce){.suite-photo img,.suite-drawing .suite-zone-fill,.suite-drawing .view-direction,.suite-plan-spaces button:after{transition:none}}
/* Suite position: three hairline bars on a paper chip, digits stay for assistive names only. */
.suites-progress{top:14px;right:clamp(16px,2vw,28px);gap:0;padding:0 4px;background:var(--paper);box-shadow:0 0 0 1px #253d3414}
.suites-progress button{position:relative;min-width:44px;min-height:44px;padding:0;font-size:0;color:transparent}
.suites-progress button:before,.suites-progress button:after{content:"";position:absolute;left:8px;right:8px;top:calc(50% - 1px);height:2px;background:#c9d0c4}
.suites-progress button:after{background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.suites-progress button[aria-pressed=true]:after{transform:scaleX(1)}
.suites-progress button:hover:before{background:#8fa284}
.suites-progress button:focus-visible{outline:2px solid var(--ink);outline-offset:-6px}
/* Pricing: the recommended tier becomes a raised ink field; the others stay editorial. */
.pricing-heading .body-copy{font:italic 400 clamp(22px,1.9vw,28px)/1.25 var(--serif);letter-spacing:-.01em;color:var(--ink);max-width:300px;padding-bottom:10px}
.price-option:nth-child(2){margin:-30px 0 -38px;padding:60px 35px 38px;background:var(--ink);color:var(--paper)}
.js .price-option:nth-child(2):after{top:30px;left:35px;right:35px;background:#9fbfb3}
.price-option:nth-child(2) .price-description,.price-option:nth-child(2) .price-currency,.price-option:nth-child(2) .price-extra{color:#c2ccba}
.price-option:nth-child(2) .price-features li:before{border-color:#9fbfb3}
.price-option:nth-child(2) .button{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.price-option:nth-child(2) .button:hover{background:#fff;border-color:#fff}
.price-option:nth-child(2) .button:focus-visible{outline:2px solid var(--paper);outline-offset:3px}
.price-option:nth-child(2)+.price-option{padding-left:35px}
.pricing-grid{margin-bottom:62px}
/* FAQ: questions set in the display serif on hairline rules, with a drawn plus that turns into a close mark. */
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq summary{align-items:center;min-height:44px;padding:22px 0;font:400 clamp(21px,1.7vw,25px)/1.3 var(--serif);letter-spacing:-.005em;color:var(--ink);transition:color .3s}
.faq summary:hover{color:#526d59}
.faq summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.faq summary:after{content:"";flex:none;width:34px;height:34px;border:1px solid #c3cbbd;border-radius:50%;background:linear-gradient(currentColor,currentColor) center/11px 1px no-repeat,linear-gradient(currentColor,currentColor) center/1px 11px no-repeat;transition:transform .45s cubic-bezier(.2,.7,.2,1),border-color .3s}
.faq summary:hover:after,.faq details[open] summary:after{border-color:var(--ink)}
.faq details p{max-width:58ch;margin-top:-6px;padding:0 50px 26px 0}
/* Footer: a serif sign-off and one link rhythm for anchors and buttons. */
.footer-tagline{max-width:340px;font:italic 400 clamp(20px,1.6vw,23px)/1.35 var(--serif);color:#c2ccba}
.footer-links{gap:0}
.footer-links a,.footer-links button{display:inline-flex;align-items:center;min-height:36px;line-height:1.3}
.footer-bottom,.footer-bottom>div{align-items:center}
.footer-bottom{padding-bottom:56px}/* clears the fixed contact button at the page end */
.footer-bottom button,.footer-bottom a{display:inline-flex;align-items:center;min-height:44px}
.footer-bottom button:hover,.footer-bottom a:hover{color:var(--paper)}
/* Dialog controls: 44px targets everywhere. */
.dialog-close{width:44px;height:44px}
.close-small{top:4px;right:4px;width:44px;height:44px;display:grid;place-items:center;padding:0}
@media(max-width:767px){
.suites-progress{display:flex;top:8px;right:12px;bottom:auto;left:auto;padding:0;background:#1f3c324d;box-shadow:inset 0 0 0 1px #ffffff45}
.suites-progress button{min-width:44px}
.suites-progress button:before{background:#ffffff66}
.suites-progress button:after{background:#fff}
.price-option:nth-child(2){margin:10px calc(-1*var(--gutter)) 0;padding:44px var(--gutter) 40px}
.js .price-option:nth-child(2):after{top:22px;left:var(--gutter);right:var(--gutter)}
.price-option:nth-child(2)+.price-option{padding-left:0;margin-top:0;padding-top:44px}
.pricing-grid{margin-bottom:0}
.pricing-heading .body-copy{font-size:24px;max-width:300px}
.faq summary{padding:18px 0;font-size:21px}
.faq summary:after{width:32px;height:32px}
.faq details p{padding-right:0}
.footer-tagline{font-size:21px}
.footer-links a,.footer-links button{min-height:44px}
.footer-bottom{gap:4px 16px}
.footer-bottom>div{flex-wrap:wrap;gap:0 24px}
.dialog-close,.gallery-dialog .dialog-close{width:44px;height:44px}
.lightbox-prev,.lightbox-next{width:44px;height:44px}
}
@media(prefers-reduced-motion:reduce){.suites-progress button:after,.faq summary:after{transition:none}}
