/* Sean Flanagan — shared design system: tokens, type, buttons, header, footer.
   Load after every other stylesheet. Fonts: Cormorant Garamond (display) + Jost (text), from Google Fonts. */
:root{
  --navy:#0f1f4b;--navy-deep:#0a1533;--ink:#1d2433;--muted:#5f6675;
  --paper:#f8f6f1;--stone:#efebe3;--white:#fff;--line:#ddd6c9;--line-dark:rgba(255,255,255,.18);
  --brass:#a3845a;--brass-light:#c9ae86;
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Jost","Helvetica Neue",Arial,sans-serif;
  --gutter:clamp(20px,5vw,72px);--max:1240px;
  --section:clamp(72px,10vw,136px);
}

/* Buttons and small type — shared by redesigned pages. */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 30px;font:500 13px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid var(--navy);background:var(--navy);color:#fff;transition:background .2s,color .2s,border-color .2s;cursor:pointer}
.btn:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.btn-outline{background:transparent;color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-light{background:#fff;border-color:#fff;color:var(--navy)}
.btn-light:hover{background:var(--paper);border-color:var(--paper);color:var(--navy)}
.btn-ghost-light{background:transparent;border-color:rgba(255,255,255,.7);color:#fff}
.btn-ghost-light:hover{background:#fff;border-color:#fff;color:var(--navy)}
.btn:focus-visible,.link-quiet:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.label{display:block;margin:0 0 18px;font:500 12px/1.4 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.link-quiet{display:inline-block;padding-bottom:6px;border-bottom:1px solid currentColor;font:500 13px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--navy)}
.link-quiet:hover{color:var(--brass)}

/* Header */
header.site-header{box-sizing:border-box;max-width:none!important;width:100%!important;min-height:84px;margin:0!important;padding:14px var(--gutter)!important;display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:24px!important;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97)!important;position:sticky!important;top:0!important;z-index:50;font-family:var(--sans);color:var(--navy);transition:background .3s,border-color .3s,color .3s}
header.site-header *{box-sizing:border-box}
header.site-header a{text-decoration:none}
header.site-header .site-brand{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:14px!important;width:auto!important;height:auto!important;min-width:0!important;margin:0!important;overflow:visible!important;color:inherit!important}
header.site-header .site-brand .sf-mark{display:block!important;width:46px!important;height:46px!important;object-fit:contain!important;flex:none;margin:0!important;transition:filter .3s}
header.site-header .site-brand .brand-name{font:500 14px/1 var(--sans)!important;letter-spacing:.28em!important;color:inherit!important;white-space:nowrap}
header.site-header .header-actions{margin-left:auto;display:flex;align-items:center;gap:28px}
header.site-header .header-connect{display:inline-flex;align-items:center;min-height:44px;padding:0 22px!important;border:1px solid currentColor!important;background:none!important;color:inherit!important;font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;transition:background .2s,color .2s}
header.site-header .header-connect:hover{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important}
header.site-header .menu-toggle{display:flex!important;align-items:center;gap:12px;min-height:44px!important;margin:0;padding:0!important;background:none!important;color:inherit!important;border:0!important;border-radius:0;box-shadow:none!important;font:500 12px/1 var(--sans)!important;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
header.site-header .menu-toggle span:first-child{display:block;width:26px;height:9px;font-size:0!important;line-height:0!important;overflow:hidden;color:inherit;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transition:transform .25s}
header.site-header .menu-toggle[aria-expanded="true"] span:first-child{transform:scaleX(.7)}
header.site-header .menu-toggle:focus-visible,header.site-header .header-connect:focus-visible,header.site-header .site-brand:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
header.site-header nav[aria-label="Main navigation"]{display:none!important;position:absolute!important;right:var(--gutter);left:auto!important;top:calc(100% + 1px)!important;width:min(400px,calc(100vw - 32px))!important;max-width:none!important;margin:0!important;padding:30px 34px 34px!important;background:var(--navy-deep)!important;color:#fff;border:1px solid rgba(255,255,255,.14)!important;border-top:2px solid var(--brass)!important;box-shadow:0 24px 60px rgba(10,21,51,.28);z-index:60;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important}
header.site-header nav[aria-label="Main navigation"].is-open{display:flex!important}
header.site-header nav .menu-label{margin:0 0 10px;font:500 11px/1 var(--sans);letter-spacing:.24em;color:var(--brass-light)}
header.site-header nav[aria-label="Main navigation"]>a{display:flex!important;align-items:center;min-height:0;margin:0!important;padding:11px 0!important;background:none!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.1)!important;border-radius:0!important;box-shadow:none!important;color:#fff!important;font:500 26px/1.15 var(--serif)!important;letter-spacing:0!important;text-transform:none!important;text-decoration:none!important;white-space:nowrap;transition:color .2s,padding .2s}
header.site-header nav[aria-label="Main navigation"]>a:hover{color:var(--brass-light)!important;padding-left:6px!important}
header.site-header nav[aria-label="Main navigation"]>a[aria-current="page"]{color:var(--brass-light)!important}
header.site-header nav[aria-label="Main navigation"]>.menu-subitem{font:400 15px/1.2 var(--sans)!important;letter-spacing:.04em!important;padding:9px 0 13px 16px!important;color:rgba(255,255,255,.75)!important}
header.site-header nav[aria-label="Main navigation"]>.nav-search-primary{justify-content:center;margin-top:24px!important;padding:17px 18px!important;background:#fff!important;color:var(--navy)!important;border:0!important;font:500 12px/1 var(--sans)!important;letter-spacing:.18em!important;text-transform:uppercase!important}
header.site-header nav[aria-label="Main navigation"]>.nav-search-primary:hover{background:var(--paper)!important;color:var(--navy)!important;padding-left:18px!important}

/* Pages with a full-bleed hero: header floats over the photo, then turns solid on scroll. */
body.has-hero header.site-header{position:fixed!important;left:0;right:0;background:transparent!important;border-bottom-color:rgba(255,255,255,.22);color:#fff}
body.has-hero header.site-header .sf-mark{filter:brightness(0) invert(1)}
body.has-hero header.site-header .header-connect:hover{background:#fff!important;border-color:#fff!important;color:var(--navy)!important}
body.has-hero header.site-header.is-solid{background:rgba(255,255,255,.97)!important;border-bottom-color:var(--line);color:var(--navy)}
body.has-hero header.site-header.is-solid .sf-mark{filter:none}
body.has-hero header.site-header.is-solid .header-connect:hover{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important}

@media(max-width:760px){
  header.site-header{min-height:68px;padding:10px 18px!important;gap:12px!important}
  header.site-header .site-brand{gap:10px!important}
  header.site-header .site-brand .sf-mark{width:38px!important;height:38px!important}
  header.site-header .site-brand .brand-name{font-size:12px!important;letter-spacing:.2em!important}
  header.site-header .header-actions{gap:16px}
  header.site-header .header-connect{min-height:38px;padding:0 12px!important;font-size:10.5px;letter-spacing:.14em}
  header.site-header .menu-toggle{font-size:0!important;gap:0;min-width:32px;justify-content:flex-end}
  header.site-header nav[aria-label="Main navigation"]{right:12px;padding:24px 26px 28px!important}
  header.site-header nav[aria-label="Main navigation"]>a{font-size:24px!important}
}
@media(max-width:480px){.btn{padding:0 18px;letter-spacing:.12em}}
@media(max-width:360px){header.site-header .site-brand .brand-name{font-size:11px!important;letter-spacing:.14em!important}header.site-header .header-connect{display:none}}

/* Footer */
footer.site-footer{box-sizing:border-box;display:block!important;max-width:none!important;width:100%;margin:0!important;padding:clamp(64px,8vw,96px) var(--gutter) 36px!important;background:var(--navy-deep)!important;color:rgba(255,255,255,.78)!important;font:400 15px/1.7 var(--sans)!important;text-align:left}
footer.site-footer *{box-sizing:border-box}
footer.site-footer a{color:#fff;text-decoration:none;transition:color .2s}
footer.site-footer a:hover{color:var(--brass-light)}
footer.site-footer .footer-top{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:48px}
footer.site-footer .footer-brand img.footer-mark{display:block;width:52px;height:52px;object-fit:contain;filter:brightness(0) invert(1);margin:0 0 22px}
footer.site-footer .footer-name{margin:0;font:500 30px/1.1 var(--serif);color:#fff;letter-spacing:.01em}
footer.site-footer .footer-role{margin:8px 0 26px;font-size:14px}
footer.site-footer .footer-serhant{display:block;width:118px;height:auto;filter:brightness(0) invert(1);opacity:.9}
footer.site-footer .footer-heading{margin:0 0 18px;font:500 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--brass-light)}
footer.site-footer nav,footer.site-footer .footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
footer.site-footer .footer-legal{max-width:var(--max);margin:64px auto 0;padding-top:28px;border-top:1px solid var(--line-dark);font-size:12.5px;line-height:1.75;color:rgba(255,255,255,.6)}
footer.site-footer .footer-legal p{margin:0 0 10px;max-width:none}
footer.site-footer .footer-legal .eho{display:inline-flex;align-items:center;gap:8px}
@media(max-width:900px){footer.site-footer .footer-top{grid-template-columns:1fr 1fr;gap:40px 28px}footer.site-footer .footer-brand{grid-column:1/-1}}
@media(max-width:480px){footer.site-footer .footer-top{grid-template-columns:1fr}}

/* Skip link: hidden until focused by keyboard. */
.skip-link{position:absolute;left:16px;top:-80px;z-index:100;padding:12px 18px;background:var(--navy);color:#fff!important;font:500 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;transition:top .2s}
.skip-link:focus{top:12px;outline:2px solid var(--brass);outline-offset:2px}

/* Recent sales */
.sales-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-top:1px solid var(--line)}
.sale{padding:30px 28px 32px 0;border-bottom:1px solid var(--line)}
.sale:nth-child(3n+2),.sale:nth-child(3n){padding-left:28px;border-left:1px solid var(--line)}
.sale-tag{display:block;margin-bottom:14px;font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.sale h3{font-family:var(--serif);font-weight:500;font-size:28px;line-height:1.1;color:var(--navy);margin:0}
.sale-price{margin-top:10px!important;font:500 clamp(30px,3vw,38px)/1 var(--serif);color:var(--navy)}
.sale-specs{margin-top:10px!important;font-size:14px;color:var(--muted);letter-spacing:.02em}
@media(max-width:900px){.sales-grid{grid-template-columns:1fr 1fr}.sale,.sale:nth-child(3n+2),.sale:nth-child(3n){padding:24px 20px 26px 0;border-left:0}.sale:nth-child(2n){padding-left:20px;border-left:1px solid var(--line)}}
@media(max-width:480px){.sale h3{font-size:22px}.sale-price{font-size:26px}}

/* Current listings */
.listing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.listing{display:flex;flex-direction:column;padding:clamp(28px,3.5vw,44px);background:#fff;border:1px solid var(--line);border-top:2px solid var(--navy)}
.listing-price{font:500 clamp(40px,4.4vw,56px)/1 var(--serif);color:var(--navy)}
.listing h3{margin-top:18px!important;font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.15;color:var(--navy)}
.listing-city{margin-top:4px!important;color:var(--muted);font-size:15px}
.listing .sale-specs{margin-top:14px!important}
.listing-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:28px}

/* Client reviews */
.review-score{display:flex;align-items:baseline;gap:12px;margin-bottom:18px!important;color:var(--muted);font-size:15px}
.review-score span{font:500 44px/1 var(--serif);color:var(--navy)}
.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.review{margin:0;display:flex;flex-direction:column;padding:34px 32px;background:#fff;border:1px solid var(--line)}
.review blockquote{margin:0;font:400 clamp(20px,1.8vw,23px)/1.5 var(--serif);color:var(--ink)}
.review figcaption{margin-top:auto;padding-top:26px;display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}
.review figcaption strong{font:500 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--navy)}
@media(max-width:900px){.listing-grid,.review-grid{grid-template-columns:1fr}}
@media(max-width:480px){.listing-actions .btn{width:100%}}
.listing h3 a{text-decoration:none;transition:color .2s}
.listing h3 a:hover{color:var(--brass)}
.listing-ask{margin-top:18px!important}

/* Reviews: continuous right-to-left strip (second set is an aria-hidden copy for the seamless loop) */
.review-marquee{margin-top:clamp(36px,4vw,56px);overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.review-marquee:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
.review-track{display:flex;gap:24px;width:max-content;padding-right:24px;animation:review-scroll 90s linear infinite}
.review-marquee:hover .review-track,.review-marquee:focus-within .review-track{animation-play-state:paused}
.review-track .review{flex:0 0 clamp(290px,30vw,400px)}
@keyframes review-scroll{to{transform:translateX(-50%)}}
@media(max-width:760px){.review-track{animation-duration:70s;gap:16px;padding-right:16px}.review-track .review{flex-basis:82vw;padding:28px 24px}}
@media(prefers-reduced-motion:reduce){
 .review-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;padding:0 var(--gutter) 12px}
 .review-track{animation:none}
 .review-track .review[aria-hidden]{display:none}
}

/* Desktop: primary links shown in the header; the Menu panel keeps the full list */
header.site-header .header-links{display:none}
@media(min-width:1180px){
 header.site-header .header-links{display:flex;align-items:center;gap:30px;margin-left:auto}
 header.site-header .header-links~.header-actions{margin-left:36px}
 header.site-header .header-links a{position:relative;padding:8px 0;font:500 12px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:inherit;white-space:nowrap}
 header.site-header .header-links a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s}
 header.site-header .header-links a:hover::after,header.site-header .header-links a[aria-current="page"]::after{transform:scaleX(1)}
 header.site-header .header-links a:focus-visible{outline:2px solid var(--brass);outline-offset:4px}
}
footer.site-footer .footer-social{display:inline-flex;align-items:center;gap:10px}
footer.site-footer .footer-social svg{flex:none}
footer.site-footer .footer-legal a{color:inherit;text-underline-offset:3px}
