/* Combined by _source/bundle_assets.py from: assets/agent.css, assets/site-type.css */
/* Agent profile page (2.2.8), assets/agent.js */
.ag-profile{padding:58px 5% 64px;display:grid;grid-template-columns:minmax(260px,.75fr) 1.25fr;gap:6%;align-items:start}
.ag-portrait{position:relative;aspect-ratio:4/5;background:linear-gradient(140deg,#5a0b14,#c31b37);overflow:hidden}
.ag-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ag-mono{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:500 clamp(60px,9vw,120px)/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;color:rgba(255,255,255,.85);letter-spacing:.04em}
.ag-brand{display:flex;align-items:center;gap:10px;margin:0 0 18px;font:600 10px/1.3 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#a52b1e}
.ag-brand img{border-radius:6px}
.ag-copy h1{margin:0;font:500 clamp(46px,6.4vw,96px)/.86 'Cormorant Garamond',Cormorant Garamond Fallback,serif;letter-spacing:-.035em;color:#4a0005}
.ag-role{margin:16px 0 8px;font:600 11px/1.4 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:#a52b1e}
.ag-count{margin:0 0 24px;font-size:14px;color:#4a423d}
.ag-count b{font-weight:600;color:#7d111b}
.ag-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px 26px;margin:0 0 24px;padding:18px 0;border-top:1px solid #e8e0d9;border-bottom:1px solid #e8e0d9}
.ag-facts div{min-width:0}
.ag-facts dt{font:600 10px/1.3 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6a625b;margin:0 0 5px}
.ag-facts dd{margin:0;font-size:14px;line-height:1.5;color:#2b2523}
.ag-facts dd a{color:#7d111b}
.ag-bio{max-width:720px;font-size:15px;line-height:1.85;color:#4a423d}
.ag-bio p{margin:0 0 16px}
.ag-tags{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0 0}
.ag-tags span{font:600 10px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6a625b;margin-right:4px}
.ag-tags b{font-weight:500;font-size:13px;padding:7px 11px;background:#f6f1ea;color:#3a332f}
.ag-contact{margin-top:30px;padding-top:22px;border-top:1px solid #e8e0d9}
.ag-contact h2{font:500 36px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0 0 14px}
.ag-contact .ag-facts{border:0;padding:0}
.ag-tbc{margin:0 0 16px;font-size:14px;color:#5f574f}
.ag-acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ag-btn{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid #7d111b;background:#7d111b;color:#fff;font:600 11px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;cursor:pointer}
.ag-btn:hover{background:#5a0b14;border-color:#5a0b14}
.ag-btn.ghost{background:transparent;color:#7d111b}
.ag-btn.ghost:hover{background:#7d111b;color:#fff}
.ag-btn:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.ag-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.ag-list{padding:54px 5% 72px;background:#f8f5f1}
.ag-list-head{display:flex;align-items:end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:24px}
.ag-list-head h2{font:500 40px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0}
.ag-tabs{display:flex;flex-wrap:wrap;gap:8px}
.ag-tabs button{min-height:40px;padding:0 14px;border:1px solid #cdbfb0;background:#fff;color:#2b2523;font:500 13px/1 Inter,Inter Fallback,Arial,sans-serif;cursor:pointer}
.ag-tabs button[aria-pressed="true"]{background:#7d111b;border-color:#7d111b;color:#fff}
.ag-tabs button:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.ag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.ag-card{background:#fff;display:flex;flex-direction:column;min-width:0}
.ag-ph{position:relative;display:block;aspect-ratio:1.45;overflow:hidden;background:#e9e2d8}
.ag-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.ag-ph:hover img{transform:scale(1.03)}
.ag-ph:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.ag-pu,.ag-ft{position:absolute;top:12px;font:600 9.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;padding:7px 10px}
.ag-pu{left:12px;background:rgba(248,244,236,.95);color:#2b2523}
.ag-ft{right:12px;background:#b8862b;color:#1a1410}
.ag-cb{padding:16px 18px 20px;display:flex;flex-direction:column;flex:1}
.ag-price{font:300 30px/1 'Antonio',Antonio Fallback,'Arial Narrow',sans-serif;color:#7d111b}
.ag-price small{font-size:14px;color:#6a625b}
.ag-cb h3{margin:8px 0 4px;font:500 14px/1.3 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.ag-cb h3 a{color:#2d2926;text-decoration:none}
.ag-cb h3 a:hover{color:#7d111b}
.ag-pl,.ag-meta,.ag-ref{margin:0 0 4px;font-size:13px;color:#5f574f}
.ag-ref{font-size:11px;letter-spacing:.08em;color:#6a625b}
.ag-enq{margin-top:auto;padding-top:12px;align-self:flex-start;color:#7d111b;font:600 11px/1.2 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor}
.ag-more{display:flex;align-items:center;gap:16px;margin-top:24px}
.ag-more span{font-size:13px;color:#5f574f}
.ag-more[hidden]{display:none}
.ag-empty{grid-column:1/-1;background:#fff;padding:34px 30px}
.ag-empty h3{margin:0 0 10px;font:500 28px/1.1 'Cormorant Garamond',Cormorant Garamond Fallback,serif}
.ag-empty p{margin:0 0 18px;max-width:640px;color:#4a423d;line-height:1.7}
.ag-missing{padding:90px 5%;max-width:760px}
.ag-missing h1{font:500 clamp(40px,6vw,72px)/.95 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0 0 16px;color:#4a0005}
.ag-missing p{color:#4a423d;margin:0 0 24px}
.ag-list .ph-note{margin:22px 0 0;font-size:12px;color:#6a625b}
@media(max-width:1000px){.ag-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.ag-profile{grid-template-columns:1fr;padding-top:36px}.ag-portrait{max-width:420px}}
@media(max-width:560px){.ag-grid{grid-template-columns:1fr}.ag-acts .ag-btn{flex:1 1 auto;justify-content:center}}
/* ---- 2.2.10 ratings, direct contact, social accounts, reviews, posts ---- */
.ag-rating{display:inline-flex;align-items:center;gap:9px;margin:2px 0 14px;text-decoration:none;color:inherit}
.ag-rating b{font:600 17px/1 Inter,Inter Fallback,Arial,sans-serif;color:#7d111b}
.ag-rating span{font-size:13px;color:#5f574f;border-bottom:1px solid #d6cabd}
.ag-rating:hover span{color:#7d111b;border-color:#7d111b}
.ag-rating:focus-visible{outline:2px solid #C31B37;outline-offset:3px}
.ag-direct{margin-bottom:10px}
.ag-btn.wa{background:#1d7a46;border-color:#1d7a46}
.ag-btn.wa:hover{background:#155c35;border-color:#155c35}
.ag-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.ag-tbc.small{font-size:12px;margin:10px 0 0}
.ag-follow{margin-top:22px}
.ag-follow h3{margin:0 0 10px;font:600 10.5px/1 Inter,Inter Fallback,Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#6a625b}
.ag-socs{display:flex;flex-wrap:wrap;gap:8px}
.ag-soc{display:inline-flex;align-items:center;gap:9px;min-height:44px;padding:6px 14px 6px 10px;border:1px solid #e0d6ca;background:#fff;color:#2b2523;text-decoration:none}
.ag-soc svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:#7d111b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ag-soc span{display:flex;flex-direction:column;gap:2px;min-width:0}
.ag-soc b{font:600 12px/1 Inter,Inter Fallback,Arial,sans-serif}
.ag-soc small{font-size:11px;color:#6a625b;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ag-soc:hover{border-color:#C9A646;background:#fffaf0}
.ag-soc:focus-visible{outline:2px solid #C31B37;outline-offset:2px}
.ag-socs.compact .ag-soc{padding:6px 10px}
.ag-socs.compact .ag-soc span{display:none}
.ag-reviews{padding:60px 5% 64px;display:grid;grid-template-columns:minmax(260px,.8fr) 1.6fr;gap:5%;align-items:start;background:#fff}
.ag-rev-sum h2{font:500 40px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0 0 22px}
.ag-rev-big{display:flex;align-items:center;gap:16px;margin-bottom:18px}
.ag-rev-big>b{font:300 64px/1 'Antonio',Antonio Fallback,'Arial Narrow',sans-serif;color:#7d111b}
.ag-rev-big span{display:block;margin-top:6px;font-size:13px;color:#5f574f}
.ag-bars{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:7px}
.ag-bars li{display:grid;grid-template-columns:56px 1fr 30px;align-items:center;gap:10px;font-size:12px;color:#4a423d}
.ag-bars i{display:block;height:8px;background:#f1e9dc}
.ag-bars i b{display:block;height:100%;background:linear-gradient(90deg,#7d111b,#C9A646)}
.ag-bars em{font-style:normal;text-align:right;color:#6a625b}
.ag-rev-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ag-rev{padding:20px 20px 18px;border:1px solid #ece4da;background:#fdfbf7}
.ag-rev-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.ag-rev-when{font-size:11px;color:#6a625b}
.ag-rev blockquote{margin:0 0 12px;font:400 15px/1.6 Inter,Inter Fallback,Arial,sans-serif;color:#2d2926}
.ag-rev-who{margin:0;font-size:12px;color:#5f574f}
.ag-rev-who b{color:#2b2523}
.ag-rev-note{grid-column:1/-1;margin:0;font-size:12px;color:#6a625b}
.ag-posts{padding:56px 5% 70px;background:#171816;color:#f4efe6}
.ag-posts h2{font:500 40px/1 'Cormorant Garamond',Cormorant Garamond Fallback,serif;margin:0;color:#fff}
.ag-posts .ey{color:#e26a7d}
.ag-posts .ag-soc{background:transparent;border-color:rgba(255,255,255,.25);color:#fff}
.ag-posts .ag-soc svg{stroke:#C9A646}
.ag-posts .ag-soc:hover{background:rgba(255,255,255,.06);border-color:#C9A646}
.ag-post-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ag-post{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:#2a2725;color:#fff;text-decoration:none}
.ag-post img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.ag-post:hover img{transform:scale(1.04)}
.ag-post:focus-visible{outline:2px solid #C9A646;outline-offset:2px}
.ag-post-net{position:absolute;top:10px;right:10px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:rgba(23,24,22,.7);border-radius:50%}
.ag-post-net svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ag-post-play{position:absolute;left:50%;top:42%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:rgba(23,24,22,.55)}
.ag-post-play::after{content:'';position:absolute;left:18px;top:14px;border:9px solid transparent;border-left:14px solid #fff;border-right:0}
.ag-post-cap{position:absolute;inset:auto 0 0 0;padding:34px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:12.5px;line-height:1.4}
.ag-post-cap small{display:block;margin-top:4px;font-size:11px;color:#d9cfbf}
.ag-posts .ph-note{margin:18px 0 0;font-size:12px;color:#b8b0a5}
@media(max-width:900px){.ag-reviews{grid-template-columns:1fr}.ag-rev-list{grid-template-columns:1fr}.ag-post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.ag-soc small{max-width:120px}}

/* 3.1.5: a screen of room for the profile before the script draws it, so the contact section below does not jump */
#agentRoot{min-height:calc(100vh - 120px);min-height:calc(100svh - 120px)}

/* ==========================================================================
   Site-wide headings: the same tall, condensed, uppercase lettering and
   crimson > burgundy > oxblood gradient used on the home page.
   (Loaded by every page except the home page, which carries its own copy.)
   ========================================================================== */
@font-face{font-family:"Antonio";src:url("fonts/antonio.woff2") format("woff2");font-weight:100 700;font-style:normal;font-display:swap}
:root{
  --hd-font:"Antonio",Antonio Fallback,"Oswald","Barlow Condensed",Barlow Condensed Fallback,"Arial Narrow",Impact,sans-serif;
  --hd-grad:linear-gradient(180deg,#C31B37 0%,#8E0D20 52%,#4A0005 100%);
}

/* page titles */
h1,h1.h-display{font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.92;text-transform:uppercase;text-shadow:none;
  background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
h1{font-size:clamp(52px,6.2vw,100px)}
/* the "small line over a large line" composition: identical on every page */
h1.h-display:not(.area-title){font-size:clamp(28px,2.9vw,44px)!important;line-height:1!important}
h1.h-display:not(.area-title) strong{display:block;font-size:clamp(52px,6.1vw,96px)!important;font-weight:500;line-height:.92;margin-top:.06em;color:inherit}
h1.area-title{font-size:clamp(60px,8vw,120px)}

/* section headings that sit on white */
.feat-text h2,.t-count h2,h2.section-title,.marketing-intro h2,.t-intro h2,.panel-head h2,.panel-head h3,.intro h2{
  font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.95;text-transform:uppercase;text-shadow:none;
  background:var(--hd-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.feat-text h2,.t-count h2,h2.section-title,.marketing-intro h2,.t-intro h2{font-size:clamp(40px,4.6vw,70px)}
.panel-head h2,.panel-head h3{font-size:clamp(38px,4vw,60px);margin-bottom:14px}
.feat-text h2 strong,.band h2 strong,h2 strong{font-weight:500;color:inherit}

/* red bands: same lettering, in white (a gradient would not read on the red) */
.band h2{font-family:var(--hd-font);font-weight:500;letter-spacing:.04em;line-height:.92;text-transform:uppercase;font-size:clamp(44px,5vw,76px)}

/* big numerals */
.stat b,.t-count b,.fact b,.stats b{font-family:var(--hd-font);font-weight:500;letter-spacing:.03em}

/* ----- pages built with their own heading rules: same lettering, applied with the page's own selectors ----- */
html[data-page="contact-us"] .left h1,
html[data-page="gallery"] .hero h1,
html[data-page="office"] :is(.aboutVisual h1,.aboutVisual h2,.listingHead h2,.teamTitle,.galleryTitle),
html[data-page="offices"] .end h2,
html[data-page="agent"] :is(.copy h2,.portfolioHead h2),
html[data-page="listing"] :is(.hero h1,.intro h2,.galleryHead h2),
html[data-page="list-with-us"] :is(.hero h1,.contact h2){
  font-family:var(--hd-font)!important;font-weight:500!important;letter-spacing:.04em!important;text-transform:uppercase!important;line-height:.94!important;text-shadow:none!important;font-style:normal!important;
  background:var(--hd-grad)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
/* the same lettering on photographs and dark panels, with the lighter reds so it stays readable */
html[data-page="offices"] .officeCopy h1,
html[data-page="office"] section.contact h2,
html[data-page="listing"] section.contact h2{
  font-family:var(--hd-font)!important;font-weight:500!important;letter-spacing:.04em!important;text-transform:uppercase!important;line-height:.94!important;text-shadow:none!important;font-style:normal!important;
  background:linear-gradient(180deg,#FF6F86 0%,#EC3A54 50%,#C31B37 100%)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important;-webkit-text-fill-color:transparent!important}
html[data-page="agent"] .copy h2{font-size:clamp(34px,3.4vw,50px)}

/* ----- fit: the condensed lettering must always stay inside its column ----- */
.t-hero h1,.t-count h1{font-size:clamp(46px,4.9vw,80px)!important;overflow-wrap:normal;word-break:normal}
h1{max-width:100%}
@media(max-width:600px){
  .t-hero h1,.t-count h1{font-size:clamp(30px,8.6vw,40px)!important;letter-spacing:.03em}
  h1.h-display:not(.area-title){font-size:clamp(22px,6.4vw,30px)!important}
  h1.h-display:not(.area-title) strong{font-size:clamp(40px,12.4vw,58px)!important}
}

/* ----- the shared top menu now has six links: on phones keep Rentals, Invest and Contact ----- */
@media(max-width:700px){
  .top nav a{display:none!important}
  .top nav a:nth-last-child(-n+3){display:inline-block!important}
  .top nav{gap:14px}
  .top .brand{font-size:11px;letter-spacing:.16em}
}

/* stat labels sit on white on these pages (the pale pink is only for the red band) */
.t-intro .stat span,.facts .stat span,.glance .stat span{color:#6a625b}

@media(max-width:360px){.top{padding:0 3%}.top .brand{font-size:10px;letter-spacing:.08em}.top nav{gap:9px}.top nav a{letter-spacing:.06em;font-size:9px}}
/* anchors on sub-pages land below the sticky header */
html:not([data-page]){scroll-padding-top:104px}

@media(max-width:480px){.t-intro{grid-template-columns:minmax(0,1fr)}.t-intro>*{min-width:0}.stat b{overflow-wrap:anywhere}}

/* ----- 3.2.11 readability floor: small type stays small, but never below about 9–10 px ----- */
@media screen{
html[data-page="list-with-us"] .field label{font-size:10px!important}
html[data-page="list-with-us"] .kicker,html[data-page="list-with-us"] .footer span,html[data-page="list-with-us"] .footer a{font-size:9.5px!important}
html[data-page="office"] .photo .badge,html[data-page="office"] .card .loc{font-size:9.5px!important}
html[data-page="office"] .meta span,html[data-page="office"] .meta b{font-size:10px!important}
html[data-page="office"] .teamCardCopy span{font-size:9px!important;letter-spacing:.12em!important}
html[data-page="office"] .sectionViewLink{font-size:9.5px!important;z-index:5!important}
html[data-page="listing"] .ey,html[data-page="listing"] .galleryHead span,html[data-page="listing"] .contact a,html[data-page="listing"] .note{font-size:9.5px!important}
}

/* ----- 3.2.11 no jumping while a page draws itself: room is kept for the parts its script fills in ----- */
#ppCards:is(:empty,:has(> noscript:only-child)){min-height:680px}#ppCmp:empty{min-height:665px}
@media(max-width:1100px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:750px}}
@media(max-width:820px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:1600px}#ppCmp:empty{min-height:715px}}
@media(max-width:480px){#ppCards:is(:empty,:has(> noscript:only-child)){min-height:1790px}#ppCmp:empty{min-height:725px}}
html[data-page="office"] #aboutText:empty{min-height:380px}
@media(max-width:1100px){html[data-page="office"] #aboutText:empty{min-height:500px}}
@media(max-width:820px){html[data-page="office"] #aboutText:empty{min-height:300px}}
@media(max-width:480px){html[data-page="office"] #aboutText:empty{min-height:600px}}
#prRoot,#vwRoot{min-height:70vh}

/* ----- 3.2.11 the shared footer, for pages that do not carry the marketing styles ----- */
.hv-foot{padding:28px 4%;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font:400 11px/1.6 Inter,"Inter Fallback",Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#77706a;background:#fff}
.hv-foot .credits{flex:1;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:none;color:#6a625b}
.hv-foot a{color:inherit;text-decoration:none}.hv-foot a:hover{color:#8E0D20}
@media(max-width:700px){.hv-foot{flex-direction:column;align-items:flex-start;text-align:left}.hv-foot .credits{text-align:left}}
/* the floating WhatsApp button and the social button never cover the footer's words */
footer.footer{padding-right:max(4%,250px)!important}
@media(max-width:700px){footer.footer{padding-right:4%!important;padding-bottom:96px!important}}
@media print{footer.hv-foot{display:none!important}}

