/* ============================================================
   Retreat detail page styles (Texas / Michigan)
   ============================================================ */

/* Sub-hero */
.rhero { position: relative; min-height: clamp(540px, 82vh, 820px); display: flex; align-items: flex-end; color: #fff; overflow: hidden; isolation: isolate; }
.rhero-bg { position: absolute; inset: 0; z-index: -2; background: var(--moss-deep); }
.rhero-bg img, .rhero-bg video { width: 100%; height: 100%; object-fit: cover; }
.rhero-bg img { transform: scale(1.05); animation: kenburns 18s ease-out forwards; }
.rhero::after { content:""; position:absolute; inset:0; z-index:-1;
  background: linear-gradient(to top, rgba(7,12,9,.9) 2%, rgba(7,12,9,.36) 46%, rgba(7,12,9,.2) 78%, rgba(7,12,9,.4) 100%); }
.rhero-inner { width:100%; max-width:1380px; margin-inline:auto; padding:0 var(--gut) clamp(44px,6vw,80px); }
.rhero .tag { margin-bottom: 18px; }
.rhero h1 { color:#fff; max-width: 15ch; text-shadow: 0 2px 30px rgba(0,0,0,.3); }
.rhero h1 em { font-family: var(--serif); font-weight: 400; font-style: italic; }
.rhero .tx em { color: var(--sun); }
.rhero .mi em { color: #8fcfe0; }
.rhero-where { display:flex; flex-wrap:wrap; gap:10px 22px; margin:20px 0 26px; font-size:1rem; color:rgba(255,255,255,.9); }
.rhero-where span { display:inline-flex; align-items:center; gap:8px; font-weight:550; }
.rhero-where svg { width:17px; height:17px; opacity:.85; }

/* Sticky booking strip */
.book-strip { position: sticky; top: var(--nav-h); z-index: 30;
  background: rgba(255,255,255,.86); backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 1px solid var(--line); }
.book-strip-inner { max-width:1380px; margin-inline:auto; padding: 12px var(--gut);
  display:flex; align-items:center; justify-content:space-between; gap:18px; }
.book-strip .bs-info { display:flex; align-items:center; gap:18px; min-width:0; }
.book-strip .bs-price { font-weight:700; font-size:1.15rem; letter-spacing:-.02em; white-space:nowrap; }
.book-strip .bs-price small { font-weight:550; color:var(--text-3); font-size:.8rem; }
.book-strip .bs-meta { font-size:.85rem; color:var(--text-2); display:flex; gap:14px; }
.book-strip .bs-meta b { color:var(--ink); }
@media (max-width: 760px){ .book-strip .bs-meta{ display:none; } .book-strip-inner{ gap:12px; } .book-strip .btn{ padding:11px 18px; font-size:.9rem; } }

/* Section intro */
.sec-head { max-width: 60ch; margin-bottom: clamp(28px,4vw,48px); }
.sec-head.center { margin-inline: auto; text-align: center; }

/* Highlight cards */
.hl-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: clamp(16px,2vw,24px); }
@media (max-width:880px){ .hl-grid{ grid-template-columns:1fr; } }

/* Gallery */
.gallery { display:grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.gallery a, .gallery div { border-radius: 4px; overflow:hidden; position:relative; aspect-ratio:1; }
.gallery img { width:100%; height:100%; object-fit:cover; transition: transform .8s var(--ease); }
.gallery a:hover img, .gallery div:hover img { transform: scale(1.08); }
.gallery .g-span2 { grid-column: span 2; grid-row: span 2; aspect-ratio: 1; }
@media (max-width:680px){ .gallery{ grid-template-columns: repeat(2,1fr); } .gallery .g-span2{ grid-column: span 2; grid-row: span 1; aspect-ratio: 16/10; } }

/* Accommodations tiers */
.acc-tiers { display:grid; grid-template-columns: repeat(4,1fr); gap: clamp(14px,1.8vw,20px); }
.tier { background:#fff; border:1px solid var(--line); border-radius: var(--radius); padding: 26px 22px; display:flex; flex-direction:column; transition: transform .5s var(--ease), box-shadow .5s var(--ease), border-color .3s; }
.tier:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.tier.featured { border-color: var(--moss); box-shadow: 0 0 0 1px var(--moss); }
.tier .badge { font-size:.7rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--moss); margin-bottom:14px; }
.tier h3 { font-size:1.2rem; margin-bottom:6px; }
.tier .ti-sub { font-size:.88rem; color:var(--text-3); margin-bottom:18px; min-height:2.4em; }
.tier .ti-price { font-size:1.6rem; font-weight:700; letter-spacing:-.03em; margin-bottom:2px; }
.tier .ti-price small { font-size:.8rem; font-weight:550; color:var(--text-3); }
.tier ul { list-style:none; padding:0; margin:18px 0 22px; display:grid; gap:9px; }
.tier li { font-size:.9rem; color:var(--text-2); display:flex; gap:9px; align-items:flex-start; }
.tier li svg { width:16px; height:16px; color:var(--leaf); flex:none; margin-top:3px; }
.tier .btn { margin-top:auto; }
@media (max-width:980px){ .acc-tiers{ grid-template-columns: repeat(2,1fr); } }
@media (max-width:560px){ .acc-tiers{ grid-template-columns: 1fr; } }

/* Itinerary / day flow */
.day-flow { display:grid; gap:0; max-width: 760px; }
.day { display:grid; grid-template-columns: auto 1fr; gap: 22px; padding: 22px 0; border-top:1px solid var(--line); }
.day:first-child { border-top:0; }
.day .time { font-weight:700; font-size:.95rem; color:var(--moss); white-space:nowrap; padding-top:2px; min-width:96px; }
.day h4 { margin:0 0 4px; font-size:1.08rem; }
.day p { margin:0; color:var(--text-2); font-size:.94rem; }

/* Pricing / two col */
.price-grid { display:grid; grid-template-columns: repeat(2,1fr); gap: clamp(16px,2vw,24px); }
.price-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding: clamp(26px,3vw,38px); }
.price-card.dark { background: var(--moss-deep); color:#fff; }
.price-card .pc-amt { font-size: clamp(2.4rem,4vw,3.2rem); font-weight:700; letter-spacing:-.04em; line-height:1; }
.price-card .pc-amt small { font-size:1rem; font-weight:550; color:var(--text-3); letter-spacing:0; }
.price-card.dark .pc-amt small { color:var(--on-dark-2); }
.price-card ul { list-style:none; padding:0; margin:20px 0 26px; display:grid; gap:11px; }
.price-card li { display:flex; gap:10px; font-size:.95rem; color:var(--text-2); }
.price-card.dark li { color:var(--on-dark-2); }
.price-card li svg { width:18px; height:18px; color:var(--leaf); flex:none; }
@media (max-width:760px){ .price-grid{ grid-template-columns:1fr; } }

/* Confidence row */
.conf { display:grid; grid-template-columns: repeat(3,1fr); gap: clamp(16px,2vw,24px); }
.conf .feature { text-align:left; }
@media (max-width:880px){ .conf{ grid-template-columns:1fr; } }

/* Meet your chef — portrait + text feature */
.chef { display:grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(28px,4vw,64px); align-items:center; }
.chef-portrait { position:relative; aspect-ratio: 4/5; border-radius: var(--radius-lg); overflow:hidden; background: var(--cream-2); box-shadow: var(--shadow); }
.chef-portrait img { width:100%; height:100%; object-fit:cover; object-position: center 30%; display:block; }
/* Placeholder shown until a real photo is dropped in (sits behind the <img>; the img covers it once it loads) */
.chef-portrait .ph { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  color: var(--text-3); text-align:center; padding:24px; background: linear-gradient(160deg, var(--cream), var(--cream-2)); }
.chef-portrait .ph svg { width:46px; height:46px; opacity:.5; }
.chef-portrait .ph span { font-size:.85rem; letter-spacing:.02em; }
.chef-body h2 { margin-bottom: 8px; }
.chef-tag { font-style:italic; color: var(--moss); font-size: clamp(1.05rem,1.6vw,1.25rem); margin: 4px 0 18px; }
.chef-creds { display:flex; flex-wrap:wrap; gap:10px; margin: 22px 0 26px; }
.chef-creds li { list-style:none; font-size:.85rem; font-weight:600; color: var(--text-2);
  background:#fff; border:1px solid var(--line); border-radius: 999px; padding: 7px 14px; }
@media (max-width:880px){
  .chef { grid-template-columns: 1fr; gap: 28px; }
  .chef-portrait { max-width: 360px; margin-inline:auto; }
}

/* Chef teaser (home page) */
.chef-teaser { display:grid; grid-template-columns: auto 1fr auto; gap: clamp(18px,3vw,40px); align-items:center;
  background:#fff; border:1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm);
  padding: clamp(20px,3vw,32px); }
.chef-teaser .avatar { width: clamp(74px,9vw,104px); aspect-ratio:1; border-radius:50%; overflow:hidden; flex:none;
  background: var(--cream-2); position:relative; }
.chef-teaser .avatar img { width:100%; height:100%; object-fit:cover; object-position: center 25%; display:block; }
.chef-teaser .avatar .ph { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:var(--text-3); }
.chef-teaser .avatar .ph svg { width:34px; height:34px; opacity:.5; }
.chef-teaser h3 { margin:0 0 4px; }
.chef-teaser p { margin:0; color: var(--text-2); font-size:.97rem; }
@media (max-width:680px){
  .chef-teaser { grid-template-columns: auto 1fr; gap:16px; text-align:left; }
  .chef-teaser .btn { grid-column: 1 / -1; width:100%; }
}

/* Final CTA */
.rcta { position:relative; overflow:hidden; isolation:isolate; color:#fff; text-align:center;
  padding: clamp(56px,9vw,120px) var(--gut); border-radius: var(--radius-lg); }
.rcta img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; }
.rcta::after { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(160deg, rgba(12,32,21,.92), rgba(12,32,21,.6)); }
.rcta h2 { color:#fff; max-width: 18ch; margin-inline:auto; }
.rcta p { color: rgba(255,255,255,.9); max-width: 48ch; margin: 18px auto 32px; font-size:1.1rem; }
