:root{
  --navy:#26394a;
  --green:#001243;
  --green-dark:#082d22;
  --gold:#b5965d;
  --gold-soft:#c8ab75;
  --cream:#f7f3eb;
  --paper:#fbfaf7;
  --ink:#1f2928;
  --muted:#6f756f;
  --line:#ded8cd;
  --white:#fff;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Montserrat", Arial, sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button,input,textarea,select{font:inherit}
.container{width:min(1180px,calc(100% - 64px));margin-inline:auto}
.section{padding:82px 0}

/* Header */
.site-header{height:82px;background:#fff;display:flex;align-items:center;gap:38px;padding:0 38px;position:relative;z-index:30;border-bottom:1px solid rgba(0,0,0,.05)}
.brand{width:150px;flex:0 0 150px}
.brand img{width:100%;height:62px;object-fit:cover;object-position:center}
.main-nav{display:flex;align-items:center;justify-content:center;gap:31px;flex:1}
.main-nav a{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.main-nav a:hover{color:var(--gold)}
.header-actions{display:flex;align-items:center;gap:18px}
.lang-switch{display:flex;gap:7px;font-size:11px;letter-spacing:.08em}
.lang-switch a{opacity:.45}.lang-switch a.active{opacity:1;font-weight:700;color:var(--green)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 27px;text-transform:uppercase;letter-spacing:.07em;font-size:10px;font-weight:600;border:1px solid transparent;transition:.25s ease;cursor:pointer}
.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{background:#a4844e;transform:translateY(-1px)}
.btn-outline{border-color:rgba(255,255,255,.55);color:#fff}.btn-outline:hover{background:#fff;color:var(--green)}
.btn-small{min-height:38px;padding:0 21px}
.text-link{text-transform:uppercase;letter-spacing:.07em;font-size:10px;color:var(--gold);font-weight:600}
.text-link.light{color:white}

/* Hero */

.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.79) 0%,rgba(0,0,0,.54) 43%,rgba(0,0,0,.18) 73%,rgba(0,0,0,.08) 100%)}
.hero-inner{position:relative;z-index:2;min-height:650px;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:end;gap:54px}
.hero-copy{padding:88px 0 52px;max-width:815px}
.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-family:var(--serif);font-size:18px}
.eyebrow.dark{color:var(--gold);font-family:var(--sans);font-size:11px;font-weight:600}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(56px,6.3vw,88px);line-height:.91;margin:10px 0 17px;max-width:860px}
.gold-rule{width:50px;height:1px;background:var(--gold);margin:18px 0}
.hero-duration{text-transform:uppercase;font-family:var(--serif);font-size:23px;letter-spacing:.04em;margin:0 0 16px}
.hero-lead{font-family:var(--serif);font-size:23px;line-height:1.22;margin:0 0 34px;max-width:690px}
.hero-features{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:730px}
.feature{display:flex;flex-direction:column;align-items:center;text-align:center;text-transform:uppercase;letter-spacing:.06em;font-size:10px;line-height:1.4}
.icon{font-family:Georgia,serif;font-size:29px;line-height:1;margin-bottom:9px}
.price-card{background:var(--green);padding:34px 32px 30px;min-height:255px;display:flex;flex-direction:column;justify-content:center;text-align:center;align-self:end}
.price-card span,.price-card small{text-transform:uppercase;letter-spacing:.08em;font-size:10px}
.price-card strong{font-family:var(--serif);font-weight:500;font-size:47px;line-height:1;margin:11px 0 8px}
.price-card .btn{margin-top:23px}.price-card .text-link{margin-top:14px}

/* Headings */
.section-heading{max-width:860px;margin:0 auto 44px}.section-heading.centered{text-align:center}
.section-heading h2,.split-content h2,.included-panel h2{font-family:var(--serif);font-weight:500;text-transform:uppercase;letter-spacing:.035em;font-size:34px;line-height:1.1;margin:0}
.section-heading p{margin:16px auto 0;max-width:760px}
.heading-rule{display:block;width:42px;height:1px;background:var(--gold);margin:18px auto}.heading-rule.left{margin-left:0}

/* Introduction */
.intro-story{display:grid;grid-template-columns:.85fr 1.15fr;gap:62px;align-items:center}

.intro-image::after{content:"";position:absolute;inset:26px;border:1px solid rgba(255,255,255,.45)}
.intro-copy .kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:600}
.intro-copy h2{font-family:var(--serif);font-size:44px;line-height:1.02;font-weight:500;margin:9px 0 22px}
.intro-copy p{font-size:14px;margin:0 0 15px}
.intro-quote{font-family:var(--serif);font-size:24px;line-height:1.2;color:var(--green);border-left:2px solid var(--gold);padding-left:20px;margin-top:26px}

/* Highlights */
.highlights{background:var(--cream)}
.highlight-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.highlight-card{background:#fff;padding:25px 20px 22px;min-height:188px;border:1px solid #ebe4d8;text-align:center}
.highlight-card .highlight-icon{display:block;font-family:Georgia,serif;font-size:32px;color:var(--green);line-height:1;margin-bottom:14px}
.highlight-card strong{display:block;font-family:var(--serif);font-size:20px;line-height:1.08;font-weight:600;margin-bottom:8px}
.highlight-card p{font-size:11px;line-height:1.55;margin:0;color:#4d5652}

/* Reassurance */
.reassurance{background: var(--cream);border-top:1px solid #eee7dc;border-bottom:1px solid #eee7dc;padding:26px 0}
.reassurance-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.reassurance-grid>div{text-align:center;display:flex;flex-direction:column;align-items:center}
.mini-icon{font-size:29px;color:var(--green);line-height:1}
.reassurance strong{text-transform:uppercase;font-size:10px;letter-spacing:.07em;margin-top:7px}.reassurance small{font-size:10px;margin-top:3px}

/* Programme */
.programme{background:#fff}
.programme-intro{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:28px}
.programme-photo{height:315px;background-size:cover;background-position:center}
.day-list{display:grid;gap:20px}
.day{border:1px solid #e6dfd4;background:var(--paper);display:grid;grid-template-columns:180px 1fr;overflow:hidden}
.day-side{background:var(--green);color:#fff;padding:28px 23px;display:flex;flex-direction:column;justify-content:space-between;min-height:225px}
.day-number{text-transform:uppercase;font-size:11px;letter-spacing:.1em;color:var(--gold-soft);font-weight:600}
.day-side h3{font-family:var(--serif);font-size:31px;font-weight:500;line-height:1.02;margin:8px 0 0}
.day-side small{text-transform:uppercase;letter-spacing:.08em;font-size:9px;opacity:.75}
.day-main{padding:25px 31px}
.day-main>p.day-teaser{font-family:var(--serif);font-size:20px;line-height:1.25;margin:0 0 13px;color:var(--green)}
.day-details{border-top:1px solid #ddd3c4;padding-top:13px}
.day-details summary{cursor:pointer;list-style:none;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;color:var(--gold);display:flex;align-items:center;justify-content:space-between;gap:10px}
.day-details summary::-webkit-details-marker{display:none}.day-details summary::after{content:"+";font-family:Georgia,serif;font-size:20px;font-weight:400}.day-details[open] summary::after{content:"–"}
.day-details .detail-content{padding-top:16px;columns:2;column-gap:38px}
.detail-block{break-inside:avoid;margin:0 0 19px}
.detail-block h4{font-family:var(--serif);font-size:21px;line-height:1.1;margin:0 0 6px;font-weight:600}.detail-block p{font-size:12px;line-height:1.6;margin:0;color:#4c544f}

/* Options */
.options{background:var(--cream)}
.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.option-card{background:#fff;border:1px solid #e8e0d4;box-shadow:0 8px 24px rgba(0,0,0,.04)}
.option-photo{height:205px;background-size:cover;background-position:center}.option-photo-golf{background-image:url("../images/hero-vigiers.jpg")}.option-photo-wine{background-image:url("../images/bergerac.jpg")}.option-photo-free{background-image:url("../images/vigiers-vineyard.jpg")}
.option-body{padding:27px}.option-body>span{text-transform:uppercase;letter-spacing:.08em;color:var(--gold);font-size:10px;font-weight:600}.option-body h3{font-family:var(--serif);font-weight:500;font-size:29px;line-height:1.05;margin:6px 0 7px}.option-body .option-subtitle{font-family:var(--serif);font-style:italic;font-size:19px;color:var(--green);margin-bottom:12px}.option-body p{font-size:12px;margin:0 0 12px}.option-body .included-note{border-top:1px solid #ece3d6;padding-top:12px;margin-top:15px;color:#555f59}

/* Included / not included */
.inclusions{background:#fff}
.inclusion-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.included-panel{padding:39px 40px;background:#faf7f1;border:1px solid #e9e1d4}
.included-panel.not{background:#f6f4ef}
.check-list{list-style:none;padding:0;margin:23px 0 0}.check-list li{position:relative;padding-left:27px;margin:10px 0;font-size:12px}.check-list li::before{content:"✓";position:absolute;left:0;top:1px;color:var(--green);font-weight:700;border:1px solid var(--green);border-radius:50%;width:16px;height:16px;line-height:14px;text-align:center;font-size:10px}.included-panel.not .check-list li::before{content:"×";color:#876e57;border-color:#876e57}

/* Help / brand */
.help-band{background:linear-gradient(120deg,var(--green),var(--green-dark));color:#fff}
.help-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.help-copy .eyebrow{font-family:var(--sans);font-size:10px;color:var(--gold-soft)}.help-copy h2{font-family:var(--serif);font-size:43px;line-height:1.05;font-weight:500;margin:8px 0 14px}.help-copy p{max-width:650px;font-size:13px;opacity:.9}.help-actions{display:flex;gap:12px;flex-wrap:wrap}
.brand-note{padding:32px 0;background:#f1ece3;text-align:center;font-family:var(--serif);font-size:19px;color:#4a534f}.brand-note strong{color:var(--green)}

/* Contact */
.contact-band{background:#f2eee6;padding:0 0 38px}
.contact-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;align-items:stretch;background:#f8f5ee}.contact-block{display:flex;gap:20px;padding:28px 32px;border-right:1px solid #d9cdb8}.contact-icon{font-size:34px;color:var(--green)}.contact-block h3,.contact-cta h3{text-transform:uppercase;letter-spacing:.06em;font-size:12px;margin:0 0 8px}.contact-block p,.contact-cta p{font-size:11px;line-height:1.55;margin:0 0 10px}.contact-cta{background:var(--green);color:#fff;padding:28px 36px}.contact-cta .btn{margin-top:7px}
.sticky-book{position:fixed;right:22px;bottom:22px;z-index:25;box-shadow:0 8px 24px rgba(0,0,0,.18)}

@media(max-width:1100px){
  .main-nav{display:none}.site-header{justify-content:space-between}.hero-inner{grid-template-columns:1fr 275px}.highlight-grid{grid-template-columns:repeat(2,1fr)}.highlight-card:last-child{grid-column:span 2}.reassurance-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .container{width:min(100% - 34px,1180px)}.site-header{height:72px;padding:0 17px}.brand{width:125px;flex-basis:125px}.brand img{height:52px}.header-actions .btn{display:none}
  .hero{min-height:auto}.hero-inner{display:block;padding-top:75px}.hero-copy{padding-bottom:38px}.hero h1{font-size:55px}.hero-lead{font-size:21px}.hero-features{grid-template-columns:repeat(2,1fr)}.price-card{margin:0 -17px;min-height:0;padding:28px}
  .section{padding:60px 0}.section-heading h2,.included-panel h2{font-size:28px}.intro-story{grid-template-columns:1fr;gap:32px}.intro-image{min-height:330px}.intro-copy h2{font-size:37px}
  .reassurance-grid{grid-template-columns:repeat(2,1fr);row-gap:25px}.programme-intro{grid-template-columns:1fr}.programme-photo{height:245px}.day{grid-template-columns:1fr}.day-side{min-height:0}.day-details .detail-content{columns:1}.option-grid,.inclusion-grid,.help-grid,.contact-grid{grid-template-columns:1fr}.contact-block{border-right:0;border-bottom:1px solid #d9cdb8}.sticky-book{right:12px;bottom:12px}
}
@media(max-width:540px){
  .highlight-grid{grid-template-columns:1fr}.highlight-card:last-child{grid-column:auto}.hero h1{font-size:48px}.hero-features{gap:24px 8px}.section-heading h2{font-size:25px}.intro-copy h2{font-size:33px}.day-main{padding:22px}.included-panel{padding:30px 24px}.help-copy h2{font-size:36px}
}


/* =========================================================
   PROGRAMME — COMPACT DAY CARDS + RIGHT-HAND DETAIL DRAWER
   ========================================================= */
body.drawer-open{overflow:hidden}

.programme .section-heading{margin-bottom:34px}
.programme-intro{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:22px
}
.programme-photo{
  height:250px;
  position:relative;
  overflow:hidden;
  background-size:cover;
  background-position:center
}
.programme-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.48))
}
.programme-photo span{
  position:absolute;
  z-index:2;
  left:24px;
  bottom:20px;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:10px;
  font-weight:600
}

.journey-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px
}
.journey-card{
  position:relative;
  min-height:230px;
  padding:28px 30px 25px;
  background:var(--paper);
  border:1px solid #e6dfd4;
  display:flex;
  flex-direction:column;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease,background .28s ease
}
.journey-card:hover{
  transform:translateY(-3px);
  border-color:#d3c19e;
  box-shadow:0 14px 34px rgba(17,29,24,.07);
  background:#fff
}
.journey-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  margin-bottom:18px
}
.journey-day{
  color:var(--gold);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.journey-meta{
  color:#7a7f79;
  font-size:9px;
  letter-spacing:.075em;
  text-transform:uppercase;
  text-align:right
}
.journey-card h3{
  max-width:500px;
  margin:0 0 11px;
  color:var(--green);
  font-family:var(--serif);
  font-size:31px;
  line-height:1.02;
  font-weight:500
}
.journey-card p{
  max-width:550px;
  margin:0 0 24px;
  color:#4c544f;
  font-size:12px;
  line-height:1.65
}
.journey-open{
  width:max-content;
  margin-top:auto;
  padding:0 0 5px;
  border:0;
  border-bottom:1px solid var(--gold);
  background:transparent;
  color:var(--gold);
  cursor:pointer;
  font-family:var(--sans);
  font-size:10px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase
}
.journey-open span{display:inline-block;margin-left:8px;transition:transform .25s ease}
.journey-open:hover span{transform:translateX(5px)}

.programme-drawer-overlay{
  position:fixed;
  z-index:90;
  inset:0;
  background:rgba(7,15,25,.55);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease,visibility .35s ease
}
.programme-drawer-overlay.is-open{
  opacity:1;
  visibility:visible
}

.programme-drawer{
  position:fixed;
  z-index:100;
  top:0;
  right:0;
  width:min(680px,92vw);
  height:100vh;
  height:100dvh;
  background:var(--paper);
  box-shadow:-24px 0 60px rgba(0,0,0,.18);
  transform:translateX(102%);
  transition:transform .42s cubic-bezier(.22,.75,.18,1);
  display:flex;
  flex-direction:column;
  outline:none
}
.programme-drawer.is-open{transform:translateX(0)}

.programme-drawer-head{
  position:relative;
  flex:0 0 auto;
  padding:40px 74px 30px 42px;
  background:var(--green);
  color:#fff
}
.drawer-day{
  display:block;
  margin-bottom:8px;
  color:var(--gold-soft);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.programme-drawer-head h3{
  max-width:530px;
  margin:0;
  font-family:var(--serif);
  font-size:39px;
  line-height:1.02;
  font-weight:500
}
.programme-drawer-head p{
  max-width:540px;
  margin:13px 0 0;
  color:rgba(255,255,255,.78);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.35
}
.drawer-close{
  position:absolute;
  top:24px;
  right:24px;
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-family:Arial,sans-serif;
  font-size:27px;
  line-height:36px;
  transition:.2s ease
}
.drawer-close:hover{background:#fff;color:var(--green)}

.programme-drawer-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overscroll-behavior:contain
}
.programme-drawer-content{padding:34px 42px 46px}
.programme-drawer-content .detail-block{
  position:relative;
  margin:0;
  padding:0 0 24px 28px
}
.programme-drawer-content .detail-block:not(:last-child){
  margin-bottom:24px;
  border-bottom:1px solid #e8e0d4
}
.programme-drawer-content .detail-block::before{
  content:"";
  position:absolute;
  left:0;
  top:7px;
  width:7px;
  height:7px;
  border:1px solid var(--gold);
  border-radius:50%
}
.programme-drawer-content .detail-block h4{
  margin:0 0 7px;
  color:var(--green);
  font-family:var(--serif);
  font-size:25px;
  line-height:1.08;
  font-weight:600
}
.programme-drawer-content .detail-block p{
  margin:0;
  color:#4c544f;
  font-size:13px;
  line-height:1.72
}

.programme-drawer-footer{
  flex:0 0 auto;
  min-height:62px;
  padding:0 26px;
  border-top:1px solid #e3dacb;
  background:#f5f0e7;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px
}
.programme-drawer-footer span{
  color:#787a74;
  font-size:9px;
  letter-spacing:.11em;
  text-transform:uppercase
}
.drawer-nav{
  border:0;
  background:transparent;
  color:var(--green);
  cursor:pointer;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase
}
.drawer-nav:first-child{text-align:left}
.drawer-nav:last-child{text-align:right}
.drawer-nav:disabled{opacity:.25;cursor:default}

@media(max-width:820px){
  .programme-photo{height:220px}
  .journey-grid{grid-template-columns:1fr}
  .journey-card{min-height:0}
  .programme-drawer{
    width:100vw;
    max-width:none
  }
  .programme-drawer-head{padding:34px 66px 25px 25px}
  .programme-drawer-head h3{font-size:34px}
  .programme-drawer-head p{font-size:17px}
  .drawer-close{top:18px;right:16px}
  .programme-drawer-content{padding:28px 25px 38px}
}
@media(max-width:540px){
  .programme-intro{grid-template-columns:1fr}
  .programme-photo{height:190px}
  .journey-card{padding:24px 22px 22px}
  .journey-card-top{align-items:flex-start;flex-direction:column;gap:5px}
  .journey-meta{text-align:left}
  .journey-card h3{font-size:29px}
  .programme-drawer-footer{padding:0 14px;gap:8px}
  .drawer-nav{font-size:8px}
}


/* =========================================================
   PROGRAMME — ELEGANT TIMELINE + DRAWER PHOTO DETAILS
   ========================================================= */
.programme{
  background:
    linear-gradient(180deg,#fff 0%,#fbfaf7 100%);
}
.programme .section-heading{margin-bottom:38px}
.programme-intro{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  margin-bottom:34px
}
.programme-photo{
  height:235px;
  position:relative;
  overflow:hidden;
  background-size:cover;
  background-position:center
}
.programme-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.52))
}
.programme-photo span{
  position:absolute;
  z-index:2;
  left:24px;
  bottom:20px;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.11em;
  font-size:10px;
  font-weight:700
}
.journey-timeline{
  position:relative;
  padding:18px 0 6px
}
.journey-timeline::before{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:50%;
  width:1px;
  background:linear-gradient(180deg,rgba(181,150,93,.15),rgba(181,150,93,.8),rgba(181,150,93,.15));
  transform:translateX(-50%)
}
.journey-item{
  position:relative;
  width:50%;
  padding:4px 42px 18px;
}

.journey-item:not(:first-child){
  margin-top:-90px;
}

.journey-item.left{padding-right:56px}
.journey-item.right{
  margin-left:auto;
  padding-left:56px
}
.journey-dot{
  position:absolute;
  top:42px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--paper);
  border:1px solid var(--gold);
  box-shadow:0 0 0 6px rgba(181,150,93,.12)
}
.journey-item.left .journey-dot{right:-9px}
.journey-item.right .journey-dot{left:-9px}
.journey-item-current .journey-dot{background:var(--gold)}
.journey-card{
  position:relative;
  min-height:210px;
  padding:28px 30px 26px;
  background:rgba(255,255,255,.86);
  border:1px solid #e6dfd4;
  box-shadow:0 12px 34px rgba(13,23,19,.045);
  backdrop-filter:blur(3px);
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease,background .3s ease
}
.journey-card:hover{
  transform:translateY(-4px);
  border-color:#d8c49f;
  box-shadow:0 18px 42px rgba(13,23,19,.09);
  background:#fff
}
.journey-card::before{
  content:"";
  position:absolute;
  top:28px;
  width:18px;
  height:18px;
  background:#fff;
  border-top:1px solid #e6dfd4;
  border-right:1px solid #e6dfd4;
  transform:rotate(45deg)
}
.journey-item.left .journey-card::before{right:-10px}
.journey-item.right .journey-card::before{left:-10px}
.journey-card-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:14px
}
.journey-day{
  color:var(--gold);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.journey-meta{
  color:#7a7f79;
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:right
}
.journey-card h3{
  margin:0 0 10px;
  color:var(--green);
  font-family:var(--serif);
  font-size:31px;
  line-height:1.02;
  font-weight:500
}
.journey-card p{
  margin:0 0 22px;
  color:#4c544f;
  font-size:12px;
  line-height:1.65
}
.journey-open{
  width:max-content;
  margin-top:auto;
  padding:0 0 5px;
  border:0;
  border-bottom:1px solid var(--gold);
  background:transparent;
  color:var(--gold);
  cursor:pointer;
  font-family:var(--sans);
  font-size:10px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase
}
.journey-open span{display:inline-block;margin-left:8px;transition:transform .25s ease}
.journey-open:hover span{transform:translateX(5px)}

body.drawer-open{overflow:hidden}
.programme-drawer-overlay{
  position:fixed;
  z-index:90;
  inset:0;
  background:rgba(7,15,25,.55);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s ease,visibility .35s ease
}
.programme-drawer-overlay.is-open{
  opacity:1;
  visibility:visible
}
.programme-drawer{
  position:fixed;
  z-index:100;
  top:0;
  right:0;
  width:min(720px,92vw);
  height:100vh;
  height:100dvh;
  background:var(--paper);
  box-shadow:-24px 0 60px rgba(0,0,0,.18);
  transform:translateX(102%);
  transition:transform .42s cubic-bezier(.22,.75,.18,1);
  display:flex;
  flex-direction:column;
  outline:none
}
.programme-drawer.is-open{transform:translateX(0)}
.programme-drawer-head{
  position:relative;
  flex:0 0 auto;
  padding:40px 74px 30px 42px;
  background:var(--green);
  color:#fff
}
.drawer-day{
  display:block;
  margin-bottom:8px;
  color:var(--gold-soft);
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase
}
.programme-drawer-head h3{
  max-width:540px;
  margin:0;
  font-family:var(--serif);
  font-size:39px;
  line-height:1.02;
  font-weight:500
}
.programme-drawer-head p{
  max-width:540px;
  margin:13px 0 0;
  color:rgba(255,255,255,.78);
  font-family:var(--serif);
  font-size:18px;
  line-height:1.35
}
.drawer-close{
  position:absolute;
  top:24px;
  right:24px;
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:50%;
  background:transparent;
  color:#fff;
  cursor:pointer;
  font-family:Arial,sans-serif;
  font-size:27px;
  line-height:36px;
  transition:.2s ease
}
.drawer-close:hover{background:#fff;color:var(--green)}
.programme-drawer-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overscroll-behavior:contain
}
.programme-drawer-content{padding:34px 42px 46px}
.detail-block.with-media{
  display:grid;
  grid-template-columns:102px minmax(0,1fr);
  gap:18px;
  align-items:start;
  margin:0;
  padding:0 0 24px
}
.detail-block.with-media:not(:last-child){
  margin-bottom:24px;
  border-bottom:1px solid #e8e0d4
}
.detail-media{
  width:102px;
  height:102px;
  border-radius:14px;
  background-size:cover;
  background-position:center;
  box-shadow:0 10px 24px rgba(13,23,19,.10)
}
.detail-copy h4{
  margin:0 0 7px;
  color:var(--green);
  font-family:var(--serif);
  font-size:25px;
  line-height:1.08;
  font-weight:600
}
.detail-copy p{
  margin:0;
  color:#4c544f;
  font-size:13px;
  line-height:1.72
}
.programme-drawer-footer{
  flex:0 0 auto;
  min-height:62px;
  padding:0 26px;
  border-top:1px solid #e3dacb;
  background:#f5f0e7;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:16px
}
.programme-drawer-footer span{
  color:#787a74;
  font-size:9px;
  letter-spacing:.11em;
  text-transform:uppercase
}
.drawer-nav{
  border:0;
  background:transparent;
  color:var(--green);
  cursor:pointer;
  font-size:9px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase
}
.drawer-nav:first-child{text-align:left}
.drawer-nav:last-child{text-align:right}
.drawer-nav:disabled{opacity:.25;cursor:default}

/* Photo mapping for every moment in the drawer */
.photo-arrival,.photo-countryside,.photo-return-estate,.photo-departure{
  background-image:url("../images/vigiers-vineyard.jpg");
}
.photo-arrival{background-position:center 62%}
.photo-countryside{background-position:center 48%}
.photo-return-estate{background-position:center 72%}
.photo-departure{background-position:center 58%}

.photo-estate,.photo-terrace,.photo-pool,.photo-grounds,.photo-estate-story,.photo-option{
  background-image:url("../images/hero-vigiers.jpg");
}
.photo-estate{background-position:center 58%}
.photo-terrace{background-position:center 88%}
.photo-pool{background-position:center 70%}
.photo-grounds{background-position:center 62%}
.photo-estate-story{background-position:center 38%}
.photo-option{background-position:center 80%}

.photo-bistro,.photo-breakfast,.photo-village-lunch{
  background-image:url("../images/hero-vigiers.jpg");
}
.photo-bistro{background-position:center 92%}
.photo-breakfast{background-position:center 84%}
.photo-village-lunch{background-position:center 90%}

.photo-guides,.photo-vines,.photo-bergerac,.photo-cellar,.photo-picnic{
  background-image:url("../images/bergerac.jpg");
}
.photo-guides{background-position:center 18%}
.photo-vines{background-position:center 35%}
.photo-bergerac{background-position:center 50%}
.photo-cellar{background-position:center 66%}
.photo-picnic{background-position:center 84%}

.photo-golf-panorama,.photo-fairway{
  background-image:url("../images/hero-vigiers.jpg");
}
.photo-golf-panorama{background-position:center 47%}
.photo-fairway{background-position:center 53%}

.photo-grandcru,.photo-tasting,.photo-saint-emilion{
  background-image:url("../images/saint-emilion.jpg");
}
.photo-grandcru{background-position:center 26%}
.photo-tasting{background-position:center 48%}
.photo-saint-emilion{background-position:center 62%}

@media(max-width:980px){
  .journey-timeline::before{left:22px;transform:none}
  .journey-item,
  .journey-item.left,
  .journey-item.right{
    width:100%;
    margin-left:0;
    padding:0 0 20px 52px
  }
  .journey-dot,
  .journey-item.left .journey-dot,
  .journey-item.right .journey-dot{
    left:13px;
    right:auto;
    top:40px
  }
  .journey-card::before,
  .journey-item.left .journey-card::before,
  .journey-item.right .journey-card::before{
    left:-10px;
    right:auto
  }
}
@media(max-width:820px){
  .programme-intro{grid-template-columns:1fr}
  .programme-photo{height:210px}
  .programme-drawer{
    width:100vw;
    max-width:none
  }
  .programme-drawer-head{padding:34px 66px 25px 25px}
  .programme-drawer-head h3{font-size:34px}
  .programme-drawer-head p{font-size:17px}
  .drawer-close{top:18px;right:16px}
  .programme-drawer-content{padding:28px 25px 38px}
  .detail-block.with-media{
    grid-template-columns:84px minmax(0,1fr);
    gap:15px
  }
  .detail-media{width:84px;height:84px}
}
@media(max-width:540px){
  .journey-item,
  .journey-item.left,
  .journey-item.right{padding-left:38px}
  .journey-timeline::before{left:14px}
  .journey-dot,
  .journey-item.left .journey-dot,
  .journey-item.right .journey-dot{
    left:5px;
    top:35px;
    width:16px;
    height:16px
  }
  .journey-card{min-height:0;padding:24px 20px 22px}
  .journey-card-top{align-items:flex-start;flex-direction:column;gap:5px}
  .journey-meta{text-align:left}
  .journey-card h3{font-size:28px}
  .programme-drawer-footer{padding:0 14px;gap:8px}
  .drawer-nav{font-size:8px}
  .detail-block.with-media{
    grid-template-columns:1fr;
    gap:12px
  }
  .detail-media{width:100%;height:140px}
}
/* =========================
   YOUR HOME AT LES VIGIERS
   ========================= */

.escape-home{
  background:#fff;
}

.escape-home-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}

.escape-home-copy h2{
  font-family:var(--serif);
  font-size:46px;
  line-height:1.02;
  font-weight:500;
  margin:9px 0 0;
  color:var(--green);
}

.escape-home-lead{
  font-family:var(--serif);
  font-size:22px;
  line-height:1.35;
  color:var(--green);
}

.escape-home-copy p{
  font-size:13px;
}

.escape-home-features{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:30px 0 22px;
  padding:22px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.escape-home-features div{
  display:flex;
  flex-direction:column;
}

.escape-home-features strong{
  font-family:var(--serif);
  color:var(--gold);
  font-size:28px;
  font-weight:500;
  line-height:1;
}

.escape-home-features span{
  margin-top:6px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.escape-home-extra{
  color:var(--muted);
  font-size:11px !important;
}

.escape-home-gallery{
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:310px 150px;
  gap:12px;
}

.escape-home-main-photo{
  grid-column:1 / 3;
  background:url("../images/hero-vigiers.jpg") center 58% / cover no-repeat;
}

.escape-home-small{
  position:relative;
  background-size:cover;
  background-position:center;
}

.escape-home-small::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.45));
}

.escape-home-small span{
  position:absolute;
  left:18px;
  bottom:14px;
  z-index:2;
  color:#fff;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:9px;
}

.escape-home-golf{
  background-image:url("../images/hero-vigiers.jpg");
  background-position:center 75%;
}

.escape-home-life{
  background-image:url("../images/vigiers-vineyard.jpg");
}

@media(max-width:820px){
  .escape-home-grid{
    grid-template-columns:1fr;
    gap:35px;
  }

  .escape-home-copy h2{
    font-size:37px;
  }

  .escape-home-features{
    grid-template-columns:repeat(2,1fr);
    row-gap:20px;
  }

  .escape-home-gallery{
    grid-template-rows:250px 130px;
  }
}

/* =========================
   YOUR GUIDES
   ========================= */

.your-guides{
  background:var(--green);
  color:#fff;
}

.guides-grid{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:70px;
  align-items:center;
}

.guides-photo{
  min-height:520px;
  position:relative;

  /* TEMPORARY PHOTO */
  background:url("../images/bergerac.jpg") center / cover no-repeat;
}

.guides-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.68));
}

.guides-photo-label{
  position:absolute;
  z-index:2;
  left:30px;
  bottom:28px;
  color:#fff;
}

.guides-photo-label span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--gold-soft);
  font-size:9px;
}

.guides-photo-label strong{
  display:block;
  margin-top:3px;
  font-family:var(--serif);
  font-size:34px;
  font-weight:500;
}

.guides-copy .eyebrow{
  color:var(--gold-soft);
  font-family:var(--sans);
  font-size:10px;
}

.guides-copy h2{
  max-width:600px;
  margin:10px 0 0;
  font-family:var(--serif);
  font-size:44px;
  line-height:1.02;
  font-weight:500;
}

.guides-copy .heading-rule{
  margin-left:0;
}

.guides-lead{
  font-family:var(--serif);
  font-size:22px !important;
  line-height:1.35 !important;
  color:#fff;
}

.guides-copy > p{
  max-width:620px;
  font-size:13px;
  line-height:1.7;
  color:rgba(255,255,255,.85);
}

.guides-promise{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:15px;
  padding:15px 0;
  border-top:1px solid rgba(255,255,255,.15);
}

.guides-promise:first-of-type{
  margin-top:25px;
}

.guides-promise span{
  color:var(--gold-soft);
  font-family:var(--serif);
  font-size:19px;
}

.guides-promise p{
  margin:0;
  font-size:11px;
  line-height:1.5;
  color:rgba(255,255,255,.78);
}

.guides-promise strong{
  color:#fff;
}

@media(max-width:820px){
  .guides-grid{
    grid-template-columns:1fr;
    gap:35px;
  }

  .guides-photo{
    min-height:380px;
  }

  .guides-copy h2{
    font-size:36px;
  }
}

/* =========================
   GETTING HERE
   ========================= */

.getting-here{
  background:var(--cream);
}

.getting-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:70px;
  align-items:center;
}

.getting-copy h2{
  max-width:650px;
  margin:9px 0 0;
  font-family:var(--serif);
  font-size:44px;
  line-height:1.02;
  font-weight:500;
  color:var(--green);
}

.getting-lead{
  font-family:var(--serif);
  font-size:21px;
  line-height:1.35;
  color:var(--green);
}

.getting-copy > p{
  font-size:13px;
}

.arrival-options{
  margin-top:28px;
}

.arrival-option{
  display:grid;
  grid-template-columns:45px 1fr;
  gap:18px;
  padding:17px 0;
  border-top:1px solid #ded5c6;
}

.arrival-option > span{
  color:var(--gold);
  font-family:Georgia,serif;
  font-size:26px;
  line-height:1;
}

.arrival-option strong{
  display:block;
  font-family:var(--serif);
  color:var(--green);
  font-size:20px;
  line-height:1.1;
}

.arrival-option p{
  margin:5px 0 0;
  font-size:11px;
}

.getting-note{
  padding:16px 18px;
  margin-top:12px;
  background:#fff;
  border-left:2px solid var(--gold);
}

.getting-photo{
  min-height:480px;
  position:relative;
  background:url("../images/vigiers-vineyard.jpg") center / cover no-repeat;
}

.getting-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.58));
}

.getting-photo-card{
  position:absolute;
  z-index:2;
  left:28px;
  bottom:27px;
  color:#fff;
}

.getting-photo-card span,
.getting-photo-card small{
  display:block;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:9px;
}

.getting-photo-card strong{
  display:block;
  margin:4px 0;
  font-family:var(--serif);
  font-size:32px;
  font-weight:500;
}

@media(max-width:820px){
  .getting-grid{
    grid-template-columns:1fr;
    gap:35px;
  }

  .getting-copy h2{
    font-size:36px;
  }

  .getting-photo{
    min-height:330px;
  }
}

/* ===================================
   DISCOVER THE ESTATE
   =================================== */

.escape-home-intro{
  margin-top:22px;
  color:#515954 !important;
}

.estate-discover{
  margin-top:28px;
  border-top:1px solid var(--line);
}

.estate-discover-card{
  width:100%;
  display:grid;
  grid-template-columns:58px 1fr 30px;
  gap:16px;
  align-items:center;

  padding:17px 5px;

  border:0;
  border-bottom:1px solid var(--line);

  background:transparent;

  text-align:left;
  cursor:pointer;

  transition:.25s ease;
}

.estate-discover-card:hover{
  padding-left:13px;
  background:#faf7f1;
}

.estate-discover-number{
  color:var(--gold);

  font-family:var(--serif);
  font-size:25px;
  line-height:1;
}

.estate-discover-card strong{
  display:block;

  color:var(--green);

  font-family:var(--serif);
  font-size:20px;
  line-height:1.05;
}

.estate-discover-card small{
  display:block;
  margin-top:4px;

  color:#717873;

  font-size:9px;
  letter-spacing:.04em;
}

.estate-arrow{
  color:var(--gold);
  font-size:19px;

  transition:.25s ease;
}

.estate-discover-card:hover .estate-arrow{
  transform:translateX(5px);
}

/* ===================================
   ESTATE DRAWER
   =================================== */

.estate-drawer-overlay{
  position:fixed;
  z-index:110;

  inset:0;

  background:rgba(7,15,25,.55);

  opacity:0;
  visibility:hidden;

  transition:.35s ease;
}

.estate-drawer-overlay.is-open{
  opacity:1;
  visibility:visible;
}


.estate-drawer{
  position:fixed;
  z-index:120;

  top:0;
  right:0;

  width:min(620px,92vw);
  height:100vh;
  height:100dvh;

  background:var(--paper);

  box-shadow:-25px 0 70px rgba(0,0,0,.2);

  transform:translateX(102%);

  transition:transform .42s cubic-bezier(.22,.75,.18,1);

  overflow-y:auto;
}

.estate-drawer.is-open{
  transform:translateX(0);
}


.estate-drawer-close{
  position:absolute;

  z-index:4;

  top:20px;
  right:20px;

  width:42px;
  height:42px;

  border:1px solid rgba(255,255,255,.7);
  border-radius:50%;

  background:rgba(0,0,0,.12);

  color:#fff;

  font-size:27px;

  cursor:pointer;
}


.estate-drawer-photo{
  height:350px;

  background-size:cover;
  background-position:center;

  position:relative;
}

.estate-drawer-photo::after{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.04),
      rgba(0,0,0,.35)
    );
}


.estate-drawer-content{
  padding:42px 44px 55px;
}

.estate-drawer-content h2{
  margin:8px 0 0;

  color:var(--green);

  font-family:var(--serif);
  font-size:42px;
  font-weight:500;
  line-height:1.03;
}

.estate-drawer-content h3{
  margin:28px 0 7px;

  color:var(--green);

  font-family:var(--serif);
  font-size:25px;
  font-weight:600;
}

.estate-drawer-content p{
  font-size:13px;
  line-height:1.75;
}

.estate-drawer-lead{
  color:var(--green);

  font-family:var(--serif);
  font-size:21px !important;
  line-height:1.4 !important;
}


.estate-mini-list{
  display:grid;
  grid-template-columns:1fr 1fr;

  gap:8px;

  margin:22px 0;
}

.estate-mini-list span{
  padding:11px 13px;

  background:#f4efe6;

  color:var(--green);

  font-size:10px;
}


/* temporary images */

.estate-drawer-photo.restaurants{
  background-image:url("../images/hero-vigiers.jpg");
  background-position:center 82%;
}

.estate-drawer-photo.golf{
  background-image:url("../images/hero-vigiers.jpg");
  background-position:center 52%;
}

.estate-drawer-photo.spa{
  background-image:url("../images/vigiers-vineyard.jpg");
}

.estate-drawer-photo.nature{
  background-image:url("../images/vigiers-vineyard.jpg");
}


@media(max-width:620px){

  .estate-drawer{
    width:100vw;
  }

  .estate-drawer-photo{
    height:260px;
  }

  .estate-drawer-content{
    padding:32px 24px 45px;
  }

  .estate-drawer-content h2{
    font-size:35px;
  }

  .estate-mini-list{
    grid-template-columns:1fr;
  }

}

/* =========================
   THE FRENCH ESCAPE HEADER
   ========================= */

.tfe-header{
  height:88px;

  display:grid;
  grid-template-columns:250px 1fr 210px;
  align-items:center;

  padding:0 42px;

  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.07);

  position:relative;
  z-index:80;
}


/* BRAND */

.tfe-brand{
  display:flex;
  flex-direction:column;

  width:max-content;
}

.tfe-brand-name{
  font-family:var(--serif);
  font-size:27px;
  line-height:1;
  font-weight:500;

  color:var(--green);

  letter-spacing:.01em;
}

.tfe-brand-signature{
  margin-top:5px;

  font-size:8px;
  font-weight:600;

  text-transform:uppercase;
  letter-spacing:.16em;

  color:var(--gold);
}


/* NAVIGATION */

.tfe-nav{
  display:flex;
  justify-content:center;
  align-items:center;

  gap:40px;
}

.tfe-nav a{
  position:relative;

  padding:34px 0 31px;

  font-size:10px;
  font-weight:600;

  text-transform:uppercase;
  letter-spacing:.09em;

  color:#313a36;

  transition:.25s ease;
}

.tfe-nav a::after{
  content:"";

  position:absolute;
  left:50%;
  bottom:23px;

  width:0;
  height:1px;

  background:var(--gold);

  transform:translateX(-50%);

  transition:width .25s ease;
}

.tfe-nav a:hover{
  color:var(--green);
}

.tfe-nav a:hover::after,
.tfe-nav a.active::after{
  width:32px;
}

.tfe-nav a.active{
  color:var(--green);
}


/* CTA */

.tfe-header-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:18px;
}

.tfe-plan{
  min-height:42px;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:0 23px;

  background:var(--gold);
  color:#fff;

  font-size:9px;
  font-weight:600;

  text-transform:uppercase;
  letter-spacing:.1em;

  transition:.25s ease;
}

.tfe-plan:hover{
  background:#a4844e;
  transform:translateY(-1px);
}


/* MOBILE BUTTON */

.tfe-menu-toggle{
  display:none;

  width:42px;
  height:42px;

  padding:9px;

  border:0;
  background:transparent;

  cursor:pointer;
}

.tfe-menu-toggle span{
  display:block;

  width:22px;
  height:1px;

  margin:5px auto;

  background:var(--green);

  transition:.25s ease;
}


/* TABLET / MOBILE */

@media(max-width:900px){

  .tfe-header{
    height:74px;

    grid-template-columns:1fr auto;

    padding:0 20px;
  }

  .tfe-brand-name{
    font-size:23px;
  }

  .tfe-brand-signature{
    font-size:7px;
  }

  .tfe-header-actions{
    gap:8px;
  }

  .tfe-plan{
    display:none;
  }

  .tfe-menu-toggle{
    display:block;
  }


  .tfe-nav{
    position:absolute;

    top:74px;
    left:0;
    right:0;

    display:flex;
    flex-direction:column;
    align-items:stretch;

    gap:0;

    padding:18px 20px 28px;

    background:#fff;

    border-top:1px solid #eee;
    box-shadow:0 15px 35px rgba(0,0,0,.09);

    opacity:0;
    visibility:hidden;

    transform:translateY(-8px);

    transition:.25s ease;
  }

  .tfe-nav.is-open{
    opacity:1;
    visibility:visible;

    transform:translateY(0);
  }

  .tfe-nav a{
    padding:16px 4px;

    border-bottom:1px solid #eee;

    font-family:var(--serif);
    font-size:22px;
    font-weight:500;

    text-transform:none;
    letter-spacing:0;
  }

  .tfe-nav a::after{
    display:none;
  }

}

.programme-sources{
  display:none;
}