:root { --navy:#08243b; --deep:#041a2b; --sand:#d7b77a; --cream:#f5f0e7; --white:#fff; --ink:#112d40; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
img { width:100%; display:block; }
.section { max-width:1240px; margin:auto; padding:120px 36px; }
.eyebrow { margin:0 0 22px; color:var(--sand); font-size:12px; font-weight:800; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow.dark { color:#93713a; }
h1,h2 { margin:0; font-family:Georgia, 'Times New Roman', serif; font-weight:400; line-height:.96; letter-spacing:-.045em; }
h1 { color:white; font-size:clamp(58px,7.2vw,112px); }
h2 { color:var(--navy); font-size:clamp(44px,5vw,72px); }
h1 em,h2 em { color:var(--sand); font-weight:400; }
.siteHeader { position:absolute; z-index:10; top:0; left:0; right:0; height:100px; display:flex; align-items:center; gap:50px; padding:0 4vw; color:#fff; border-bottom:1px solid rgba(255,255,255,.26); }
.brand { display:flex; align-items:center; gap:12px; min-width:max-content; }
.brandMark { display:grid; place-items:center; width:44px; height:44px; border:1px solid var(--sand); border-radius:50%; color:var(--sand); font-family:Georgia,serif; font-weight:bold; }
.brand b,.brand small { display:block; text-transform:uppercase; letter-spacing:.15em; }
.brand b { font-family:Georgia,serif; font-size:17px; }
.brand small { margin-top:3px; color:var(--sand); font-size:8px; }
nav { display:flex; gap:28px; margin-left:auto; }
nav a { font-size:12px; font-weight:700; letter-spacing:.08em; }
nav a:hover { color:var(--sand); }
.headerCta { padding:13px 18px; border:1px solid rgba(255,255,255,.65); font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.hero { position:relative; min-height:880px; height:100vh; overflow:hidden; background:var(--deep); }
.hero>img { position:absolute; inset:0; height:100%; object-fit:cover; object-position:center; }
.heroShade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(3,20,33,.9) 0%,rgba(3,20,33,.5) 45%,rgba(3,20,33,.1) 75%),linear-gradient(0deg,rgba(3,20,33,.75),transparent 38%); }
.heroContent { position:relative; z-index:2; max-width:800px; padding:190px 7vw 140px; }
.heroText { max-width:570px; color:rgba(255,255,255,.82); font-size:18px; line-height:1.65; }
.heroActions { display:flex; align-items:center; gap:30px; margin-top:36px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:28px; min-height:54px; padding:0 22px; font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.button.sand { background:var(--sand); color:var(--deep); }
.button.navy { background:var(--navy); color:white; }
.button.outline { border:1px solid #b7aa96; }
.button:hover { transform:translateY(-2px); }
.textLink { color:#fff; border-bottom:1px solid rgba(255,255,255,.4); padding:14px 0; font-size:12px; font-weight:700; }
.heroFacts { position:absolute; z-index:2; right:5vw; bottom:0; display:flex; color:#fff; border-top:1px solid rgba(255,255,255,.35); }
.heroFacts div { min-width:160px; padding:25px 28px; border-left:1px solid rgba(255,255,255,.25); }
.heroFacts strong,.heroFacts span { display:block; }
.heroFacts strong { height:29px; margin-bottom:6px; font-family:Georgia,serif; font-size:24px; line-height:1; color:var(--sand); }
.heroFacts strong .ratingStar { display:inline-block; margin-left:2px; font-family:Arial,Helvetica,sans-serif; font-size:.72em; line-height:1; vertical-align:top; transform:translateY(-1px); }
.heroFacts span { font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.intro { display:grid; grid-template-columns:1.05fr .95fr; gap:100px; align-items:start; }
.introCopy { padding-top:36px; }
.introCopy>p:first-of-type { margin:0; font-family:Georgia,serif; font-size:24px; line-height:1.55; }
.sourceNote { margin:25px 0; padding-left:18px; border-left:2px solid var(--sand); color:#64737b; font-size:13px; line-height:1.55; }
.underLink { display:inline-flex; gap:50px; padding:12px 0; border-bottom:1px solid var(--navy); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.1em; }
.featureSection { color:#fff; background:var(--navy); }
.featureSection h2 { color:white; }
.featureHeading { padding-bottom:90px; }
.features { display:grid; grid-template-columns:repeat(3,1fr); margin-top:75px; border-top:1px solid rgba(255,255,255,.15); }
.feature { display:flex; gap:20px; padding:34px 24px 34px 0; border-bottom:1px solid rgba(255,255,255,.15); }
.feature:nth-child(3n+2),.feature:nth-child(3n+3) { padding-left:24px; border-left:1px solid rgba(255,255,255,.15); }
.featureIcon { flex:0 0 43px; display:grid; place-items:center; width:43px; height:43px; border:1px solid rgba(215,183,122,.65); border-radius:50%; color:var(--sand); font-size:18px; }
.feature h3 { margin:0 0 10px; font-family:Georgia,serif; font-size:20px; }
.feature p { margin:0; color:#b8c2c9; font-size:13px; line-height:1.6; }
.pricing { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; align-items:center; }
.pricingIntro>p:last-child { max-width:450px; margin-top:30px; color:#60717c; line-height:1.7; }
.priceCards { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.priceCard { min-height:390px; padding:38px; background:var(--cream); display:flex; flex-direction:column; }
.priceCard.featured { color:#fff; background:var(--navy); }
.priceLabel { color:#9b7741; font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.priceCard h3 { margin:22px 0 30px; font-family:Georgia,serif; font-size:24px; }
.price { margin:0 0 18px; font-family:Georgia,serif; font-size:30px; }
.price strong { font-size:46px; }
.priceCard>p:not(.price) { color:#687984; font-size:13px; line-height:1.65; }
.priceCard.featured>p:not(.price) { color:#bec8ce; }
.priceCard .button { align-self:flex-start; margin-top:auto; background:var(--sand); color:var(--deep); }
.priceCard small { margin-top:auto; color:#75838a; font-size:10px; line-height:1.5; }
.gallerySection { padding-bottom:24px; color:#fff; background:var(--deep); }
.galleryHeading { display:flex; justify-content:space-between; align-items:end; padding-bottom:70px; }
.galleryHeading h2 { color:#fff; }
.galleryHeading>p { max-width:320px; color:#aeb9c0; font-family:Georgia,serif; font-size:20px; line-height:1.5; }
.galleryGrid { display:grid; grid-template-columns:1.3fr .7fr 1fr; grid-auto-rows:310px; gap:8px; padding:0 24px; }
.galleryGrid figure { margin:0; overflow:hidden; }
.galleryGrid img { height:100%; object-fit:cover; transition:transform .7s ease; }
.galleryGrid figure:hover img { transform:scale(1.035); }
.galleryWide { grid-column:span 2; }
.galleryTall { grid-row:span 2; }
.location { display:grid; grid-template-columns:.95fr 1.05fr; gap:0; align-items:stretch; }
.locationImage { min-height:620px; }
.locationImage img { height:100%; object-fit:cover; }
.mapImage { position:relative; overflow:hidden; background:#efe8dc; }
.mapImage img { object-position:62% center; }
.mapCredit { position:absolute; left:14px; bottom:14px; padding:8px 10px; background:rgba(255,255,255,.92); color:#294351; font-size:10px; font-weight:700; }
.mapCredit:hover { background:#fff; }
.locationCard { padding:70px; background:var(--cream); }
.locationCard address { margin:45px 0; font-style:normal; border-top:1px solid #d7ccbc; }
.locationCard address div { display:grid; grid-template-columns:130px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid #d7ccbc; }
.locationCard address span { color:#87775f; font-size:10px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.locationCard address strong,.locationCard address a { font-family:Georgia,serif; font-size:19px; line-height:1.5; }
.contactActions { display:flex; flex-wrap:wrap; gap:12px; }
.availability { margin-top:24px; color:#6c797f; font-size:12px; }
.ctaBand { display:flex; justify-content:space-between; align-items:center; padding:80px 8vw; color:#fff; background:var(--navy); }
.ctaBand h2 { color:#fff; font-size:clamp(38px,4.5vw,64px); }
footer { position:relative; display:grid; grid-template-columns:2fr 1fr 1.1fr 1.4fr; gap:50px; padding:80px 7vw 110px; color:#c2ccd1; background:var(--deep); font-size:12px; }
footer>div { display:flex; flex-direction:column; gap:12px; }
footer>div>b { margin-bottom:8px; color:var(--sand); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
footer a:hover { color:var(--sand); }
.footerBrand { color:#fff; align-self:start; }
.copyright { position:absolute; bottom:26px; left:7vw; margin:0; color:#71828c; font-size:10px; }
.legalPage { max-width:860px; min-height:100vh; margin:auto; padding:70px 28px 110px; }
.legalPage h1 { margin:35px 0 45px; color:var(--navy); font-size:clamp(50px,8vw,82px); }
.legalPage section { margin:42px 0; }
.legalPage section h2 { margin-bottom:16px; font-family:Georgia,serif; font-size:26px; letter-spacing:-.02em; }
.legalPage p { color:#445b69; line-height:1.75; }
.legalPage a { text-decoration:underline; text-underline-offset:3px; }
.legalBack { display:inline-block; margin-bottom:65px; color:var(--navy); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.legalNotice { padding:22px 24px; border-left:4px solid #b76f43; background:#fff1e5; color:#5b3822; font-size:14px; line-height:1.65; }
.legalNotice strong { display:block; margin-bottom:4px; }
.legalDate { margin-top:60px; font-size:12px; }

@media (max-width:1000px) {
  nav { display:none; }
  .headerCta { margin-left:auto; }
  .heroFacts { left:0; right:0; justify-content:center; }
  .intro,.pricing { grid-template-columns:1fr; gap:55px; }
  .features { grid-template-columns:repeat(2,1fr); }
  .feature:nth-child(n) { padding:30px 20px 30px 0; border-left:0; }
  .feature:nth-child(even) { padding-left:20px; border-left:1px solid rgba(255,255,255,.15); }
  .galleryGrid { grid-template-columns:1fr 1fr; }
  .galleryTall { grid-row:auto; }
  .location { grid-template-columns:1fr 1fr; }
  .locationCard { padding:50px 36px; }
  footer { grid-template-columns:1.5fr 1fr 1fr; }
  footer>div:last-of-type { display:none; }
}

@media (max-width:700px) {
  .section { padding:78px 20px; }
  .siteHeader { height:78px; padding:0 18px; }
  .headerCta { display:none; }
  .hero { min-height:760px; height:100svh; }
  .hero>img { object-position:58% center; }
  .heroContent { padding:145px 20px 170px; }
  .heroText { font-size:15px; }
  .heroActions { align-items:flex-start; flex-direction:column; gap:12px; }
  .heroFacts { justify-content:stretch; }
  .heroFacts div { min-width:0; flex:1; padding:18px 12px; }
  .heroFacts strong { font-size:19px; white-space:nowrap; }
  .heroFacts strong .ratingStar { margin-left:1px; transform:translateY(-1px); }
  .heroFacts span { font-size:8px; }
  .intro { gap:35px; }
  .introCopy { padding-top:0; }
  .introCopy>p:first-of-type { font-size:20px; }
  .features,.priceCards { grid-template-columns:1fr; }
  .feature:nth-child(n) { padding:25px 0; border-left:0; }
  .priceCard { min-height:350px; padding:30px; }
  .galleryHeading { display:block; }
  .galleryHeading>p { margin-top:28px; }
  .galleryGrid { grid-template-columns:1fr; grid-auto-rows:260px; padding:0 10px; }
  .galleryWide { grid-column:auto; }
  .location { display:flex; flex-direction:column; padding-left:10px; padding-right:10px; }
  .locationImage { min-height:360px; }
  .locationCard { padding:44px 24px; }
  .locationCard address div { grid-template-columns:1fr; gap:9px; }
  .contactActions { flex-direction:column; }
  .contactActions .button { width:100%; }
  .ctaBand { align-items:flex-start; flex-direction:column; gap:35px; padding:65px 20px; }
  footer { grid-template-columns:1fr 1fr; padding:65px 22px 110px; gap:45px 24px; }
  .footerBrand { grid-column:span 2; }
  footer>div:last-of-type { display:flex; }
}
