:root{
  --navy:#1f3a5f; --navy-d:#152a44; --blue:#34618e; --gold:#c8a24a; --gold-d:#b08d34;
  --ink:#22303c; --muted:#5b6b7a; --line:#e4e9ef; --bg:#ffffff; --soft:#f4f7fa; --bone:#f4f1e7;
  --maxw:1080px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%}
h2{color:var(--navy);font-size:1.65rem;margin:0 0 16px}
h3{color:var(--navy);font-size:1.15rem;margin:26px 0 8px}
blockquote{margin:0 0 18px}
blockquote p{margin:.4rem 0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}

/* ===== header + nav ===== */
.site-head{background:linear-gradient(to right,var(--blue) 0%,var(--navy) 55%,var(--navy-d) 100%);position:relative;z-index:100}
.site-head::before{content:"";display:block;height:4px;background:linear-gradient(to right,#e6cb7a 0%,#c8a24a 55%,#9c7a2e 100%)}
.bar{max-width:var(--maxw);margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand{font-family:Georgia,'Times New Roman',serif;color:var(--bone);font-weight:700;font-size:1.3rem;line-height:1.15;text-decoration:none}
.brand:hover{text-decoration:none;color:var(--bone)}
.brand span{display:block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;font-size:.64rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:rgba(244,241,231,.72);margin-top:4px}
.menu-toggle{display:none;background:none;border:none;font-size:1.6rem;color:var(--bone);cursor:pointer;line-height:1;padding:4px 8px}
.nav .menu{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0}
.has-sub{position:relative}
.top{background:none;border:none;font:inherit;font-weight:600;font-size:.92rem;color:var(--bone);padding:10px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;border-radius:6px}
.top:hover{color:#fff}
.top.active{color:var(--gold)}
.caret{font-size:.62rem;transition:transform .2s;opacity:.85}
.has-sub.open .caret{transform:rotate(180deg)}
.sub{position:absolute;top:100%;left:0;background:rgba(255,255,255,.8);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 28px rgba(0,0,0,.2);list-style:none;margin:6px 0 0;padding:6px;min-width:230px;display:none;z-index:50}
.has-sub.open .sub{display:block}
.sub a{display:block;padding:9px 12px;border-radius:6px;color:var(--ink);font-size:.9rem;font-weight:500;white-space:nowrap}
.sub a:hover{background:var(--soft);color:var(--navy);text-decoration:none}
.sub a.active{color:var(--navy);font-weight:700}
.cta a{display:inline-block;border:2px solid var(--bone);color:var(--bone);font-weight:700;font-size:.9rem;padding:8px 18px;border-radius:6px;margin-left:10px}
.cta a:hover,.cta a.active{background:var(--bone);color:var(--navy-d);text-decoration:none}
@media (hover:hover) and (min-width:901px){.has-sub:hover .sub{display:block}.has-sub:hover .caret{transform:rotate(180deg)}.sub::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}}
@media(max-width:900px){
  .menu-toggle{display:block}
  .nav{position:absolute;top:100%;left:0;right:0;background:var(--navy);border-bottom:4px solid var(--gold);box-shadow:0 10px 22px rgba(0,0,0,.2);display:none}
  .nav.show{display:block}
  .nav .menu{flex-direction:column;align-items:stretch;padding:10px}
  .top{width:100%;justify-content:space-between}
  .sub{position:static;display:none;background:transparent;box-shadow:none;border:none;padding:2px 0 8px 14px;margin:0;min-width:0}
  .has-sub.open .sub{display:block}
  .sub a{color:#dbe4ef}
  .sub a:hover{background:rgba(255,255,255,.08);color:#fff}
  .sub a.active{color:var(--gold)}
  .cta a{display:block;margin:10px 0 4px;text-align:center}
}

/* ===== home: full-page photo background ===== */
body.home{background:transparent}
body.home::before{content:"";position:fixed;inset:0;z-index:-2;background:var(--navy-d) url('homescreen.jpg') center/cover no-repeat}
body.home::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,35,.40),rgba(12,20,35,.60))}
.photo-hero{position:relative;text-align:center;padding:74px 20px}
.photo-inner{max-width:800px;margin:0 auto}
.photo-hero h1{font-family:Georgia,'Times New Roman',serif;color:var(--gold);font-size:2.3rem;margin:0 0 10px;line-height:1.2;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.photo-hero .who{display:block;color:var(--bone);font-size:1.05rem;margin-bottom:24px;text-shadow:0 1px 8px rgba(0,0,0,.65)}
.pitch{max-width:720px;margin:0 auto 26px;text-align:left;text-shadow:0 1px 8px rgba(0,0,0,.7)}
.pitch p{color:var(--bone);font-size:1.1rem;margin:0 0 14px}
.pitch ul{margin:0;padding-left:20px}
.pitch li{color:var(--bone);margin:8px 0}
@media(max-width:600px){.photo-hero{padding:50px 16px}.photo-hero h1{font-size:1.75rem}}
/* home content sitting over the photo */
.home .callout{background:rgba(16,26,43,.55);color:var(--bone);border-left-color:var(--gold);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.home .callout b{color:#fff}
.home .cards .card{background:rgba(16,26,43,.55);border-color:rgba(255,255,255,.18);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.home .card h3{color:#fff}
.home .card p{color:var(--bone)}
.home .card a{color:var(--gold)}
.home .btn.alt{color:var(--bone);border-color:var(--bone)}
.home .btn.alt:hover{background:var(--bone);color:var(--navy-d)}
.home .site-foot{background:rgba(12,20,35,.72)}

/* ===== inner pages: full-page photo background ===== */
body.inner{background:transparent}
body.inner::before{content:"";position:fixed;inset:0;z-index:-2;background:var(--navy-d) url('additionalpages.jpg') center/cover no-repeat}
body.inner::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,35,.48),rgba(12,20,35,.64))}
.inner h2{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.inner h3{color:#fff}
.inner .content{color:var(--bone)}
.inner .content p,.inner .content li,.inner .lead{color:var(--bone)}
.inner .content>p,.inner .content>ul li,.inner .lead{text-shadow:0 1px 7px rgba(0,0,0,.55)}
.inner .content a{color:var(--gold)}
.inner label{color:var(--bone)}
.inner .info-line b{color:#fff}
.inner .callout{background:rgba(16,26,43,.58);color:var(--bone);border-left-color:var(--gold);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.inner .callout b{color:#fff}
.inner .empty{background:rgba(20,36,58,.60);border:1px solid rgba(255,255,255,.18);color:var(--bone);text-align:left;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.inner .empty h3{margin-top:0}
.inner .btn.alt{color:var(--bone);border-color:var(--bone)}
.inner .btn.alt:hover{background:var(--bone);color:var(--navy-d)}
.inner .site-foot{background:rgba(12,20,35,.72)}
.form-msg{padding:12px 14px;border-radius:6px;margin-top:14px;display:none}
.form-msg.ok{display:block;background:#e6f4ea;color:#1e6b3a;border:1px solid #b7e0c4}
.form-msg.err{display:block;background:#fdecec;color:#a12b2b;border:1px solid #f3c2c2}
/* ===== inner pages: photo background + bone text ===== */
body.inner{background:transparent}
body.inner::before{content:"";position:fixed;inset:0;z-index:-2;background:var(--navy-d) url('additionalpages.jpg') center/cover no-repeat}
body.inner::after{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,20,35,.48),rgba(12,20,35,.64))}
.inner .content{color:var(--bone);text-shadow:0 1px 6px rgba(0,0,0,.6)}
.inner .content h2{color:#fff}
.inner .content h3{color:var(--gold)}
.inner .content .lead{color:#efe9dc}
.inner .content p,.inner .content li{color:var(--bone)}
.inner .content a{color:var(--gold)}
.inner .content a:hover{color:#e9d08a}
.inner .callout{background:rgba(16,26,43,.55);border-left-color:var(--gold);color:var(--bone);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);text-shadow:none}
.inner .callout b{color:#fff}
.inner .empty{background:rgba(16,26,43,.55);border-color:rgba(255,255,255,.2);color:var(--bone);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);text-shadow:none}
.inner .empty h3{color:#fff}
.inner label{color:var(--bone);text-shadow:none}
.inner .info-line b{color:var(--gold)}
.inner input,.inner textarea{text-shadow:none}
.inner .site-foot{background:rgba(12,20,35,.72)}

/* ===== content ===== */
main{padding:0;flex:1 0 auto}
.content{padding-top:40px;padding-bottom:40px}
.lead{font-size:1.12rem;color:var(--muted)}
.content ul{padding-left:20px}
.content li{margin:6px 0}
.section{padding:6px 0}

/* buttons */
.btn{display:inline-block;background:var(--gold);color:#1a1a1a;font-weight:700;padding:12px 22px;border-radius:6px;letter-spacing:.5px;border:2px solid var(--gold);cursor:pointer}
.btn:hover{background:var(--gold-d);border-color:var(--gold-d);text-decoration:none}
.btn.alt{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.alt:hover{background:var(--navy);color:#fff}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin:28px 0}
.card{border:1px solid var(--line);border-radius:10px;padding:22px;background:var(--soft)}
.card h3{margin-top:0}
.card a{font-weight:600}

/* callout */
.callout{background:var(--soft);border-left:4px solid var(--gold);padding:16px 20px;border-radius:6px;margin:20px 0}

/* listings empty state */
.empty{border:1px dashed var(--line);background:var(--soft);border-radius:10px;padding:28px;text-align:center;margin:24px 0}

/* contact */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:34px}
@media(max-width:720px){.grid2{grid-template-columns:1fr}}
.field{margin-bottom:16px}
label{display:block;font-weight:600;margin-bottom:6px;font-size:.92rem}
input[type=text],input[type=email],textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff;color:var(--ink)}
textarea{min-height:130px;resize:vertical}
.check{display:flex;align-items:center;gap:8px}
.check label{margin:0;font-weight:400}
.check input{width:auto}
.hp{position:absolute!important;left:-9999px!important}
.info-line{margin:10px 0}
.info-line b{color:var(--navy)}
#formMsg{padding:12px 14px;border-radius:6px;margin-top:14px;display:none}
#formMsg.ok{display:block;background:#e6f4ea;color:#1e6b3a;border:1px solid #b7e0c4}
#formMsg.err{display:block;background:#fdecec;color:#a12b2b;border:1px solid #f3c2c2}

/* ===== property listings ===== */
.listings:empty{display:none}            /* no active listings -> collapse, inquiry block shows */
.listings{margin:6px 0 28px}
.listings>h3{margin-top:0}
.listing-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.listing-card{display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.2);border-radius:12px;overflow:hidden;background:rgba(16,26,43,.6);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);box-shadow:0 10px 24px rgba(0,0,0,.28)}
.listing-media{background:rgba(0,0,0,.25)}
.listing-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;cursor:zoom-in}
@supports not (aspect-ratio:3/2){.listing-photo{height:210px}}
.listing-thumbs{display:flex;gap:6px;padding:8px;overflow-x:auto}
.listing-thumbs img{width:60px;height:44px;object-fit:cover;border-radius:4px;cursor:pointer;opacity:.8;border:1px solid rgba(255,255,255,.18)}
.listing-thumbs img:hover{opacity:1}
.listing-body{padding:16px 18px;display:flex;flex-direction:column;gap:8px}
.listing-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.listing-head h4{margin:0;color:#fff;font-size:1.12rem;text-shadow:none}
.listing-price{color:var(--gold);font-weight:700;font-size:1.1rem;white-space:nowrap}
.listing-location{margin:0;color:var(--bone);font-size:.92rem;opacity:.9;text-shadow:none}
.listing-specs{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:2px 0;padding:0}
.listing-specs li{background:rgba(255,255,255,.1);color:var(--bone);font-size:.82rem;font-weight:600;padding:3px 10px;border-radius:20px;text-shadow:none}
.listing-desc{margin:2px 0;color:var(--bone);font-size:.94rem;line-height:1.55;text-shadow:none}
.listing-contact{margin:6px 0 0;padding-top:10px;border-top:1px solid rgba(255,255,255,.14);color:var(--bone);font-size:.9rem;text-shadow:none}
.listing-contact a{color:var(--gold);font-weight:600}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:1000;background:rgba(6,10,18,.9);display:flex;align-items:center;justify-content:center;padding:24px}
.lightbox img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:6px;box-shadow:0 12px 40px rgba(0,0,0,.6)}
.lightbox-close{position:absolute;top:14px;right:18px;background:none;border:none;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;opacity:.85}
.lightbox-close:hover{opacity:1}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.4);border:none;color:#fff;font-size:1.8rem;padding:12px 18px;cursor:pointer;border-radius:6px;opacity:.8}
.lightbox-nav:hover{opacity:1}
.lightbox-nav.prev{left:14px}
.lightbox-nav.next{right:14px}
@media(max-width:600px){.lightbox-nav{padding:10px 12px;font-size:1.4rem}}

/* footer */
.site-foot{background:var(--navy-d);color:#c9d6e4;padding:34px 0;margin-top:44px;font-size:.9rem;flex-shrink:0}
.site-foot .wrap{display:grid;grid-template-columns:2fr 1fr;gap:24px}
@media(max-width:720px){.site-foot .wrap{grid-template-columns:1fr}}
.site-foot b{color:#fff}
.site-foot a{color:var(--gold)}
.copy{border-top:1px solid rgba(255,255,255,.15);margin-top:20px;padding-top:14px;font-size:.82rem;color:#9fb2c6}

/* ===== legal disclaimer (For Rent / For Sale) ===== */
.disclaimer{margin:28px 0 0;padding:18px 20px;border:1px solid rgba(255,255,255,.18);border-left:4px solid var(--gold);border-radius:8px;background:rgba(16,26,43,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.disclaimer h3{margin:0 0 10px;font-size:.95rem;color:#fff;text-transform:uppercase;letter-spacing:.6px}
.disclaimer p{margin:8px 0;font-size:.87rem;line-height:1.6;color:var(--bone);text-shadow:none}
.disclaimer p:last-child{margin-bottom:0}
.disclaimer b{color:#fff}

/* ===== FAQ accordion ===== */
.faq-group{margin:0 0 22px;border:1px solid rgba(255,255,255,.16);border-radius:10px;overflow:hidden;background:rgba(16,26,43,.5);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.faq-item+.faq-item{border-top:1px solid rgba(255,255,255,.12)}
.faq-q{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;background:none;border:none;font:inherit;font-weight:600;color:var(--bone);text-align:left;padding:14px 18px;cursor:pointer;line-height:1.45;text-shadow:none}
.faq-q:hover{background:rgba(255,255,255,.06);color:#fff}
.faq-q[aria-expanded="true"]{color:var(--gold)}
.faq-caret{flex:0 0 auto;font-size:.7rem;color:var(--gold);transition:transform .2s}
.faq-q[aria-expanded="true"] .faq-caret{transform:rotate(180deg)}
.faq-a{padding:0 18px 16px;text-shadow:none}
.faq-a p{margin:0 0 10px;font-size:.93rem;line-height:1.65;color:var(--bone);text-shadow:none}
.faq-a p:last-child{margin-bottom:0}
.faq-a a{color:var(--gold)}

/* ===== recommendations paging ===== */
.letter p{margin:.55rem 0}
.letter-sign{margin-top:14px;font-size:.92rem;color:#fff}
.letter-sign b{color:var(--gold)}
.pager{display:flex;align-items:center;justify-content:center;gap:16px;margin:10px 0;flex-wrap:wrap}
.pager-btn{background:transparent;border:2px solid var(--bone);color:var(--bone);font:inherit;font-weight:700;font-size:.88rem;padding:8px 16px;border-radius:6px;cursor:pointer}
.pager-btn:hover:not(:disabled){background:var(--bone);color:var(--navy-d)}
.pager-btn:disabled{opacity:.4;cursor:default}
.pager-status{color:var(--bone);font-size:.9rem;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.6)}

/* ===== about: alternating text / photo rows ===== */
.about-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;margin:30px 0}
.about-row.full{grid-template-columns:1fr}
.about-text h3{margin-top:0}
.about-text ul{padding-left:20px;margin:0}
.about-text li{margin:10px 0}
/* desktop: middle row puts photos on the left */
@media(min-width:801px){.about-row.reverse .about-media{order:-1}}
/* mobile: always text first, photos below their own section */
@media(max-width:800px){.about-row{grid-template-columns:1fr;gap:18px}.about-row.reverse .about-media{order:0}}

/* carousel: one photo at a time, inset from the panel that houses it */
.carousel{position:relative;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:rgba(16,26,43,.5);box-shadow:0 10px 26px rgba(0,0,0,.32);padding:14px;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.carousel-track{position:relative;border-radius:8px;overflow:hidden;background:rgba(0,0,0,.3)}
/* contain, not cover: these photos run from 0.74 (portrait) to 1.71 (landscape)
   and cropping them to one box cuts the subject's head off. The fixed height
   also keeps the small originals from being upscaled into a blur. */
.carousel-track img{display:none;width:100%;height:300px;object-fit:contain}
@media(max-width:800px){.carousel-track img{height:260px}}
.carousel-track img:first-child{display:block}   /* no JavaScript: show the first photo */
.carousel.ready .carousel-track img{display:none}
.carousel.ready .carousel-track img.on{display:block}
.carousel-nav{display:none;position:absolute;top:50%;transform:translateY(-50%);background:rgba(0,0,0,.5);border:none;color:#fff;font-size:1.05rem;padding:10px 13px;cursor:pointer;border-radius:6px;opacity:.85;line-height:1;z-index:2}
.carousel.ready .carousel-nav{display:block}
.carousel-nav:hover{opacity:1;background:rgba(0,0,0,.72)}
.carousel-nav.prev{left:8px}
.carousel-nav.next{right:8px}
.carousel-dots{display:flex;justify-content:center;gap:7px;margin-top:12px}
.carousel-dot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:rgba(255,255,255,.45);cursor:pointer}
.carousel-dot.on{background:var(--gold)}
