@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--ink:#172434;--navy:#101c2c;--muted:#697483;--gold:#c5a46d;--paper:#f7f5f0;--white:#fff;--line:#e5e1d8;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:14px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.site-header{height:82px;padding:0 clamp(20px,5.5vw,88px);display:flex;align-items:center;justify-content:space-between;background:#fff;gap:26px;position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(23,36,52,.07)}.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:13px;letter-spacing:2.4px;line-height:1.2;white-space:nowrap}.brand small{display:block;font-size:8px;letter-spacing:2.1px;color:#8b806f;margin-top:6px;font-weight:500}.brand-mark{width:39px;height:39px;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);font-family:var(--serif);font-size:25px;font-weight:500}.main-nav{display:flex;align-items:center;gap:clamp(16px,2.5vw,38px);font-size:12px;color:#3e4956}.main-nav a:hover,.footer-links a:hover{color:#a37f43}.header-actions{display:flex;gap:8px;align-items:center}.button{border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:15px;min-height:44px;padding:0 21px;cursor:pointer;font-size:11px;letter-spacing:.2px;font-weight:600;transition:transform .2s,background .2s}.button:hover{transform:translateY(-1px)}.button-dark{background:var(--navy);color:white}.button-dark:hover{background:#263b53}.button-quiet{background:transparent;color:var(--ink)}.button-gold{background:var(--gold);color:#171d24}.button-gold:hover{background:#d6b77e}.menu-toggle{display:none;background:none;border:0;font-size:22px}.hero{min-height:590px;height:min(68vw,720px);max-height:760px;position:relative;background:#283a47 url('https://images.unsplash.com/photo-1518837695005-2083093ee35b?auto=format&fit=crop&w=2200&q=90') center 52%/cover no-repeat;color:#fff;display:flex;align-items:center;padding:65px clamp(24px,10vw,155px)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,24,35,.78) 0%,rgba(10,24,35,.49) 42%,rgba(10,24,35,.08) 100%),linear-gradient(0deg,rgba(9,18,25,.25),transparent 55%)}.hero-content{position:relative;max-width:640px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:2.5px;color:var(--gold);margin:0 0 21px}.hero h1{font-family:var(--serif);font-size:clamp(48px,6vw,83px);font-weight:500;letter-spacing:-1.8px;line-height:1.08;margin:0 0 23px}.hero h1 em,.intro-section h2 em{font-weight:500;color:#d5b983}.hero-copy{max-width:410px;color:#f0f0ed;font-size:14px;line-height:1.9;margin:0 0 31px}.hero-note{position:absolute;bottom:34px;right:clamp(24px,5vw,80px);font-size:10px;letter-spacing:.5px;color:#f1ede6;display:flex;align-items:center;gap:12px}.note-line{width:34px;height:1px;background:var(--gold)}.search-wrap{position:relative;z-index:5;background:white;max-width:1190px;width:calc(100% - 64px);margin:-38px auto 0;box-shadow:0 18px 55px rgba(18,29,39,.11);padding:0 30px 17px}.search-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);overflow-x:auto}.search-tab{padding:19px 20px 16px;background:transparent;border:0;border-bottom:2px solid transparent;color:#727c86;white-space:nowrap;font-size:12px;cursor:pointer}.search-tab span{margin-left:7px}.search-tab.active{color:var(--ink);border-bottom-color:var(--gold)}.search-form{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr auto;align-items:end;gap:0;padding:21px 0 12px}.search-field{display:flex;flex-direction:column;gap:7px;padding:0 16px;border-right:1px solid var(--line);min-width:0}.search-field:first-child{padding-left:0}.search-field span{font-size:8px;letter-spacing:1.7px;font-weight:700;color:#818a93}.search-field input,.search-field select{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:12px;padding:3px 0}.search-field input::placeholder{color:#8d959d}.search-submit{margin-left:17px;white-space:nowrap}.search-hint{font-size:10px;color:#9299a0;margin:0 0 0;padding-top:7px}.section{max-width:1190px;margin:0 auto;padding:115px 32px 42px}.intro-section{display:flex;justify-content:space-between;align-items:end;gap:50px}.intro-section h2,.closing-cta h2{font-family:var(--serif);font-size:clamp(36px,4.5vw,57px);line-height:1.14;font-weight:500;letter-spacing:-.8px;margin:0}.intro-section h2 em{color:#b79a66}.section-intro{max-width:370px;color:var(--muted);font-size:13px;line-height:2;margin:0 0 7px}.feature-grid{max-width:1190px;margin:26px auto 0;padding:0 32px;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:17px}.feature-card{position:relative;min-height:390px;overflow:hidden;background:#33424c}.feature-card.feature-large{min-height:460px;grid-row:span 2}.feature-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .6s}.feature-card:hover img{transform:scale(1.04)}.feature-card:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(10,19,27,.77),transparent 65%)}.feature-overlay{position:absolute;z-index:1;left:27px;right:20px;bottom:29px;color:white}.card-kicker{font-size:8px;letter-spacing:2px;color:#e0c38e;font-weight:700}.feature-overlay h3{font-family:var(--serif);font-weight:500;font-size:clamp(25px,2.5vw,37px);line-height:1.16;margin:12px 0 17px}.feature-overlay a{font-size:10px;border-bottom:1px solid rgba(255,255,255,.55);padding-bottom:5px}.service-strip{max-width:1190px;margin:100px auto 0;padding:0 32px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.service-strip>div{padding:34px 24px 36px;border-right:1px solid var(--line)}.service-strip>div:first-child{padding-left:0}.service-strip>div:last-child{border:0}.service-icon{color:var(--gold);font-size:24px}.service-strip h3{font-family:var(--serif);font-size:22px;font-weight:500;margin:10px 0 4px}.service-strip p{font-size:11px;color:var(--muted);margin:0 0 14px}.service-strip a{font-size:10px;font-weight:700}.closing-cta{margin-top:90px;padding:75px 20px 82px;text-align:center;background:#142335;color:white}.closing-cta .eyebrow{margin-bottom:14px}.closing-cta h2{font-size:clamp(39px,5vw,58px)}.closing-cta>p:not(.eyebrow){color:#c4cbd0;font-size:12px;margin:14px 0 25px}.site-footer{background:#0c1725;color:#e5e6e5;padding:39px clamp(24px,5.5vw,88px) 28px;display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.brand-footer{color:white}.site-footer>p{justify-self:end;color:#aab1b8;font-size:11px}.footer-links{display:flex;gap:23px;font-size:10px;color:#c2c6c9}.site-footer>small{justify-self:end;color:#929aa2;font-size:9px}.auth-dialog{width:min(440px,calc(100% - 28px));border:0;padding:39px;background:#fff;color:var(--ink);box-shadow:0 30px 100px #0004}.auth-dialog::backdrop{background:rgba(10,20,30,.65);backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:15px;top:9px;background:none;border:0;font-size:28px;color:#697483;cursor:pointer}.auth-dialog h2{font-family:var(--serif);font-weight:500;font-size:33px;line-height:1.2;margin:0 0 24px}.auth-dialog form{display:grid;gap:15px}.auth-dialog form label{display:grid;gap:7px;font-size:11px;font-weight:600}.auth-dialog input{padding:12px;border:1px solid var(--line);outline-color:var(--gold);width:100%;font-weight:400}.full-width{width:100%}.form-message{font-size:11px;color:#9c573c;min-height:17px}.text-button{border:0;background:transparent;color:#78623d;text-decoration:underline;font-size:11px;cursor:pointer;padding:0}.dialog-disclaimer{display:block;color:#8b9299;font-size:9px;margin-top:22px;line-height:1.7}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#142335;color:white;padding:12px 18px;font-size:12px;z-index:50;transition:.2s;max-width:calc(100% - 30px)}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1000px){.site-header{gap:15px}.main-nav{gap:14px}.header-actions .button{padding:0 12px}.search-wrap{width:calc(100% - 34px);padding:0 18px 15px}.search-form{grid-template-columns:1.3fr 1fr 1fr;row-gap:20px}.guests-field{border-right:0}.search-submit{margin-left:0}.feature-grid{grid-template-columns:1fr 1fr}.feature-card.feature-large{grid-row:span 1;min-height:390px}.feature-card{min-height:330px}.feature-card:last-child{grid-column:span 2;min-height:300px}.service-strip>div{padding-left:15px;padding-right:15px}}
@media(max-width:720px){.site-header{height:70px;padding:0 18px}.brand{font-size:11px;letter-spacing:1.7px;gap:8px}.brand-mark{width:34px;height:34px;font-size:22px}.brand small{font-size:7px;letter-spacing:1.5px}.menu-toggle{display:block;margin-left:auto}.main-nav{display:none;position:absolute;top:70px;left:0;right:0;padding:18px;background:white;box-shadow:0 12px 20px #0001;flex-direction:column;align-items:flex-start}.main-nav.open{display:flex}.header-actions{gap:4px}.header-actions .button{min-height:36px;padding:0 9px;font-size:10px}.header-actions #openLogin{display:none}.hero{height:590px;min-height:0;padding:55px 25px 75px;background-position:58% center}.hero-shade{background:linear-gradient(90deg,rgba(10,24,35,.75),rgba(10,24,35,.19)),linear-gradient(0deg,rgba(9,18,25,.25),transparent 60%)}.hero h1{font-size:clamp(48px,13vw,67px)}.hero-copy{font-size:13px;max-width:300px}.hero-note{left:25px;right:auto;bottom:22px;font-size:9px}.search-wrap{margin:-22px 12px 0;width:calc(100% - 24px);padding:0 15px 14px}.search-tabs{margin:0 -2px}.search-tab{padding:16px 12px 13px;font-size:11px}.search-tab span{margin-left:4px}.search-form{grid-template-columns:1fr 1fr;gap:15px 0;padding-top:19px}.search-field{padding:0 10px}.search-field:first-child{padding-left:0}.destination-field{grid-column:span 2;border-right:0;padding-bottom:12px;border-bottom:1px solid var(--line)}.search-field:nth-child(3){border-right:0}.guests-field{grid-column:span 2;padding-left:0}.search-submit{grid-column:span 2;width:100%;margin:0}.search-hint{line-height:1.5}.section{padding:76px 22px 28px}.intro-section{display:block}.intro-section h2{font-size:44px}.section-intro{margin-top:22px}.feature-grid{padding:0 16px;grid-template-columns:1fr;gap:13px;margin-top:20px}.feature-card,.feature-card.feature-large,.feature-card:last-child{grid-column:auto;min-height:365px}.feature-card.feature-large{min-height:420px}.feature-overlay{left:22px;bottom:23px}.service-strip{margin:65px 20px 0;padding:0;grid-template-columns:1fr 1fr}.service-strip>div{padding:25px 14px!important;border-bottom:1px solid var(--line);min-height:170px}.service-strip>div:nth-child(2){border-right:0}.service-strip>div:nth-child(3){padding-left:0!important}.service-strip>div:nth-child(4){border-bottom:0}.service-strip h3{font-size:20px}.closing-cta{margin-top:60px;padding:63px 22px}.site-footer{grid-template-columns:1fr;padding:30px 23px 25px;gap:17px}.site-footer>p,.site-footer>small{justify-self:start;margin:0}.footer-links{flex-wrap:wrap;gap:16px}.auth-dialog{padding:32px 24px}.auth-dialog h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

/* Astrashine search results */
.search-results {
  max-width: 1190px;
  width: calc(100% - 64px);
  margin: 18px auto 0;
  padding: 28px 30px;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 12px 35px rgba(18, 29, 39, .07);
}

.search-results[hidden] {
  display: none;
}

.search-results h2 {
  margin: 0 0 10px;
  font-family: var(--serif);
  font-size: clamp(25px, 3vw, 36px);
  font-weight: 500;
  line-height: 1.2;
}

.search-results > p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.8;
}

.search-results .search-results-note {
  padding: 12px 15px;
  background: var(--paper);
  border-left: 3px solid var(--gold);
}

.search-provider-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 22px;
}

.search-provider-card {
  padding: 21px;
  border: 1px solid var(--line);
  background: #fff;
}

.search-provider-card h3 {
  margin: 0 0 8px;
  font-family: var(--serif);
  font-size: 23px;
  font-weight: 500;
}

.search-provider-card p {
  min-height: 40px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.7;
}

.search-provider-card .button {
  margin-top: 10px;
}

@media (max-width: 720px) {
  .search-results {
    width: calc(100% - 24px);
    margin-top: 14px;
    padding: 22px 16px;
  }

  .search-provider-list {
    grid-template-columns: 1fr;
  }
}

/* Astrashine: improved desktop readability */
@media (min-width: 721px) {
  body {
    font-size: 16px;
  }

  nav a,
  .nav-links a {
    font-size: 15px;
  }

  p {
    font-size: 15px;
    line-height: 1.7;
  }

  label,
  #travelSearch label {
    font-size: 14px;
  }

  input,
  select,
  textarea,
  button,
  .button {
    font-size: 15px;
  }

  #searchHint {
    font-size: 14px;
    line-height: 1.7;
  }

  .search-results > p {
    font-size: 14px;
  }

  .search-provider-card p {
    font-size: 13px;
  }
}

/* Astrashine visual service cards */
.service-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}

.service-strip > .service-card {
  min-width: 0;
  overflow: hidden;
}

.service-card-image {
  display: block;
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: center;
  margin: 0 0 18px;
  background: var(--paper);
}

.service-card h3 {
  font-size: 23px;
  line-height: 1.3;
}

.service-card p {
  font-size: 15px;
  line-height: 1.7;
}

.service-card a {
  font-size: 14px;
}

@media (min-width: 721px) and (max-width: 1000px) {
  .service-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-card-image {
    height: 200px;
  }
}

@media (max-width: 720px) {
  .service-strip {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .service-card-image {
    height: 220px;
  }
}

/* Match service image sizing and yacht-style hover motion */
.service-card-image {
  height: 180px;
  width: 100%;
  object-fit: cover;
  display: block;
  transition: transform .6s ease;
  transform-origin: center;
}

.service-card {
  overflow: hidden;
}

.service-card:hover .service-card-image {
  transform: scale(1.04);
}

/* Keep hover effects comfortable on touch devices */
@media (hover: none) {
  .service-card:hover .service-card-image {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-card-image {
    transition: none;
  }
}

/* Astrashine multilingual selector */
.language-picker { display: inline-flex; align-items: center; }
.language-picker select {
  max-width: 124px;
  min-height: 38px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 11px;
  cursor: pointer;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
html[dir="rtl"] body { text-align: right; }
html[dir="rtl"] .hero { background-position: right center; }
html[dir="rtl"] .search-field { border-right: 0; border-left: 1px solid var(--line); }
html[dir="rtl"] .search-field:first-child { padding-left: 16px; padding-right: 0; }
html[dir="rtl"] .search-submit { margin-left: 0; margin-right: 17px; }
html[dir="rtl"] .hero-note { right: auto; left: clamp(24px, 5vw, 80px); }
html[dir="rtl"] .feature-overlay { left: 20px; right: 27px; }
html[dir="rtl"] .service-strip > div { border-right: 0; border-left: 1px solid var(--line); }
html[dir="rtl"] .service-strip > div:last-child { border-left: 0; }
@media (max-width: 720px) {
  .language-picker select { max-width: 92px; min-height: 34px; padding: 0 4px; font-size: 10px; }
  .header-actions { flex-wrap: nowrap; }
  html[dir="rtl"] .search-field { border-left: 0; }
  html[dir="rtl"] .search-submit { margin-right: 0; }
}

/* Astrashine customer account dashboard */
.account-page {
  min-height: 100vh;
  background: var(--paper);
}

.account-shell {
  width: min(1120px, calc(100% - 48px));
  margin: 0 auto;
  padding: 65px 0 90px;
}

.account-heading {
  padding: 35px 0 38px;
  border-bottom: 1px solid var(--line);
}

.account-heading h1 {
  margin: 0;
  color: var(--navy);
  font-family: var(--serif);
  font-size: clamp(42px, 6vw, 68px);
  font-weight: 500;
  line-height: 1.1;
}

.account-heading h1 em {
  color: var(--gold);
  font-weight: 500;
}

.account-heading > p:last-child {
  color: var(--muted);
  margin: 15px 0 0;
}

.account-message {
  min-height: 20px;
  margin: 18px 0;
  color: #9c573c;
  font-size: 13px;
}

.account-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 18px;
  margin: 30px 0 55px;
}

.account-card {
  min-width: 0;
  padding: 27px;
  background: var(--white);
  border: 1px solid var(--line);
  box-shadow: 0 8px 24px rgba(18, 29, 39, .04);
}

.account-card h2,
.account-section h2 {
  margin: 0 0 22px;
  color: var(--navy);
  font-family: var(--serif);
  font-size: 25px;
  font-weight: 500;
}

.account-kicker {
  margin: 0 0 10px;
  color: #9b8052;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 2px;
}

.account-profile dl {
  margin: 0;
}

.account-profile dl > div {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
}

.account-profile dt {
  color: var(--muted);
  font-size: 12px;
}

.account-profile dd {
  margin: 0;
  text-align: right;
  overflow-wrap: anywhere;
  font-size: 12px;
  font-weight: 600;
}

.account-stat {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.account-stat h2 {
  margin-bottom: 12px;
}

.account-number {
  margin: 0;
  color: var(--gold);
  font-family: var(--serif);
  font-size: 55px;
  line-height: 1.1;
}

.account-muted {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.7;
}

.account-section {
  margin-top: 48px;
}

.account-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  margin-bottom: 17px;
}

.account-section-heading h2 {
  margin-bottom: 0;
  font-size: 32px;
}

.account-list {
  background: var(--white);
  border: 1px solid var(--line);
}

.account-list-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 18px 22px;
  border-bottom: 1px solid var(--line);
}

.account-list-item:last-child {
  border-bottom: 0;
}

.account-list-item strong {
  color: var(--navy);
  font-size: 13px;
  font-weight: 600;
}

.account-list-item span {
  color: var(--muted);
  font-size: 11px;
  text-align: right;
}

.account-empty {
  padding: 20px 22px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
}

.account-notice {
  padding: 25px 27px;
  background: #fff;
  border: 1px solid var(--line);
  border-left: 3px solid var(--gold);
}

.account-notice strong {
  color: var(--navy);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 500;
}

.account-notice p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.8;
}

.account-footer {
  margin-top: 20px;
}

@media (max-width: 900px) {
  .account-grid {
    grid-template-columns: 1fr 1fr;
  }

  .account-profile {
    grid-column: span 2;
  }
}

@media (max-width: 600px) {
  .account-shell {
    width: calc(100% - 32px);
    padding: 35px 0 60px;
  }

  .account-heading {
    padding: 20px 0 28px;
  }

  .account-grid {
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 22px 0 40px;
  }

  .account-profile {
    grid-column: auto;
  }

  .account-card {
    padding: 22px;
  }

  .account-section {
    margin-top: 35px;
  }

  .account-section-heading h2 {
    font-size: 27px;
  }

  .account-list-item {
    align-items: flex-start;
    flex-direction: column;
    gap: 5px;
    padding: 16px;
  }

  .account-list-item span {
    text-align: left;
  }

  .account-notice {
    padding: 20px;
  }

  .account-page .site-header {
    padding: 0 12px;
  }

  .account-page .header-actions {
    gap: 3px;
  }

  .account-page .header-actions .button {
    padding: 0 9px;
    font-size: 10px;
  }
}