.visits-page { background: var(--paper); }
.visit-header { color: var(--paper); }
.visit-hero { position: relative; min-height: 740px; height: max(100svh, 740px); overflow: hidden; color: var(--paper); background: var(--forest); }
.visit-hero-photo { position: absolute; inset: 0; background: url("assets/microferme-visites.jpg") center 43% / cover no-repeat; transform: scale(1.01); }
.visit-hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(17, 41, 33, 0.8) 0%, rgba(17, 41, 33, 0.43) 45%, rgba(17, 41, 33, 0.02) 77%), linear-gradient(0deg, rgba(17, 41, 33, 0.27), transparent 42%); }
.visit-hero-content { position: relative; z-index: 1; display: flex; min-height: inherit; padding-top: clamp(183px, 27vh, 270px); padding-bottom: 108px; flex-direction: column; align-items: flex-start; }
.visit-hero h1 { max-width: 780px; margin: 0; font-family: var(--display); font-size: clamp(58px, 8vw, 112px); font-weight: 500; letter-spacing: -0.06em; line-height: .91; }
.visit-hero h1 em { color: var(--straw); font-weight: 500; }
.visit-hero-content > p:not(.eyebrow) { max-width: 440px; margin: 29px 0 35px; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.48; }

.visit-intro { padding: 125px 0 115px; background: var(--paper); }
.visit-intro-grid { display: grid; grid-template-columns: 1.06fr .86fr; gap: clamp(55px, 11vw, 165px); }
.visit-intro h2 { max-width: 620px; }
.visit-body-copy { max-width: 465px; padding-top: 39px; color: var(--muted); font-size: 17px; }
.visit-body-copy p:first-child { margin-top: 0; }
.visit-body-copy strong { color: var(--forest); }

.animal-section { padding: 116px 0 128px; color: var(--paper); background: var(--forest); }
.animal-section-heading { margin-bottom: 57px; }
.animal-section .eyebrow { color: var(--clay-light); }
.animal-section .section-title { max-width: 670px; margin-bottom: 0; }
.animal-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.animal-card { display: flex; min-height: 392px; padding: 13px 13px 25px; flex-direction: column; color: var(--forest); background: #e6d9bc; }
.animal-card-featured { color: var(--paper); background: #bd684b; }
.animal-card-straw { background: #f2ead9; }
.animal-card-clay { color: var(--paper); background: #a95843; }
.animal-card-deep { color: var(--paper); background: #456458; }
.animal-card-alpaca { background: #ddb57a; }
.animal-card-photo { display: grid; aspect-ratio: 1; margin-bottom: 20px; overflow: hidden; place-items: center; color: rgba(39,72,63,.62); background: rgba(255,253,248,.46); }
.animal-card-photo span { padding: 8px 10px; border: 1px solid currentColor; font-size: 9px; font-weight: 700; letter-spacing: .12em; line-height: 1; text-transform: uppercase; }
.animal-card-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.animal-photo-doudou img { object-position: center; }
.animal-photo-lapins img { object-position: center; }
.animal-photo-alpacas img { object-position: center; }
.animal-card-featured .animal-card-photo, .animal-card-clay .animal-card-photo, .animal-card-deep .animal-card-photo { color: rgba(255,253,248,.78); background: rgba(255,253,248,.12); }
.animal-card h3 { margin: auto 13px 7px; font-family: var(--display); font-size: 25px; font-weight: 600; letter-spacing: -.04em; line-height: 1.1; }
.animal-card p { max-width: 275px; margin: 0 13px; font-size: 13px; line-height: 1.52; }

.visit-practical { padding: 120px 0 125px; color: var(--paper); background: #1b392f; }
.practical-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(55px, 10vw, 155px); }
.practical-heading .eyebrow { color: var(--clay-light); }
.practical-heading h2 { max-width: 480px; }
.practical-heading > p:not(.eyebrow) { max-width: 385px; margin-top: 24px; color: rgba(255,253,248,.72); font-size: 16px; }
.practical-details { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; align-content: start; }
.schedule-card { min-height: 190px; padding: 26px; color: var(--forest); background: var(--straw); }
.schedule-label { display: block; margin-bottom: 31px; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.schedule-card p, .free-price-card p { margin: 0; font-family: var(--display); font-size: clamp(25px, 2.5vw, 34px); font-weight: 500; letter-spacing: -.045em; line-height: 1.1; }
.free-price-card { grid-column: span 2; padding: 34px; color: var(--paper); background: var(--clay); }
.free-price-card .schedule-label { margin-bottom: 17px; color: #f5d4c0; }
.free-price-card p em { color: var(--straw); font-weight: 500; }
.free-price-note { display: block; max-width: 360px; margin-top: 17px; font-size: 13px; line-height: 1.5; }

.contact-visits { background: #f4ecde; }
.contact-visits .contact-card { color: var(--forest); background: var(--straw); }
.contact-visits .contact-copy .eyebrow { color: var(--clay); }
.contact-visits .contact-copy p:not(.eyebrow) { color: var(--muted); }
.contact-visits .contact-action { border-color: rgba(39,72,63,.28); }
.contact-visits .contact-action:hover { color: var(--clay); }

@media (max-width: 760px) {
  .visit-hero { min-height: 650px; height: 100svh; }
  .visit-hero-photo { background-position: 57% center; }
  .visit-hero-overlay { background: linear-gradient(90deg, rgba(17,41,33,.77), rgba(17,41,33,.2) 115%), linear-gradient(0deg, rgba(17,41,33,.3), transparent 44%); }
  .visit-hero-content { padding-top: 163px; padding-bottom: 90px; }
  .visit-hero h1 { font-size: clamp(54px, 15vw, 73px); }
  .visit-hero-content > p:not(.eyebrow) { max-width: 310px; font-size: 17px; }
  .visit-intro, .animal-section, .visit-practical { padding: 82px 0; }
  .visit-intro-grid, .practical-grid { grid-template-columns: 1fr; gap: 29px; }
  .visit-body-copy, .visit-cta-copy { padding-top: 0; }
  .animal-section-heading { margin-bottom: 37px; }
  .animal-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .animal-card { min-height: 0; padding: 10px 10px 20px; }
  .animal-card-photo { margin-bottom: 16px; }
  .animal-card h3 { margin-right: 10px; margin-left: 10px; font-size: 21px; }
  .animal-card p { margin-right: 10px; margin-left: 10px; font-size: 12px; }
  .practical-details { grid-template-columns: 1fr; }
  .schedule-card { min-height: 0; padding: 25px; }
  .schedule-label { margin-bottom: 19px; }
  .free-price-card { grid-column: auto; padding: 28px 25px; }
}

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