/* Responsive layout refinement: desktop, tablet and phone. */
html{scroll-padding-top:24px}body{line-height:1.7}*,*::before,*::after{box-sizing:border-box}main{width:100%;max-width:1440px;margin-inline:auto}img,video,iframe{max-width:100%}input,select,textarea{min-width:0}textarea{resize:vertical}button,.button,summary{touch-action:manipulation}.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px}header{max-width:1440px;margin-inline:auto;gap:24px}header nav{gap:20px}header .account-menu{margin-left:auto}.account-menu>div{border-radius:10px;padding:10px;box-shadow:0 16px 48px #17354420}.account-menu a,.account-menu button{min-height:46px;border-radius:6px}.panel{border-radius:12px}.discovery-shell{border-radius:16px}.portal-search{padding:32px}.portal-intro{padding:40px 36px 190px}.portal-intro h1{font-size:clamp(36px,3.5vw,54px);line-height:1.35}.portal-intro p{line-height:1.8}.intro-signature{line-height:1.7}.purpose-options{gap:8px}.purpose-options label{min-height:48px;justify-content:center;padding:10px 15px}.portal-search-primary .keyword{grid-column:1/-1}.portal-search-primary>.button{grid-column:1/-1}.portal-search-heading{align-items:center}.portal-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.portal-cards .card{min-width:0;border-radius:12px;overflow:hidden}.portal-cards h3{font-size:22px;line-height:1.55}.portal-cards .card-body{padding:22px}.portal-cards .card-bottom{gap:12px;flex-wrap:wrap}.catalog-title{gap:20px}.catalog-title h2{line-height:1.4}.catalog-actions,.catalog-controls{flex-wrap:wrap;gap:12px}.detail-heading{gap:24px;align-items:start}.detail-heading h1{font-size:clamp(28px,2.8vw,40px);line-height:1.45;max-width:1050px}.detail-buttons{display:flex;flex-wrap:wrap;gap:10px}.detail-layout{grid-template-columns:minmax(0,1.65fr) minmax(310px,1fr);gap:36px}.detail-layout>section,.contact-panel{min-width:0}.contact-panel{padding:26px;top:20px}.gallery{margin-block:24px}.photo-strip{padding-bottom:8px;scroll-snap-type:x proximity}.photo-strip>button{scroll-snap-align:start}.thumb{border-radius:8px;overflow:hidden}.property-facts{gap:16px}.viewing-booking{padding:28px}.viewing-booking h2{font-size:28px;line-height:1.5}.viewing-booking .form-grid{gap:20px}.viewing-booking label{display:grid;gap:8px}.viewing-booking input{width:100%;padding:12px;font-size:19px}.viewing-booking button{width:100%}.viewing-booking .hint{margin:0}.auth{margin:48px auto;max-width:580px;padding:32px}.auth label{display:grid;gap:8px}.auth form{gap:20px}.auth-links{display:flex;flex-wrap:wrap;gap:14px}.appointment-search{align-items:end}.appointment-search .button{min-height:58px}.appointment{padding:26px}.row-actions{display:flex;flex-wrap:wrap;gap:12px}.chat{width:100%;max-width:900px}.chat-heading{gap:14px}.chat-heading h2{overflow-wrap:anywhere}.chat-form{grid-template-columns:minmax(0,1fr) auto}.chat-form textarea{width:100%;font-size:19px}.bubble{font-size:19px;line-height:1.65}.table-wrap{max-width:100%}footer{flex-wrap:wrap;gap:22px}
@media(max-width:1100px){header{flex-wrap:wrap;padding:20px 28px}header nav{order:3;width:100%;justify-content:center;padding-top:14px;border-top:1px solid #d8dedb}.discovery-shell{grid-template-columns:1fr 1.15fr}.portal-intro{padding:32px 26px 150px}.portal-search{padding:26px}.portal-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:24px}.viewing-booking .form-grid{grid-template-columns:1fr}.contact-panel{padding:22px}}
@media(max-width:850px){.discovery-shell{grid-template-columns:1fr}.portal-intro{padding:28px 30px;min-height:0}.portal-intro h1{max-width:100%;margin:18px 0;font-size:38px}.portal-intro .city-art{height:150px;right:0;left:auto;width:230px;opacity:.25}.intro-copy{position:relative;z-index:1}.intro-signature,.edition-label{display:none}.portal-search{padding:28px}.detail-layout{grid-template-columns:1fr}.contact-panel{position:static}.viewing-booking .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-heading{display:block}.detail-buttons{margin:20px 0}.owner-invitation{grid-template-columns:1fr}.owner-invitation>.button{grid-column:auto}.list-view .card{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:640px){main{padding-inline:16px}header{padding:16px;gap:14px 10px;grid-template-columns:minmax(0,1fr) 125px}header nav{display:grid;grid-template-columns:1fr 1fr;justify-content:initial;padding-top:12px;gap:8px 14px}header nav a{padding:7px 0;line-height:1.4}header .account-menu{margin:0}header .account-menu>div{right:0;max-width:calc(100vw - 32px);min-width:min(290px,calc(100vw - 32px))}.portal-breadcrumb{font-size:16px;line-height:1.5}.portal-intro{padding:24px}.portal-intro h1{font-size:34px;letter-spacing:0}.portal-intro p{font-size:18px}.portal-intro .eyebrow{font-size:16px;letter-spacing:1px}.portal-search{padding:22px 18px}.portal-search-heading strong{font-size:25px;line-height:1.45}.purpose-options{display:grid;grid-template-columns:1fr 1fr}.purpose-options label{margin:0;font-size:18px}.portal-search-primary,#property-search .portal-search-secondary{grid-template-columns:1fr;gap:18px}.portal-search-primary .keyword,.portal-search-primary>.button{grid-column:auto}.portal-cards{grid-template-columns:1fr;gap:22px}.portal-cards .card-image{height:240px}.portal-cards .card-body{padding:20px}.portal-cards h3{font-size:22px}.portal-cards .specs{line-height:1.7;gap:8px 16px}.portal-cards .card-bottom b{font-size:30px}.catalog-title h2{font-size:29px}.portal-tabs{flex-wrap:wrap}.portal-tabs a{min-height:44px}.list-view .card{grid-template-columns:1fr}.list-view .card-image{height:240px;min-height:0}.list-view .card-body{padding:20px}.owner-invitation h2{font-size:29px;line-height:1.5}.detail-heading h1{font-size:28px}.detail-buttons .button{flex:1;min-width:95px;padding:10px}.gallery #main-photo{max-height:60vh}.viewing-booking{padding:20px;margin-block:24px}.viewing-booking h2{font-size:25px}.viewing-booking .form-grid{grid-template-columns:1fr;gap:18px}.viewing-booking input[type="datetime-local"]{max-width:100%;width:100%;appearance:none;min-height:60px}.viewing-booking form>.button{font-size:19px;padding:14px;line-height:1.6}.auth{margin:26px auto;padding:24px 20px}.auth h1{font-size:30px;line-height:1.4}.appointment{padding:20px}.appointment-number{font-size:18px}.appointment-number strong{display:block;font-size:24px}.appointment-search{gap:12px}.chat{padding:18px;margin-block:24px}.chat-form{grid-template-columns:1fr}.chat-form .button{width:100%}#messages{height:52vh;min-height:240px}.bubble{max-width:92%;font-size:18px}.stats{grid-template-columns:1fr}.dashboard-links{display:flex;flex-wrap:wrap;gap:10px}.property-form{padding:20px}.property-form .form-grid{grid-template-columns:1fr}.service-notes{line-height:1.7}footer{padding:28px 16px;align-items:flex-start}.privacy-policy{margin-block:24px}}
@media(max-width:360px){header a.brand>span.brand-name{font-size:19px}header{grid-template-columns:minmax(0,1fr) 112px}header .account-menu{width:112px}.portal-search-heading{gap:10px}.portal-search-heading strong{font-size:23px}.step-number{flex-shrink:0}.viewing-booking{padding:16px}.detail-buttons .button{min-width:80px;font-size:17px}}
.contact-panel>.viewing-cta{display:flex;width:100%;margin-bottom:22px}.contact-panel>small{display:block;margin-bottom:12px}

.activity-badge{display:inline-flex!important;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px!important;margin-left:7px;border-radius:999px;background:#c8323b;color:#fff!important;font:700 13px/1.1 sans-serif;vertical-align:middle;white-space:nowrap}.activity-badge[hidden]{display:none!important}.account-menu summary{display:flex;align-items:center;gap:5px}.account-menu summary .account-chevron{margin-left:auto}.account-menu a .activity-badge{float:right}.dashboard-links a{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}

.appointment-editor{border:1px solid #d5dcd7;border-radius:10px;padding:18px;margin:20px 0}.appointment-editor summary{cursor:pointer;color:#173544;min-height:40px}.appointment-editor form{display:grid;gap:18px;margin-top:18px}.appointment-editor input{height:60px;font-size:19px;width:100%}.appointment-editor .button{justify-self:start}

.appointment-number strong,.appointment-success strong{overflow-wrap:anywhere;letter-spacing:.03em}

.viewing-booking>.appointment-check{display:flex;width:100%;min-height:56px;border:1px solid #173544;border-radius:8px;padding:12px 18px;text-decoration:none;background:#fff;color:#173544;margin-top:18px}.viewing-booking>.appointment-check:hover{background:#edf2f2}

header nav .appointment-nav{border:0;border-radius:0;padding:0;white-space:nowrap;text-align:inherit}@media(max-width:640px){header nav .appointment-nav{grid-column:auto;padding:7px 0;white-space:normal}}

/* Balance the main navigation and keep appointment lookup last. */
@media(min-width:1101px){header nav{flex:1;justify-content:center;gap:clamp(18px,2vw,32px);margin-inline:auto}header>.account-menu{margin-left:0;flex-shrink:0}header>.brand{flex-shrink:0}}
@media(min-width:641px) and (max-width:1100px){header nav{justify-content:center;gap:18px 28px;padding-bottom:4px}}
@media(max-width:640px){header nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}header nav a{text-align:center;justify-content:center}header nav .appointment-nav{grid-column:1/-1;text-align:center;padding:10px 0}}

.availability-form{display:grid;gap:20px;max-width:900px}.availability-form input,.availability-form select{height:60px;font-size:19px;width:100%}.closed-times{padding:16px;border:1px solid #d5b89e;border-radius:8px;margin-bottom:20px}.closed-times summary{cursor:pointer}.closed-times li{margin-bottom:10px;overflow-wrap:anywhere}



/* Consistent spacing, controls and navigation across current pages. */
:root{--ui-space:24px;--ui-border:#d7dfdc;--ui-radius:12px}
header nav a{line-height:1.5;transition:color .15s ease}header nav a:hover{color:#a25237}header .account-menu summary{border-radius:8px;min-height:52px;background:#fff9}.portal-intro .city-art{pointer-events:none}.portal-cards .card{border:1px solid var(--ui-border);box-shadow:0 4px 18px #17354406;transition:box-shadow .18s ease}.portal-cards .card:hover{box-shadow:0 10px 28px #17354412}.portal-cards .card-date{gap:10px;flex-wrap:wrap;line-height:1.6}.portal-cards .contact-card{min-height:44px}.portal-cards .card-bottom{align-items:center}.form-grid>label,.auth label,.viewing-booking label{line-height:1.6}.viewing-booking h2{margin-bottom:12px}.viewing-booking>p{margin-bottom:24px}.viewing-booking input,.viewing-booking textarea,.auth input,.auth select{border:1px solid #cad5d1;border-radius:8px;background:white}.viewing-booking input:focus,.viewing-booking textarea:focus,.auth input:focus{border-color:#527c89;outline:2px solid #527c8933;outline-offset:2px}.contact-panel .viewing-cta{min-height:56px}.detail-heading>div:first-child{min-width:0}.detail-heading h1{margin-top:12px}.appointment-search label{display:grid;gap:8px;min-width:0}.appointment-search input{width:100%;border-radius:8px}.appointment-editor .form-grid>label{min-width:0}.appointment-editor input[type="datetime-local"]{max-width:100%}.notification,.conversation{overflow-wrap:anywhere}.conversation>div{min-width:0}.conversation h3{line-height:1.5}.appointment-number strong{font-family:ui-monospace,Consolas,monospace}.report-box{margin-top:26px}.table-wrap{border-radius:12px}footer a{line-height:1.6}
@media(min-width:1101px){header{padding-inline:36px}header nav{gap:clamp(14px,1.5vw,25px)}.detail-layout{align-items:start}.viewing-booking .form-grid{align-items:start}.portal-intro .city-art{opacity:.8}}
@media(max-width:850px){.portal-intro .city-art{right:-50px;bottom:0;opacity:.12}.portal-intro p{position:relative}.catalog-title{align-items:start}.catalog-title>div{min-width:0}}
@media(max-width:640px){header{padding-top:12px;padding-bottom:12px;gap:10px}header nav{padding-top:8px;gap:2px 10px}header nav a{min-height:44px;display:flex;align-items:center;justify-content:center;padding:6px 2px}header nav .appointment-nav{min-height:44px;padding:6px 2px}main{padding-inline:16px}.portal-breadcrumb{padding-block:16px}.discovery-shell{border-radius:12px}.portal-intro{padding:24px 22px}.portal-search{padding:24px 18px}.portal-search-heading{margin-bottom:22px}.portal-search-heading strong{font-size:24px}.portal-search .purpose-options{margin-bottom:24px}.portal-cards .card-date{display:flex}.portal-cards .card-bottom{align-items:start}.contact-panel{padding:22px}.viewing-booking{padding:20px}.viewing-booking h2{font-size:25px}.viewing-booking textarea{padding:12px}.appointment-editor{padding:16px}.appointment-editor .button{width:100%;justify-self:stretch}.row-actions .inline-action{flex:1;min-width:130px}.row-actions .button{width:100%}.conversation{padding:18px;gap:12px}.conversation .avatar{width:36px;height:36px}.conversation h3{font-size:20px}.conversation p,.conversation small{font-size:17px}.auth-links a{min-height:44px;display:inline-flex;align-items:center}.page-heading h1{font-size:30px;line-height:1.4}.page-heading{gap:16px}.appointment-search{width:100%}.appointment-number{padding:12px}.appointment-number strong{font-size:21px}.viewing-booking .form-grid{gap:18px}.portal-empty{padding:32px 20px}}
@media(prefers-reduced-motion:reduce){header nav a,.portal-cards .card{transition:none}}

.gallery{position:relative}.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;min-height:48px;border:1px solid #ffffff80;border-radius:50%;background:#173544d9;color:#fff;font-size:23px;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer;box-shadow:0 2px 10px #0002}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-arrow:hover{background:#173544}.gallery-counter{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:5px 14px;border-radius:20px;background:#173544d9;color:#fff;font-size:16px;white-space:nowrap}.thumb[aria-pressed="true"]{outline:3px solid #b96449;outline-offset:2px}@media(max-width:640px){.gallery-arrow{width:44px;height:44px;min-height:44px;font-size:20px}.gallery-prev{left:8px}.gallery-next{right:8px}}

.availability-calendar{max-width:900px;margin-bottom:24px;padding:28px}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px}.calendar-toolbar h2{margin:0;font-size:26px}.calendar-toolbar .button{width:48px;padding:8px}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.calendar-legend span{padding:5px 12px;border-radius:6px;font-size:16px}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekdays{text-align:center;margin-bottom:10px;font-size:17px;color:#647d84}.calendar-day{min-width:0;min-height:80px;padding:10px 4px;border:1px solid #d4ded8;border-radius:8px;background:#fff;color:#173544;font-size:23px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.calendar-day small{font-size:14px}.calendar-day.closed,.calendar-legend .closed{background:#fce5e5;color:#a12f3b;border-color:#d97c85}.calendar-day.partial,.calendar-legend .partial{background:#fff0cf;color:#805a14;border-color:#d3b160}.calendar-day.booked{box-shadow:inset 0 -4px #4184ab}.calendar-legend .booked{background:#e0eff8;color:#235b80}.calendar-day.selected{outline:3px solid #173544;outline-offset:1px}.calendar-day:disabled{opacity:.35;cursor:default}.calendar-selection{background:#f3f5f2;border-radius:8px;padding:18px;margin-top:20px}.calendar-selection p{margin:8px 0 0}@media(max-width:640px){.availability-calendar{padding:18px 12px}.calendar-toolbar h2{font-size:22px}.calendar-toolbar{gap:8px}.calendar-days,.calendar-weekdays{gap:4px}.calendar-day{min-height:60px;font-size:19px;border-radius:6px;padding:6px 1px}.calendar-day small{font-size:11px}.calendar-toolbar .button{width:44px}.calendar-selection{padding:14px}}
