/* Photographic art direction and hero positioning fixes. */
.hero-card { transform: translate(-50%, -48%); }
.portrait {
  background-image: linear-gradient(#ffffff00, #2a241e33), url('assets/riding-service.png');
  background-position: center 40%;
}
.arch-wide {
  background-image: url('assets/riding-gallery.png');
  background-position: center 58%;
}
.img-a { background-image: url('assets/horse-portrait.png'); background-position: center 36%; }
.img-b { background-image: url('assets/riding-service.png'); background-position: center 52%; }
.img-c { background-image: url('assets/riding-gallery.png'); background-position: 22% center; }
.img-d { background-image:url('assets/riding-service.png');background-position:72% center; }
.services2 { padding-left:max(20px,calc((100% - 1120px)/2));padding-right:max(20px,calc((100% - 1120px)/2)); }
.service-list { grid-template-columns:repeat(4,minmax(0,1fr)); }
.horse-card { background-image: url('assets/horse-portrait.png'); }
.horse-card.h1 { background-position: 48% 30%; }
.horse-card.h2 { background-image: url('assets/riding-service.png'); background-position: 34% center; }
.horse-card.h3 { background-position: 62% 38%; filter: sepia(.25) saturate(.7); }
.horse-card.h4 { background-image: url('assets/riding-service.png'); background-position: 70% center; }
.gallery-strip > div:first-child,
.gallery-strip > div:last-child { background-image: url('assets/horse-portrait.png'); background-position: center 36%; }
.gallery-strip .main-shot { background-image: url('assets/riding-gallery.png'); background-position: center; }
.booking2 { background-image: linear-gradient(90deg,#292b23ed 0 55%,#292b2388),url('assets/riding-gallery.png'); }

@media (max-width: 760px) {
  .hero-card { left: 50%; right: auto; transform: translate(-50%, -48%); }
}

/* Browser review refinements */
.hero-card {
  width: min(900px, 90vw);
  height: auto;
  min-height: 430px;
  background: none;
  border: 0;
}
.hero-card h1 { text-shadow: 0 3px 30px rgba(7,18,14,.38); }
.about-band { background:#292a20;padding:0; }
.about-band .mini-hero { width:100%;height:520px;margin:0;background-position:center 52%; }
.about-band .mini-hero h2 { font-size:clamp(44px,6vw,76px);letter-spacing:.1em; }
.about-band .about-text { width:100%;margin:0;background:#ae6c54;padding:80px max(40px,calc((100% - 900px)/2)); }
.about-band .arch-wide { width:100%;height:360px; }
.logo img { grid-row:1/3;width:40px;height:40px;object-fit:contain;transform:scale(1.3); }
.logo.logo-full { display:block;width:78px;height:54px;overflow:hidden; }
.logo.logo-full img { display:block;width:78px;height:78px;object-fit:contain;object-position:center top;transform:none;filter:invert(1);mix-blend-mode:normal; }
footer .logo.logo-full { width:110px;height:76px; }
footer .logo.logo-full img { width:110px;height:110px; }
.gallery2 { overflow: hidden; }
.gallery-controls { width:min(900px,calc(100% - 40px));margin:-30px auto 22px;display:flex;align-items:center;justify-content:flex-end;gap:12px; }
.gallery-controls span { font-size:8px;letter-spacing:.16em;text-transform:uppercase; }
.gallery-controls button { width:38px;height:38px;border:1px solid #a99c88;border-radius:50%;background:transparent;cursor:pointer; }
.gallery-strip { display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;padding:0 max(20px,calc((100vw - 900px)/2)) 18px; }
.gallery-strip .gallery-shot { display:block;flex:0 0 min(650px,72vw);height:340px;scroll-snap-align:center;filter:none; }
.gallery-strip .shot-horse,.gallery-strip .shot-horse-two { background-image:url('assets/horse-portrait.png'); }
.gallery-strip .shot-riders { background-image:url('assets/riding-service.png');background-position:center 48%; }
.gallery-strip .shot-landscape { background-image:url('assets/hero.png');background-position:center; }
.gallery-strip .shot-horse-two { background-position:58% 35%; }
.logo b { white-space:nowrap; }
.booking2 {
  grid-template-columns:minmax(380px,.95fr) minmax(440px,1.05fr);
  gap:clamp(64px,6vw,96px);
  padding:100px max(48px,calc((100% - 1120px)/2));
}
.booking-copy { min-width:0;max-width:510px;padding-right:8px; }
.booking2 h2 { max-width:100%;margin:20px 0 28px;font-size:clamp(48px,4.6vw,60px);line-height:.98;letter-spacing:.075em; }
.booking2 form { width:100%;min-width:0;padding:32px;color:#37332c; }
.booking2 input,.booking2 select { color:#37332c;font-size:10px; }
.booking2 input::placeholder { color:#756e62;opacity:1; }
.calendar-head { display:grid;grid-template-columns:36px 1fr 36px;align-items:center;text-align:center;margin-bottom:14px; }
.calendar-head strong { color:#37332c;font:600 23px 'Cormorant Garamond';text-transform:uppercase;letter-spacing:.08em; }
.calendar-head button,.calendar-days button,.time-slots button { border:1px solid #a99d89;background:rgba(255,255,255,.22);color:#403b33;cursor:pointer; }
.calendar-head button { width:34px;height:34px;border-radius:50%;padding:0;font-size:14px;letter-spacing:0; }
.calendar-week,.calendar-days { display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center; }
.calendar-week { margin-bottom:7px;color:#625c52;font-size:9px;font-weight:600;text-transform:uppercase; }
.calendar-week span { padding:5px 0; }
.calendar-days button,.calendar-days span { aspect-ratio:1;display:grid;place-items:center;font:500 11px Montserrat; }
.calendar-days button { border-color:#b7ab97;background:rgba(255,255,255,.28); }
.calendar-days button:hover:not(:disabled),.calendar-days button.selected { background:#b97055;color:#fff;border-color:#b97055; }
.calendar-days button:disabled { border-color:#d2c6b2;background:rgba(255,255,255,.1);color:#9c9283;opacity:.72;cursor:not-allowed;text-decoration:none; }
.time-area { border-top:1px solid #cfc4b2;margin-top:14px;padding-top:13px; }
.time-area>small { display:block;margin-bottom:9px;color:#625c52;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.12em; }
.time-slots { display:flex;gap:6px;flex-wrap:wrap; }
.time-slots p { margin:0;color:#756e62;font-size:10px;line-height:1.5; }
.time-slots button { padding:8px 10px;font:500 10px Montserrat;letter-spacing:0; }
.time-slots button:hover:not(:disabled),.time-slots button.selected { background:#747562;color:#fff; }
.time-slots button:disabled { opacity:.25;text-decoration:line-through;cursor:not-allowed; }
.booking-status { min-height:16px;margin:0;text-align:center;color:#9a523d;font-size:9px;line-height:1.4; }
.booking2 form>button:disabled { opacity:.55;cursor:wait; }

@media (max-width:900px) {
  html,body { width:100%;max-width:100%;overflow-x:hidden; }
  .booking2 { grid-template-columns:1fr;padding:72px 32px;gap:34px; }
  .booking-copy,.booking2 form { width:min(560px,100%);margin:0 auto; }
  .booking2 form { padding:28px; }
  footer { grid-template-columns:1fr 1fr;gap:30px;padding-left:32px;padding-right:32px; }
  footer .logo { grid-column:1/-1; }
}

@media (max-width:1050px) and (min-width:901px) {
  .booking2 { grid-template-columns:1fr;padding:80px 48px;gap:42px; }
  .booking-copy,.booking2 form { width:min(600px,100%);margin:0 auto; }
}

@media (max-width:1100px) and (min-width:761px) {
  .service-list { grid-template-columns:repeat(2,minmax(0,1fr));max-width:760px;margin:auto; }
}

@media (max-width:760px) {
  html,body { width:100%;max-width:100%;overflow-x:hidden; }
  .topbar { width:calc(100% - 32px);height:72px; }
  .topbar .logo b { font-size:12px;letter-spacing:.14em; }
  .topbar .logo.logo-full { width:58px;height:40px; }
  .topbar .logo.logo-full img { width:58px;height:58px; }
  .hero2 { height:680px;min-height:100svh; }
  .hero-card { width:calc(100% - 32px);min-height:390px;padding:30px 12px;top:49%; }
  .hero-card p { font-size:7px;line-height:1.5;letter-spacing:.15em; }
  .hero-card h1 { width:100%;font-size:clamp(38px,12.5vw,54px);line-height:.82;letter-spacing:.055em;margin:28px 0 22px;overflow-wrap:normal; }
  .hero-card span { font-size:10px;letter-spacing:.2em; }
  .scroll { bottom:22px; }
  .intro { width:100%;padding:64px 20px; }
  .portrait { width:100%;max-width:390px;height:400px;margin:auto; }
  .intro-copy h2,.section-title { font-size:32px; }
  .statement { height:330px;padding:30px 22px;font-size:21px; }
  .outline-horse { font-size:190px; }
  .about-band { padding-top:0; }
  .about-band .mini-hero { width:100%;height:360px;padding:20px;text-align:center; }
  .mini-hero h2 { max-width:100%;font-size:clamp(31px,9vw,48px);line-height:1;letter-spacing:.06em; }
  .about-band .about-text { width:100%;padding:48px 18px; }
  .arch-wide { height:210px;border-radius:120px 120px 0 0; }
  .facts { gap:6px; }
  .facts span { font-size:7px; }
  .services2,.horses2 { padding-left:16px;padding-right:16px; }
  .service-list { width:100%;grid-template-columns:1fr; }
  .card-img { height:280px; }
  .horse-grid { gap:10px; }
  .horse-card { height:250px;border-radius:90px 90px 0 0; }
  .gallery2 { padding:70px 0; }
  .gallery-controls { width:calc(100% - 32px);margin:-28px auto 18px;justify-content:center; }
  .gallery-controls span { font-size:7px; }
  .gallery-strip { display:flex;grid-template-columns:none; }
  .gallery-strip .gallery-shot,.gallery-strip .gallery-shot:not(.main-shot) { display:block;flex-basis:84vw;height:300px; }
  .gallery2>p:last-child { padding:0 22px;line-height:1.5; }
  .booking2 { width:100%;padding:62px 20px;gap:24px; }
  .booking2 { grid-template-columns:1fr; }
  .booking2 h2 { font-size:clamp(35px,11vw,48px);line-height:1;letter-spacing:.07em; }
  .booking2 form { width:100%;padding:28px 22px; }
  footer { padding:42px 22px; }
  footer .logo { max-width:100%; }
  footer .logo b { font-size:12px;letter-spacing:.12em; }
}

@media (max-width:380px) {
  .hero-card h1 { font-size:36px; }
  .horse-grid { grid-template-columns:1fr; }
  .horse-card { width:min(270px,100%);margin:auto; }
  .facts { grid-template-columns:1fr;gap:18px; }
  .facts div { border-right:0;border-bottom:1px solid #f3dfc433;padding-bottom:14px; }
}
