:root{--blue:#004AAD;--green:#3BB371;--ink:#172d40;--muted:#4d5d6b;--pale:#e7eef8;--soft:#f5f8f7;--line:#d6e0e8;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:#fff;line-height:1.65;font-size:17px}a{color:var(--blue);text-underline-offset:4px}img{display:block;max-width:100%}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:4px}h1,h2,h3{line-height:1.14;letter-spacing:-.035em;margin:0 0 22px;font-weight:700}h1{font-size:clamp(2.5rem,5.3vw,4.6rem);max-width:920px}h2{font-size:clamp(1.9rem,3.3vw,3rem);max-width:850px}h3{font-size:1.3rem;letter-spacing:-.02em}p{margin:0 0 20px}ul{padding-left:22px}li{margin-bottom:10px}.wrap{width:min(var(--max),calc(100% - 40px));margin:auto}.section{padding:64px 0}.hero{padding:55px 0 70px}.page-hero{padding-bottom:45px;border-bottom:1px solid var(--line)}.eyebrow{font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--blue);margin-bottom:20px}.lead{font-size:1.2rem;color:var(--muted);max-width:770px}.small,small{font-size:.86rem;color:var(--muted)}.draft-banner{font-size:.76rem;text-align:center;padding:9px 16px;background:var(--pale)}header{background:#fff;border-bottom:1px solid var(--line)}.nav{padding:20px 0;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-weight:700;line-height:1.2;font-size:1rem;color:var(--blue)}.brand img{flex-shrink:0}.brand small{display:block;font-weight:400;font-size:.71rem;letter-spacing:0;margin-top:7px}.menu-toggle{border:1px solid var(--line);padding:10px 14px;min-height:46px;color:var(--blue);background:#fff;border-radius:6px}nav{display:flex;flex-direction:column;width:100%;gap:3px}nav a{padding:11px 9px;min-height:46px;font-size:.9rem;font-weight:700;text-decoration:none}nav a[aria-current]{text-decoration:underline}html.js nav{display:none}html.js nav.open{display:flex}.grid{display:grid;gap:30px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:28px 0 12px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 21px;font-size:.94rem;font-weight:700;border-radius:6px;border:2px solid var(--blue);text-decoration:none;text-align:center;line-height:1.4}.primary{background:var(--blue);color:#fff}.secondary{background:#fff;color:var(--blue)}.button:hover{box-shadow:0 3px 0 rgba(0,74,173,.18)}.photo{margin:0;background:var(--soft);border:1px solid var(--line);border-top:4px solid var(--green);min-height:260px;padding:30px;display:flex;flex-direction:column;justify-content:space-between;gap:40px}.photo strong{font-size:1.5rem;line-height:1.2;max-width:300px}.photo figcaption{font-size:.8rem;color:var(--muted)}.photo-mark{font-size:.62rem;font-weight:700;letter-spacing:.16em;color:var(--muted)}.hero .photo{min-height:380px}.trust-strip{background:var(--pale);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;font-size:.84rem;font-weight:700}.trust-strip span{padding:0 12px;color:var(--blue)}.card{border-top:3px solid var(--green);background:#fff;padding:27px 24px;box-shadow:inset 0 0 0 1px var(--line)}.card p:last-child{margin-bottom:0}.card a{display:inline-block;padding:12px 0 0}.price{display:block;font-size:1.6rem;color:var(--blue);margin:10px 0 24px}.pale{background:var(--pale)}.soft{background:var(--soft)}.grid article>.photo{margin-bottom:24px}.report-preview{padding:32px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--green)}.report-preview>p{border-bottom:1px solid var(--line);padding:12px 0}.draft-note{font-size:.83rem;color:var(--muted);padding:14px 17px;background:var(--soft);border-left:3px solid var(--green)}.scope{font-size:.85rem;margin-top:38px;padding-top:22px;border-top:1px solid var(--line);color:var(--muted)}.faq details{border-bottom:1px solid var(--line);padding:12px 0}.faq summary{padding:14px 6px;cursor:pointer;min-height:50px;font-weight:700;font-size:1.1rem}.faq details p{max-width:850px;padding:0 6px 12px}.form-slot{padding:24px;background:var(--soft);border:1px solid var(--line)}fieldset{border:0;padding:0;margin:0;min-width:0}label{display:block;font-size:.92rem;font-weight:700;margin-bottom:18px}input,textarea{width:100%;padding:12px;border:1px solid #8294a4;background:white;border-radius:4px;margin-top:6px;color:var(--ink);min-height:48px}textarea{resize:vertical}.check{display:flex;align-items:flex-start;gap:12px;font-size:.8rem;font-weight:400}.check input{width:20px;min-width:20px;min-height:20px;margin-top:4px}button:disabled{opacity:.65;cursor:not-allowed}input:disabled,textarea:disabled{background:#fff;color:var(--muted)}.legal-item{margin:32px 0;max-width:850px}footer{background:#142b40;color:white;padding:48px 0 100px;font-size:.9rem}footer a{color:#fff;display:inline-block;padding:5px 0}footer strong{font-size:1rem}footer p{margin-top:12px}.footer-bottom{border-top:1px solid #526272;margin-top:30px;padding-top:20px;font-size:.78rem}.mobile-contact{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:1fr 1fr;background:var(--blue);padding:5px 12px calc(5px + env(safe-area-inset-bottom));z-index:20;box-shadow:0 -3px 16px #172d4020}.mobile-contact a{color:#fff;text-align:center;text-decoration:none;padding:12px;min-height:48px;font-weight:700}.mobile-contact a+a{border-left:1px solid #fff8}.skip{position:absolute;left:12px;top:-100px;background:#fff;padding:12px;z-index:100}.skip:focus{top:12px}.google-form{border:0;width:100%;min-height:950px;background:#fff}.grid>*{min-width:0}p,a,figcaption{overflow-wrap:anywhere}.load-form{margin-top:12px}
@media(min-width:760px){.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.hero-grid{grid-template-columns:1.2fr .8fr;align-items:center;gap:60px}.section{padding:86px 0}.hero{padding:80px 0}.mobile-contact{display:none}footer{padding-bottom:35px}}
@media(min-width:1050px){header .nav{flex-wrap:nowrap}.menu-toggle{display:none}html.js nav,nav{display:flex;flex-direction:row;width:auto;gap:9px}.nav a{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.mobile-contact,.menu-toggle{display:none}.section{padding:30px 0}.card,.photo,.scope{break-inside:avoid}h1,h2,h3{break-after:avoid}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,1fr)}footer{padding:28px 0}.draft-banner{display:block}}

.site-photo { margin: 0; }
.site-photo img { display: block; width: 100%; height: auto; border-radius: 16px; }
.hero-photo { align-self: center; }
.team-photo { max-width: 340px; margin: 1.5rem 0; }
.detail-photo { max-width: 520px; margin: 1.5rem 0; }

/* Keep navigation available while leaving the draft banner in the page flow. */
@media screen {
  body > header {
    position: sticky;
    top: 0;
    z-index: 30;
  }

  body > header .nav { padding-block: 12px; }
  body > header nav.open {
    max-height: calc(100dvh - 105px);
    overflow-y: auto;
  }

  footer { padding: 16px 0; font-size: .82rem; }
  footer .grid { gap: 10px 24px; }
  footer strong { font-size: inherit; }
  footer p { margin: 3px 0 0; }
  footer a { padding-block: 3px; }
  .footer-bottom { margin-top: 10px; padding-top: 8px; }
  .skip { position: fixed; }

  @media (max-width: 759px) {
    footer { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
    footer .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    footer .grid > :last-child { grid-column: 1 / -1; }
  }
}

/* V3.5: quieter typography and a stronger reading order on the homepage. */
.owner-home .hero {
  background: linear-gradient(120deg, #f5f8f7, #fff 76%);
}
.owner-home .hero h1 {
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.55rem, 5.1vw, 4.65rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.07;
}
.owner-home .hero-photo img {
  border-radius: 8px;
  box-shadow: 0 16px 40px #172d4018;
}
.owner-home .report-preview {
  padding: clamp(20px, 4vw, 40px);
}
.owner-home #services .card h3 {
  margin-bottom: 12px;
}

/* V5 applies the V3.5 theme to the six-page V4.6 layout. */
html { scroll-padding-top: 104px; }
.bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 20px; padding-block: 12px; }
.brand img { width: 52px; height: auto; }
.bar nav { display: flex; flex-flow: row wrap; width: auto; gap: 3px; }
.bar nav a { display: inline-flex; align-items: center; font-size: .82rem; min-height: 44px; padding: 7px 6px; }
.hero, .team { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); align-items: center; gap: clamp(25px,5vw,60px); }
.hero > img, .team img, .about-hero img, .bio img { width: 100%; height: auto; border-radius: 8px; }
.hero > img { box-shadow: 0 16px 40px #172d4018; }
.owner-home .hero { margin-inline: calc((100% - 100vw)/2); padding-inline: calc((100vw - 100%)/2); }
.hero .button { margin: 4px 8px 4px 0; }
.intro { padding-top: clamp(36px,6vw,76px); }
.cards, .bio-grid, .split-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.cards { margin: 26px 0 64px; }
.cards .card { display: flex; flex-direction: column; color: var(--ink); text-decoration: none; border-top: 0; }
.cards .eyebrow { margin-bottom: 0; }
.cards h2 { font-size: 1.3rem; letter-spacing: -.02em; margin: 14px 0 12px; }
.cards .text-link { margin-top: auto; color: var(--blue); text-decoration: underline; }
.cards .card:hover { background: var(--soft); }
.text-link, .secondary-link { font-weight: 700; }
.secondary-link { display: inline-block; margin: 12px 0 0 14px; }
.panel { padding: clamp(28px,5vw,64px) 0; border-top: 1px solid var(--line); }
.panel > p:not(.eyebrow) { max-width: 76ch; }
.enquiry, .report { background: var(--soft); padding-inline: clamp(18px,4vw,48px); margin-bottom: 24px; }
.report { background: var(--pale); }
.team { grid-template-columns: minmax(0,1fr) minmax(0,1.25fr); }
.team img { aspect-ratio: 1.45; object-fit: cover; object-position: center 36%; }
.split-list, .bio-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.split-list ul { margin-top: 0; }
.about-hero { padding-block: clamp(36px,6vw,80px) 26px; }
.about-hero img { max-width: 610px; aspect-ratio: 1.9; object-fit: cover; object-position: center 38%; }
.bio img { aspect-ratio: 1.7; object-fit: cover; object-position: center 31%; margin-bottom: 26px; }
.price-intro { border-top: 0; }
.pricing-options { margin: 26px 0; }
.sample { margin-top: 18px; background: white; border-top: 3px solid var(--green); }
.sample summary { padding: 14px 16px; color: var(--blue); font-weight: 700; cursor: pointer; }
.sample summary span { display: inline-block; font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; margin-inline: 5px 10px; }
.sample-body { padding: 4px clamp(14px,3vw,30px) 24px; }
.sample-body h2 { font-size: 1.35rem; }
.notice { padding: 10px 12px; background: var(--soft); }
.sample-body .scope { margin: 12px 0 24px; padding: 0; border: 0; color: var(--ink); font-size: 1rem; }
.sample-body dt { color: var(--blue); font-weight: 700; border-top: 1px solid var(--line); padding-top: 8px; }
.sample-body dd { margin: 0 0 8px; }
table { border-collapse: collapse; width: 100%; font-size: .9rem; text-align: left; margin: 12px 0 20px; }
th, td { padding: 8px 6px; border-bottom: 1px solid var(--line); vertical-align: top; overflow-wrap: anywhere; }
thead { background: var(--pale); }
footer .footer-groups { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 15px 25px; }
footer .footer-coverage { padding-top: 8px; }
@media(max-width: 1000px) {
  html { scroll-padding-top: 160px; }
}
@media(max-width: 759px) {
  html { scroll-padding-top: 218px; }
  .bar nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; border-top: 1px solid var(--line); }
  .bar nav a { min-height: 38px; padding-block: 4px; }
  .hero, .cards, .team, .bio-grid, .split-list, footer .footer-groups { grid-template-columns: 1fr; }
  .cards { margin-bottom: 36px; }
  .split-list { gap: 0; }
  footer { padding-bottom: 22px; }
  .secondary-link { margin-left: 0; display: block; }
  .sample summary span { display: block; margin-left: 0; }
}
@media print {
  header, footer, .skip, main > section:not(:has(.sample)), .panel:has(.sample) > :not(.sample), .print-report { display: none; }
  main, .panel:has(.sample), .sample, .sample-body { width: 100%; margin: 0; padding: 0; border: 0; background: white; }
  tr { break-inside: avoid; }
}

/* Shared opening for the homepage, service pages and About. */
.hero.page-opening {
  display: block;
  margin-inline: 0;
  padding: 0 0 clamp(32px,5vw,62px);
  background: none;
}
.page-banner {
  --banner-photo: url("assets/home-coastal-banner.jpg");
  display: grid;
  align-items: center;
  min-height: clamp(250px,34vw,430px);
  padding: clamp(22px,5vw,60px);
  margin-top: clamp(16px,3vw,36px);
  border-radius: 8px;
  background: linear-gradient(90deg,#f5f8f7ee,#f5f8f78c 56%,transparent 86%),
    var(--banner-photo) center / cover;
}
.page-banner-inner { max-width: 720px; }
.page-banner h1 {
  margin: 0 0 14px;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(2.55rem, 5.1vw, 4.65rem);
  font-weight: 400;
  letter-spacing: -.045em;
  line-height: 1.07;
}
.page-opening-arrivals .page-banner { --banner-photo: url("assets/concierge-pool-terrace.jpg"); }
.page-opening-about .page-banner { --banner-photo: url("assets/about-pool-sunset.jpg"); }
.page-opening-care .page-banner { --banner-photo: url("assets/oversight-villa-garden.jpg"); }
.page-opening-projects .page-banner { --banner-photo: url("assets/villa-detail.jpg"); }
.page-opening .page-opening-copy.about-hero { padding-bottom: 0; }

/* A linked heading is a scroll destination. Interactive controls keep their focus rings. */
#page-heading:focus { outline: none; }
.page-banner .button { margin: 0; }
.page-banner-location { margin: 14px 0 0; font-size: clamp(.85rem,1.65vw,1.05rem); }
.page-opening-copy { padding-top: clamp(30px,5vw,64px); max-width: 820px; }
.hero.page-opening + .intro { padding-top: 0; }
@media (max-width: 550px) {
  .page-banner {
    min-height: 245px;
    background: linear-gradient(90deg,#f5f8f7ef,#f5f8f7b3 65%,#f5f8f745),
      var(--banner-photo) 64% center / cover;
  }
}

.footer-legal { padding-bottom: 12px; }
@media (max-width: 550px) {
  .page-banner h1 { font-size: clamp(2rem, 8.5vw, 2.7rem); }
  .page-banner { min-height: 0; }
}

.oversight-checks { gap: clamp(22px, 4vw, 46px) clamp(24px, 6vw, 72px); margin: 32px 0; }
.oversight-checks article { border-top: 1px solid var(--line); padding-top: 18px; }
.oversight-checks h3 { margin-bottom: 10px; }
.oversight-checks p { margin-bottom: 0; }
.oversight-coverage { padding-bottom: 16px; }

.bio-portrait {
  position: relative;
  width: min(100%, 280px);
  aspect-ratio: 1;
  overflow: hidden;
  margin: 0 0 26px;
  border-radius: 8px;
  background: white;
}
.bio .bio-portrait img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  aspect-ratio: auto;
  border-radius: 0;
  margin: 0;
}
.bio .bio-portrait-declan img {
  position: absolute;
  width: 165%;
  left: -39%;
  top: -6%;
}

.footer-social {
  display: flex;
  align-items: center;
  gap: 6px;
}
.footer-social a {
  display: grid;
  place-items: center;
  width: 44px;
  min-height: 44px;
  padding: 0;
  border-radius: 6px;
}
.footer-social a:hover { background: #ffffff20; }
.footer-social a:focus-visible { outline-color: white; }

.concierge-preparation { align-items: start; }
.concierge-preparation-services h3 { margin-bottom: 10px; }
.concierge-property-photo { width: min(100%, 470px); margin: 0 auto; }
.concierge-property-photo img { width: 100%; height: auto; border-radius: 8px; }
