/* Targeted homepage refinements. Header, footer and booking rules are unchanged. */

/* Four distinct, quiet cards with a consistent icon and text rhythm. */
.facts.visit-highlights{border:0}
.facts.visit-highlights ul{
  grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;
  padding:0;background:none;list-style:none;
}
.facts.visit-highlights li,.facts.visit-highlights li:nth-child(n){
  display:flex;flex-direction:column;align-items:flex-start;gap:18px;
  padding:24px;border:1px solid var(--line-strong);border-radius:20px;
  background:var(--white,#fff);min-width:0;
}
.visit-highlights .highlight-icon{
  display:flex;align-items:center;justify-content:center;flex:none;
  width:40px;height:40px;border-radius:50%;background:var(--sage-tint);color:var(--forest);
}
.facts.visit-highlights .ico{display:block;width:22px;height:22px;color:inherit}
.visit-highlights h3{font-size:1.25rem;line-height:1.25;margin:0 0 10px;text-wrap:wrap}
.visit-highlights p{font-size:1rem;line-height:1.5;color:var(--muted);margin:0}

/* Keep the four original steps; animate only their connecting line. */
.steps.visit-steps{position:relative;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;border:0}
.steps.visit-steps::before,.steps.visit-steps::after{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;border-radius:3px;
  background:var(--sage-soft);pointer-events:none;
}
.steps.visit-steps::after{background:var(--moss);transform-origin:left center}
.steps.visit-steps.will-animate::after{transform:scaleX(0)}
.steps.visit-steps.will-animate.is-visible::after{animation:visit-line-across 1.8s cubic-bezier(.22,.61,.36,1) both}
.steps.visit-steps li{padding:26px 0 0;border:0;grid-template-columns:minmax(0,1fr);gap:10px}
.steps.visit-steps li::before{font-size:3rem;line-height:1;color:var(--moss);margin-bottom:6px;grid-row:auto}
.steps.visit-steps b{font-size:1.125rem;line-height:1.45}
.steps.visit-steps p{font-size:1rem;line-height:1.65}
@keyframes visit-line-across{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes visit-line-down{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* Useful advice sits in two open columns, not a row of boxed cards. */
.visit-notes{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(28px,5vw,64px);
  margin-top:clamp(36px,5vw,64px);padding-top:clamp(28px,4vw,44px);border-top:1px solid var(--line-strong);
}
.visit-note{display:grid;grid-template-columns:52px minmax(0,1fr);gap:20px;align-items:start}
.visit-note-icon{
  width:52px;height:52px;display:flex;align-items:center;justify-content:center;
  color:var(--forest);background:var(--paper);border-radius:18px 18px 8px 18px;
}
.visit-note:nth-child(2) .visit-note-icon{background:var(--lilac-soft);color:var(--lilac-ink);border-radius:50%}
.visit-note-icon .ico{width:28px;height:28px}
.visit-note h3{font-size:1.5rem;line-height:1.25;margin:2px 0 12px}
.visit-note p{font-size:1rem;line-height:1.7;color:var(--muted)}
.visit-note .btn{margin-top:18px;max-width:100%}

/* An aligned photo grid with consistent frames and readable captions. */
.room-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px;padding:0}
.room-gallery figure{min-width:0;margin:0}
.room-gallery img{
  display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;
  border:0;border-radius:20px;box-shadow:none;
}
.room-gallery img[src*="baby-grass"]{object-position:50% 40%}
.room-gallery figcaption{
  position:static;padding:14px 8px 0;background:none;color:var(--forest);
  font-family:var(--disp);font-size:1.25rem;font-weight:500;line-height:1.35;
  white-space:normal;overflow-wrap:anywhere;text-align:center;
}

@media(max-width:64rem){
  .facts.visit-highlights ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .room-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}
}
@media(max-width:56.25rem){
  .steps.visit-steps{grid-template-columns:minmax(0,1fr);gap:28px;padding-left:28px}
  .steps.visit-steps::before,.steps.visit-steps::after{top:0;bottom:0;right:auto;width:3px;height:auto}
  .steps.visit-steps::after{transform-origin:center top}
  .steps.visit-steps.will-animate::after{transform:scaleY(0)}
  .steps.visit-steps.will-animate.is-visible::after{animation-name:visit-line-down}
  .steps.visit-steps li{grid-template-columns:44px minmax(0,1fr);padding:0;column-gap:18px;row-gap:8px}
  .steps.visit-steps li::before{grid-row:span 2;margin:0;font-size:2.5rem}
  .visit-notes{grid-template-columns:minmax(0,1fr);gap:32px}
}
@media(max-width:40rem){
  .facts.visit-highlights ul{gap:12px}
  .facts.visit-highlights li,.facts.visit-highlights li:nth-child(n){padding:18px 14px;gap:14px;border-radius:16px}
  .visit-highlights h3{font-size:1.125rem;line-height:1.3;min-height:2.6em;margin-bottom:8px}
  .visit-note{grid-template-columns:44px minmax(0,1fr);gap:16px}
  .visit-note-icon{width:44px;height:44px}
  .visit-note h3{font-size:1.375rem}
  .room-gallery{gap:24px 16px}
  .room-gallery img{border-radius:16px}
  .room-gallery figcaption{padding:12px 2px 0;font-size:1rem}
}
@media(max-width:22.5rem){.room-gallery{grid-template-columns:minmax(0,1fr);max-width:280px;margin-inline:auto}}
@media(prefers-reduced-motion:reduce){
  .steps.visit-steps.will-animate::after,.steps.visit-steps.will-animate.is-visible::after{animation:none;transform:none}
}
