:root{
    --navy-deep:#0A1F2E;
    --navy:#0E2A3D;
    --gold:#C9B48A;
    --gold-dark:#8B7355;
    --cream:#F7F4EE;
    --cream-line:rgba(247,244,238,0.14);
    --text-on-dark:#F7F4EE;
    --text-on-dark-mute:#B9C4CC;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'Instrument Sans',sans-serif;
    background:var(--cream);
    color:var(--navy-deep);
    font-weight:400;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Italiana',serif;
    font-weight:400;
    letter-spacing:0;
  }
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* NAV */
  header{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(10,31,46,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--cream-line);
  }
  nav.wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:82px;
  }
  .logo{
    font-family:'Italiana',serif;
    font-size:20px;letter-spacing:0.04em;
    color:var(--text-on-dark);
    text-transform:uppercase;
  }
  .logo span{color:var(--gold);}
  .navlinks{display:flex;gap:36px;align-items:center;}
  .navlinks a{
    font-size:13px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--text-on-dark-mute);
    transition:color .2s;
  }
  .navlinks a:hover{color:var(--gold);}
  .navlinks .cta{
    border:1px solid var(--gold);
    color:var(--gold);
    padding:10px 20px;
    border-radius:2px;
  }
  .navlinks .cta:hover{background:var(--gold);color:var(--navy-deep);}

  /* HERO */
  .hero{
    background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy) 100%);
    color:var(--text-on-dark);
    padding:190px 0 120px;
    position:relative;
    overflow:hidden;
  }
  .hero::after{
    content:"";
    position:absolute;left:0;right:0;bottom:0;height:120px;
    background:var(--cream);
    clip-path:polygon(0 100%, 100% 40%, 100% 100%);
  }
  .eyebrow{
    font-size:12px;letter-spacing:0.18em;text-transform:uppercase;
    color:var(--gold);margin-bottom:22px;display:flex;align-items:center;gap:10px;
  }
  .eyebrow::before{content:"";width:28px;height:1px;background:var(--gold);}
  .hero h1{
    font-size:clamp(38px,5.4vw,68px);
    line-height:1.05;
    max-width:820px;
    margin-bottom:26px;
  }
  .hero h1 em{font-style:italic;color:var(--gold);}
  .hero p.lead{
    font-size:17px;color:var(--text-on-dark-mute);max-width:500px;margin-bottom:44px;
  }
  .hero-ctas{display:flex;gap:18px;position:relative;z-index:2;}
  .btn-primary{
    background:var(--gold);color:var(--navy-deep);
    padding:15px 30px;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;
    border-radius:2px;font-weight:500;
  }
  .btn-ghost{
    border:1px solid var(--cream-line);color:var(--text-on-dark);
    padding:15px 30px;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;
    border-radius:2px;
  }
  .btn-ghost:hover{border-color:var(--gold);color:var(--gold);}

  /* coastline signature motif */
  .coastline{
    position:absolute;right:-40px;top:120px;width:520px;opacity:0.5;z-index:1;
  }

  /* JOURNEY STRIP */
  .journey{
    background:var(--cream);
    padding:0 0 90px;
  }
  .journey-inner{
    display:grid;grid-template-columns:repeat(4,1fr);
    border-top:1px solid rgba(10,31,46,0.12);
    border-bottom:1px solid rgba(10,31,46,0.12);
  }
  .journey-step{
    padding:26px 24px;border-right:1px solid rgba(10,31,46,0.12);
  }
  .journey-step:last-child{border-right:none;}
  .journey-step .num{
    font-family:'Italiana',serif;font-size:13px;color:var(--gold-dark);margin-bottom:8px;display:block;
  }
  .journey-step .label{font-size:14px;font-weight:500;}

  /* SECTION generic */
  section{padding:110px 0;}
  .section-head{max-width:640px;margin-bottom:64px;}
  .section-head .eyebrow{color:var(--gold-dark);}
  .section-head .eyebrow::before{background:var(--gold-dark);}
  .section-head h2{font-size:clamp(28px,3.4vw,42px);line-height:1.15;color:var(--navy-deep);}
  .section-head p{margin-top:18px;color:#4A5560;font-size:16px;max-width:520px;}

  /* CATEGORY GRID */
  .cat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(10,31,46,0.12);}
  .cat-card{
    background:var(--cream);padding:32px 22px;min-height:230px;
    display:flex;flex-direction:column;justify-content:space-between;
    transition:background .25s;
  }
  .cat-card:hover{background:var(--navy-deep);color:var(--text-on-dark);}
  .cat-card:hover .cat-num,.cat-card:hover p{color:var(--text-on-dark-mute);}
  .cat-num{font-family:'Italiana',serif;font-size:13px;color:var(--gold-dark);}
  .cat-card h3{font-size:18px;margin:18px 0 10px;line-height:1.25;}
  .cat-card p{font-size:13px;color:#6B7580;line-height:1.5;}

  /* IMAGE BREAK / placeholder */
  .placeholder-block{
    background:var(--navy-deep);
    aspect-ratio:16/9;
    overflow:hidden;
  }
  .placeholder-block img{width:100%;height:100%;object-fit:cover;display:block;}
  .image-break .wrap{display:grid;grid-template-columns:1.1fr 0.9fr;gap:60px;align-items:center;}
  .image-break h2{font-size:clamp(26px,3vw,36px);color:var(--navy-deep);margin-bottom:20px;}
  .image-break p{color:#4A5560;font-size:16px;margin-bottom:14px;max-width:440px;}
  .amenity-list{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:22px;}
  .amenity-list span{font-size:13px;color:var(--gold-dark);}
  .amenity-list span::before{content:"— ";color:var(--gold);}

  /* WHY */
  .why-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:32px;}
  .why-item .num{font-family:'Italiana',serif;color:var(--gold-dark);font-size:15px;margin-bottom:14px;}
  .why-item h3{font-size:18px;margin-bottom:10px;}
  .why-item p{font-size:14px;color:#4A5560;}

  /* CTA */
  .final-cta{
    background:var(--navy-deep);color:var(--text-on-dark);
    text-align:center;padding:130px 0;position:relative;overflow:hidden;
  }
  .final-cta h2{font-size:clamp(30px,4vw,50px);margin-bottom:22px;}
  .final-cta p{color:var(--text-on-dark-mute);margin-bottom:38px;}

  /* FOOTER */
  footer{background:var(--navy-deep);color:var(--text-on-dark-mute);padding:60px 0 30px;border-top:1px solid var(--cream-line);}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;margin-bottom:50px;}
  footer .logo{margin-bottom:14px;}
  footer h4{font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--text-on-dark);margin-bottom:16px;}
  footer ul{list-style:none;}
  footer li{margin-bottom:10px;font-size:14px;}
  footer li a:hover{color:var(--gold);}
  .footer-bottom{
    border-top:1px solid var(--cream-line);padding-top:24px;
    display:flex;justify-content:space-between;font-size:12px;color:var(--text-on-dark-mute);
  }

  @media(max-width:900px){
    .journey-inner{grid-template-columns:repeat(2,1fr);}
    .cat-grid{grid-template-columns:repeat(2,1fr);}
    .image-break .wrap{grid-template-columns:1fr;}
    .why-grid{grid-template-columns:repeat(2,1fr);}
    .footer-grid{grid-template-columns:1fr;}
    .navlinks{display:none;}
  }

  /* ============ INTERIOR PAGE HERO ============ */
  .page-hero{
    background:linear-gradient(180deg,var(--navy-deep) 0%,var(--navy) 100%);
    color:var(--text-on-dark);
    padding:170px 0 80px;
  }
  .page-hero h1{font-size:clamp(32px,4.4vw,52px);max-width:720px;}
  .page-hero p.lead{color:var(--text-on-dark-mute);max-width:560px;margin-top:18px;font-size:16px;}

  /* ============ PROPERTY GRID ============ */
  .property-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:36px;
  }
  .property-card{border:1px solid rgba(10,31,46,0.1);}
  .property-thumb{
    aspect-ratio:4/3;background:var(--navy-deep);
    border-bottom:1px solid rgba(247,244,238,0.15);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    color:var(--text-on-dark-mute);gap:10px;text-align:center;
  }
  .property-thumb .thumb-mark{width:30px;height:auto;opacity:0.85;margin-bottom:2px;}
  .property-thumb .tag{font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold);}
  .property-thumb .dims{font-size:11px;color:var(--text-on-dark-mute);}
  .property-info{padding:22px 24px;}
  .property-info .loc{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:8px;}
  .property-info h3{font-size:19px;margin-bottom:8px;}
  .property-info .meta{font-size:13px;color:#6B7580;}

  .filter-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:48px;}
  .filter-pill{
    border:1px solid rgba(10,31,46,0.18);padding:9px 18px;font-size:12px;
    letter-spacing:0.05em;text-transform:uppercase;border-radius:20px;color:#4A5560;
  }
  .filter-pill.active{background:var(--navy-deep);color:var(--cream);border-color:var(--navy-deep);}

  /* ============ LOCATIONS ============ */
  .region-list{display:flex;flex-direction:column;}
  .region-row{
    display:grid;grid-template-columns:0.5fr 1.3fr 1fr;gap:40px;
    padding:38px 0;border-bottom:1px solid rgba(10,31,46,0.1);align-items:center;
  }
  .region-row .num{font-family:'Italiana',serif;font-size:15px;color:var(--gold-dark);}
  .region-row h3{font-size:24px;}
  .region-row p{font-size:14px;color:#4A5560;}
  .region-thumb{
    aspect-ratio:16/10;background:var(--navy-deep);overflow:hidden;
  }
  .region-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

  /* ============ SERVICES ============ */
  .service-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:70px 0;border-bottom:1px solid rgba(10,31,46,0.08);}
  .service-row:last-child{border-bottom:none;}
  .service-row.reverse .service-copy{order:2;}
  .service-row.reverse .service-thumb{order:1;}
  .service-copy .num{font-family:'Italiana',serif;color:var(--gold-dark);font-size:14px;}
  .service-copy h3{font-size:26px;margin:14px 0 14px;}
  .service-copy p{color:#4A5560;font-size:15px;max-width:440px;}
  .service-thumb{
    aspect-ratio:4/3;background:var(--navy-deep);overflow:hidden;
  }
  .service-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

  /* ============ ABOUT ============ */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
  .value-list{display:flex;flex-direction:column;gap:26px;margin-top:10px;}
  .value-list .num{font-family:'Italiana',serif;color:var(--gold-dark);font-size:14px;}
  .value-list h4{font-size:17px;margin:8px 0 6px;}
  .value-list p{font-size:14px;color:#4A5560;}

  /* ============ CONTACT FORM ============ */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;}
  .contact-info h2{font-size:clamp(28px,3.2vw,38px);margin-bottom:20px;}
  .contact-info p{color:#4A5560;font-size:15px;margin-bottom:28px;max-width:400px;}
  .contact-detail{margin-bottom:20px;}
  .contact-detail .label{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:6px;}
  .contact-detail .value{font-size:15px;color:var(--navy-deep);}

  form.enquiry{display:flex;flex-direction:column;gap:20px;}
  .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .field label{display:block;font-size:11px;letter-spacing:0.06em;text-transform:uppercase;color:#6B7580;margin-bottom:8px;}
  .field input, .field select, .field textarea{
    width:100%;border:none;border-bottom:1px solid rgba(10,31,46,0.25);
    background:transparent;padding:10px 2px;font-family:'Instrument Sans',sans-serif;
    font-size:15px;color:var(--navy-deep);
  }
  .field input:focus, .field select:focus, .field textarea:focus{outline:none;border-color:var(--gold-dark);}
  .field textarea{resize:vertical;min-height:110px;}
  .submit-btn{
    align-self:flex-start;background:var(--navy-deep);color:var(--cream);
    padding:15px 34px;font-size:13px;letter-spacing:0.05em;text-transform:uppercase;
    border-radius:2px;border:none;font-family:'Instrument Sans',sans-serif;cursor:pointer;
    margin-top:6px;
  }
  .submit-btn:hover{background:var(--gold-dark);}
  .form-note{font-size:12px;color:#8A9098;margin-top:-6px;}

  @media(max-width:900px){
    .property-grid{grid-template-columns:1fr;}
    .region-row{grid-template-columns:1fr;gap:16px;}
    .service-row, .service-row.reverse{grid-template-columns:1fr;}
    .service-row.reverse .service-copy{order:1;}
    .service-row.reverse .service-thumb{order:2;}
    .about-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
    .form-row{grid-template-columns:1fr;}
  }
