@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root {
  --green:#335246;
  --deep:#1f3d33;
  --gold:#b8860b;
  --paper:#faf6f0;
  --ink:#213e34;
  --muted:#616b64
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:30px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font:16px/1.6 'DM Sans',Arial,sans-serif
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea,select {
  font:inherit
}
button,a,input,select,textarea {
  touch-action:manipulation
}
button {
  cursor:pointer
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:5px
}
h1,h2,h3,p {
  margin:0
}
h1,h2,h3 {
  font-family:'EB Garamond',Georgia,serif;
  font-weight:500;
  line-height:1.08
}
h2 {
  font-size:clamp(36px,4vw,54px);
  letter-spacing:-1px
}
h3 {
  font-size:28px
}
em {
  font-weight:400
}
.demo-bar {
  padding:8px 5%;
  background:var(--deep);
  color:#e5c67e;
  text-align:center;
  font-size:12px;
  letter-spacing:1.6px
}
.demo-bar span {
  margin-left:18px;
  color:#e6ece8;
  letter-spacing:.2px
}
header {
  padding:18px 5%;
  display:flex;
  align-items:center;
  gap:30px;
  border-bottom:1px solid #d8ded5
}
.brand {
  width:145px;
  display:block;
  flex-shrink:0
}
.brand img {
  width:100%;
  display:block
}
nav {
  display:flex;
  align-items:center;
  gap:26px;
  margin-left:auto
}
nav a {
  font-size:14px
}
nav a:hover,.text-link:hover {
  color:var(--gold)
}
.header-contact {
  font-size:14px;
  border:1px solid #74897d;
  padding:11px 19px;
  border-radius:3px
}
.menu-toggle {
  display:none
}
.hero {
  position:relative;
  margin:28px 3% 0;
  display:grid;
  grid-template-columns:1.13fr 1fr;
  min-height:600px;
  background:var(--deep);
  color:var(--paper);
  border-radius:3px;
  overflow:hidden
}
.hero-copy {
  padding:60px 7% 44px 9%
}
.eyebrow {
  font-size:12px;
  letter-spacing:2px;
  font-weight:600;
  color:#d3b56c;
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:25px
}
.eyebrow span {
  display:inline-block;
  width:25px;
  height:1px;
  background:currentColor
}
.eyebrow.dark {
  color:#846923
}
h1 {
  font-size:clamp(49px,5.6vw,78px);
  line-height:1.04;
  letter-spacing:-1.5px
}
h1 em {
  color:#e8cf94
}
.hero-copy>p {
  max-width:395px;
  color:#d6dfd8;
  margin-top:26px;
  line-height:1.75
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:25px;
  margin-top:30px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:3px;
  padding:14px 23px;
  font-size:14px;
  font-weight:600
}
.gold {
  background:#e0c482;
  color:var(--deep)
}
.green {
  background:var(--green);
  color:white
}
.button:hover {
  filter:brightness(1.09)
}
.quiet {
  font-size:14px;
  border-bottom:1px solid #8b9e90;
  padding-bottom:3px
}
.hero-trust {
  display:flex;
  gap:18px;
  border-top:1px solid #587060;
  margin-top:44px;
  padding-top:21px;
  font-size:12px;
  color:#dae1db
}
.hero-trust span {
  max-width:100px;
  line-height:1.5
}
.hero-photo {
  position:relative;
  min-height:600px
}
.hero-photo>img {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  object-position:center
}
.hero-photo:after {
  content:'';
  position:absolute;
  inset:65% 0 0;
  background:linear-gradient(transparent,#18372ddd)
}
.photo-caption {
  position:absolute;
  bottom:32px;
  left:35px;
  z-index:1
}
.photo-caption span {
  display:block;
  font-size:12px;
  letter-spacing:2px;
  margin-bottom:7px
}
.photo-caption strong {
  font:500 30px 'EB Garamond',Georgia,serif
}
.vertical-label {
  position:absolute;
  right:13px;
  top:25px;
  writing-mode:vertical-rl;
  font-size:11px;
  letter-spacing:3px;
  text-shadow:0 1px 5px black
}
.intro,.experiences,.suggestions,.planning {
  padding:84px 7%
}
.intro {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:9%;
  border-bottom:1px solid #dedfd4
}
.intro .eyebrow {
  margin-bottom:18px
}
.tabs {
  display:flex;
  gap:32px;
  border-bottom:1px solid #d4d7cb;
  margin-bottom:25px
}
.tabs button {
  background:none;
  border:0;
  padding:0 0 13px;
  color:#617367;
  font-size:16px
}
.tabs button[aria-selected=true] {
  color:var(--ink);
  border-bottom:2px solid var(--gold);
  font-weight:600
}
.service-area h3 {
  font-size:30px;
  margin-bottom:15px
}
.service-area p {
  color:var(--muted);
  margin-bottom:17px
}
.text-link {
  display:inline-block;
  background:none;
  border:0;
  border-bottom:1px solid #b4bdae;
  padding:0 0 5px;
  color:var(--ink);
  font-weight:600;
  font-size:14px
}
.section-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:flex-end;
  margin-bottom:38px
}
.section-heading .eyebrow {
  margin-bottom:16px
}
.section-heading>p {
  color:var(--muted);
  font-size:14px;
  line-height:1.8
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:26px
}
.tour-card {
  border-bottom:1px solid #b9c2b2
}
.card-photo {
  position:relative;
  height:265px;
  overflow:hidden
}
.card-photo img {
  height:100%;
  width:100%;
  object-fit:cover;
  transition:transform .4s
}
.tour-card:hover .card-photo img {
  transform:scale(1.035)
}
.card-photo span {
  position:absolute;
  bottom:16px;
  left:16px;
  background:var(--paper);
  padding:5px 10px;
  font-size:11px;
  letter-spacing:1px
}
.card-copy {
  padding:23px 0 25px
}
.card-number {
  font-size:11px;
  letter-spacing:1.6px;
  color:#766339;
  margin-bottom:12px
}
.card-copy h3 {
  font-size:30px
}
.card-copy p {
  font-size:14px;
  margin:14px 0 21px;
  color:var(--muted);
  min-height:67px
}
.values {
  padding:65px 7% 70px;
  background:var(--green);
  color:var(--paper);
  text-align:center
}
.values .eyebrow {
  justify-content:center;
  margin-bottom:17px
}
.values h2 em {
  color:#e0c482
}
.value-grid {
  margin-top:47px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:60px;
  text-align:left
}
.value-grid>div {
  border-top:1px solid #789082;
  padding-top:16px
}
.value-grid span {
  color:#d7bb77;
  font-size:12px
}
.value-grid h3 {
  font-size:29px;
  margin-top:13px
}
.value-grid p {
  color:#d6dfd8;
  font-size:14px;
  margin-top:13px
}
.suggestions {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:9%
}
.suggestions h2 {
  margin-bottom:30px
}
.tips details {
  padding:20px 0;
  border-bottom:1px solid #cfd4c7
}
.tips details:first-child {
  border-top:1px solid #cfd4c7
}
.tips summary {
  cursor:pointer;
  font-weight:500;
  font-size:16px
}
.tips p {
  padding:15px 0 0;
  color:var(--muted);
  font-size:14px
}
.planning {
  background:#eceee5;
  display:grid;
  grid-template-columns:1fr 1.1fr;
  gap:10%
}
.plan-copy>p {
  max-width:365px;
  color:var(--muted);
  margin-top:24px
}
.contact-block {
  margin-top:36px;
  display:grid;
  gap:9px;
  font-size:14px
}
.contact-block span {
  font-size:12px;
  color:var(--muted)
}
.contact-block a {
  text-decoration:underline;
  text-underline-offset:4px
}
form {
  background:var(--paper);
  padding:34px;
  border:1px solid #d4d9cc;
  border-radius:3px
}
form h3 {
  font-size:33px
}
.form-note {
  font-size:12px;
  color:var(--muted);
  margin:9px 0 24px
}
.form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px
}
label {
  font-size:13px;
  font-weight:500
}
input,select,textarea {
  display:block;
  width:100%;
  border:1px solid #cbd3c5;
  background:#fffdf9;
  color:var(--ink);
  padding:11px;
  margin-top:6px;
  border-radius:3px;
  font-size:14px;
  min-width:0
}
textarea {
  resize:vertical
}
.full {
  grid-column:1/-1
}
form .button {
  width:100%;
  margin-top:22px
}
#enquiry-result {
  font-size:14px;
  margin-top:18px;
  border-left:3px solid var(--gold);
  padding:12px;
  background:#eceee5;
  white-space:pre-line
}
footer {
  padding:45px 7% 20px;
  background:var(--deep);
  color:#e0e7df
}
.footer-top {
  display:flex;
  align-items:center;
  gap:35px;
  padding-bottom:30px;
  border-bottom:1px solid #527060
}
.footer-brand {
  display:block;
  padding:9px 14px;
  background:var(--paper);
  width:160px;
  border-radius:3px
}
.footer-brand img {
  width:100%;
  display:block
}
.footer-top p {
  font:22px/1.4 'EB Garamond',Georgia,serif
}
.footer-top>a:last-child {
  margin-left:auto;
  font-size:13px
}
.footer-columns {
  display:grid;
  grid-template-columns:1fr 1fr 1.4fr 1fr;
  gap:25px;
  padding:35px 0
}
.footer-columns h4 {
  color:#d8bf7e;
  font-size:11px;
  letter-spacing:1.6px;
  margin:0 0 15px
}
.footer-columns a {
  display:block;
  font-size:13px;
  margin:7px 0
}
.language-note {
  font-size:12px;
  color:#bacabf
}
.languages {
  display:flex;
  flex-wrap:wrap;
  gap:0 16px
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-top:20px;
  border-top:1px solid #527060;
  font-size:11px;
  color:#bacabf
}
dialog {
  max-width:550px;
  width:90%;
  padding:45px;
  border:1px solid #b8c5b4;
  border-radius:5px;
  background:var(--paper);
  color:var(--ink)
}
dialog::backdrop {
  background:#0b231ccb;
  backdrop-filter:blur(4px)
}
dialog h2 {
  font-size:42px;
  margin-bottom:20px
}
dialog>p {
  color:var(--muted)
}
dialog h3 {
  font-size:25px;
  margin-top:25px
}
dialog ul {
  padding-left:20px;
  font-size:14px
}
.availability {
  font-size:12px;
  margin:22px 0
}
.close-dialog {
  position:absolute;
  right:15px;
  top:9px;
  border:0;
  background:none;
  font-size:29px;
  color:var(--ink)
}
@media(min-width:1500px) {
  main,header,footer {
    max-width:1600px;
    margin:auto
  }
  .hero {
    min-height:650px
  }
  .hero-photo {
    min-height:650px
  }
}
@media(max-width:1000px) {
  header {
    gap:18px
  }
  nav {
    gap:15px
  }
  nav a {
    font-size:12px
  }
  .brand {
    width:120px
  }
  .header-contact {
    font-size:12px;
    padding:10px
  }
  .hero-copy {
    padding:45px 8%
  }
  .hero {
    min-height:530px
  }
  .hero-photo {
    min-height:530px
  }
  h1 {
    font-size:55px
  }
  .hero-actions {
    gap:16px;
    align-items:flex-start;
    flex-direction:column
  }
  .hero-trust {
    gap:12px;
    margin-top:30px
  }
  .intro,.experiences,.suggestions,.planning {
    padding:60px 6%
  }
  .card-photo {
    height:225px
  }
  .cards {
    gap:18px
  }
  .card-copy h3 {
    font-size:26px
  }
  .footer-columns {
    grid-template-columns:1fr 1fr
  }
}
@media(max-width:720px) {
  .demo-bar span {
    display:none
  }
  header {
    padding:14px 5%;
    flex-wrap:wrap;
    justify-content:space-between
  }
  .brand {
    width:108px
  }
  .menu-toggle {
    display:block;
    border:0;
    background:none;
    font-size:14px;
    margin-left:auto
  }
  .header-contact {
    font-size:13px
  }
  nav {
    display:none;
    order:4;
    width:100%;
    margin:5px 0;
    flex-wrap:wrap;
    gap:15px
  }
  nav.open {
    display:flex
  }
  nav a {
    font-size:14px
  }
  .hero {
    margin:16px 4% 0;
    grid-template-columns:1fr
  }
  .hero-copy {
    padding:36px 8%
  }
  .hero .eyebrow {
    font-size:10px;
    letter-spacing:1.6px
  }
  h1 {
    font-size:54px
  }
  .hero-copy>p {
    font-size:15px
  }
  .hero-actions {
    flex-direction:row;
    align-items:center;
    gap:20px
  }
  .hero-actions .button {
    font-size:12px;
    padding:13px
  }
  .quiet {
    font-size:12px
  }
  .hero-trust {
    justify-content:space-between
  }
  .hero-photo {
    min-height:360px
  }
  .hero-photo>img {
    object-position:center 49%
  }
  .vertical-label {
    display:none
  }
  .photo-caption {
    bottom:23px;
    left:25px
  }
  .intro,.suggestions,.planning {
    grid-template-columns:1fr;
    gap:35px
  }
  .intro,.experiences,.suggestions,.planning {
    padding:50px 7%
  }
  .section-heading {
    display:block
  }
  .section-heading>p {
    margin-top:20px
  }
  .cards {
    grid-template-columns:1fr;
    gap:35px
  }
  .card-photo {
    height:300px
  }
  .card-copy p {
    min-height:0;
    font-size:16px
  }
  .card-copy h3 {
    font-size:32px
  }
  .value-grid {
    grid-template-columns:1fr;
    gap:27px
  }
  .values {
    padding:50px 7%
  }
  .value-grid p {
    font-size:16px
  }
  .tips p {
    font-size:16px
  }
  .footer-top {
    flex-wrap:wrap;
    gap:20px
  }
  .footer-top p {
    font-size:19px
  }
  .footer-top>a:last-child {
    margin-left:0
  }
  .footer-columns {
    gap:25px 14px
  }
  .footer-bottom {
    flex-direction:column;
    gap:8px
  }
  form {
    padding:24px
  }
  .form-grid {
    gap:16px
  }
  .plan-copy>p {
    max-width:none
  }
  dialog {
    padding:35px 25px
  }
  .hero-trust span {
    font-size:12px
  }
  .eyebrow {
    font-size:12px
  }
  input,select,textarea {
    font-size:16px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  * {
    transition:none!important
  }
}
.hero-photo>video {
  width:100%;
  height:100%;
  object-fit:cover;
  position:absolute;
  object-position:center
}
.video-toggle {
  position:absolute;
  right:20px;
  bottom:28px;
  z-index:2;
  background:#1f3d33cc;
  border:1px solid #d1ddcc;
  color:white;
  padding:7px 11px;
  border-radius:3px;
  font-size:12px
}
.photo-caption {
  max-width:65%
}
@media(max-width:720px) {
  .hero-photo>video {
    object-position:center
  }
  .photo-caption strong {
    font-size:25px
  }
  .video-toggle {
    right:16px;
    bottom:23px
  }
}
