/* Contact page grid layout */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
.contact-col {
  background: #fff;
  border-radius: 8px;
  padding: 1.5rem;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.contact-form {
  min-width: 0;
}
.contact-map {
  min-width: 0;
}
.map-wrap iframe {
  width: 100%;
  min-height: 260px;
  border-radius: 8px;
  border: 1px solid #eee;
}
.contact-details {
  margin-top: 1.5rem;
}
@media (max-width: 900px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 1.2rem;
  }
  .contact-col {
    padding: 1rem;
  }
}
/* Basic fluid layout and shared styles */
:root{--accent:#6d0101;--muted:#666}
*{box-sizing:border-box}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial;line-height:1.5;margin:0;color:#222}
.banner{background:linear-gradient(90deg,var(--accent),#2aa08b);color:#fff;padding:.8rem;font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:space-between;position:sticky;top:0;z-index:1001;}
.banner-top{display:flex;flex:1;align-items:center;justify-content:space-between}
.banner-title{font-weight:600;float:left;margin-right:auto}
.banner .contact-inline{display:flex;gap:.5rem;align-items:center;margin-left:auto;float:right}
.banner .contact-inline .phone {
  color: #fff !important;
  text-decoration: none !important;
  padding: .2rem .5rem;
  border-radius: 6px;
  background: rgba(255,255,255,0.08);
  font-weight: 700;
}
.payment-inline{display:flex;gap:.5rem;align-items:center;margin-left:auto;float:right}
@media (max-width:780px){
  .banner {
    padding: .6rem;
    flex-direction: column;
    align-items: stretch;
  }
  .banner-top {
    flex-direction: column;
    align-items: stretch;
  }
  .banner-title {
    text-align: left;
    float: none;
    margin-right: 0;
  }
  .banner .contact-inline, .payment-inline {
    justify-content: flex-end;
    float: none;
    margin-left: 0;
  }
}
.main-nav{background:#fff;border-bottom:1px solid #eee;position:sticky;top:calc(3.2rem + 1.6rem);z-index:1000}
.main-nav ul{list-style:none;margin:0 auto;padding:0;display:flex;gap:1rem;overflow:auto;width:90%;max-width:1100px;justify-content:center;align-items:center}
.main-nav a{display:block;padding:.8rem 1rem;color:#222;text-decoration:none}
.main-nav a.active,.main-nav a:hover{background:var(--accent);color:#fff}
.container{width:90%;max-width:1100px;margin:1.25rem auto}
.hero{padding:2rem;background:#f9f9f9;border-radius:8px;margin-bottom:1rem}
.hero-grid{
  display:grid;
  grid-template-columns: 1fr 280px;
  gap: 1rem;
  align-items:start;
}
.hero-content h1{margin-top:0}
.opening-hours-widget{
  width:280px;
  max-width:100%;
  margin:0;
  padding:1rem;
  background:#fff;
  border:1px solid #eee;
  border-radius:8px;
  box-shadow:0 2px 12px rgba(0,0,0,0.04);
}
.opening-hours-title{margin:0 0 .75rem 0;font-size:1.05rem}
.opening-hours-list{margin:0}
.opening-hours-list{font-size:.95rem;line-height:1.2}
.opening-hours-list div{display:flex;justify-content:space-between;gap:.5rem;padding:.12rem 0}
.opening-hours-list dt{font-weight:700}
.opening-hours-list dd{margin:0;color:var(--muted);text-align:right}
@media (max-width:780px){
  .hero-grid{grid-template-columns:1fr}
  .opening-hours-widget{width:auto}
}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:.6rem 1rem;border-radius:5px;text-decoration:none}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
/* Feature articles: images below text, keep natural size */
.features article{display:block}
.features article img{display:block;margin:0.75rem auto 0 auto;border-radius:6px;max-width:100%;height:auto}
.features article p{margin:0} .site-footer{background:#f5f5f5;padding:1.25rem 0;margin-top:2rem}
.site-footer .container{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.footer-columns{display:flex;align-items:flex-start;gap:3rem;flex-wrap:wrap}
.footer-address{margin:0}
.footer-hours{min-width:220px}
.footer-hours strong{display:inline-block;margin-bottom:.25rem}
.footer-left address{font-style:normal;line-height:1.4}
.footer-left small{display:block;margin-top:.5rem;color:var(--muted)}
.footer-right{display:flex;gap:1rem}
.footer-right img{width:120px;height:120px;object-fit:cover;border-radius:6px;border:1px solid #eee}
@media (max-width:600px){
  .site-footer .container{flex-direction:column;text-align:center}
  .footer-columns{flex-direction:column;align-items:center;gap:1rem}
  .footer-hours{min-width:auto}
  .footer-right{justify-content:center}
  .footer-right img{margin:0}
} 
/* Products area */
#product-app {
  display: grid;
  grid-template-columns:220px 1fr;
  gap:1rem;
  align-items:start;
}
.categories{background:#fff;padding:1rem;border-radius:6px;border:1px solid #eee}
.category{display:block;padding:.5rem .6rem;margin:.25rem 0;border-radius:4px;border:1px solid transparent;cursor:pointer;color:#222;text-decoration:none;background:transparent;text-align:left}
.category.active{background:var(--accent);color:#fff}
.gallery{display:grid;grid-template-columns:repeat(2, 1fr);gap:1.5rem;padding:1.25rem;border-radius:6px;border:1px solid #eee;background:#fff}
.product-image {
  width: 100%;
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
  border-radius: 8px;
  object-fit: contain;
}
@media (max-width:900px) {
  #product-app {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width:600px) {
  #product-app {
    grid-template-columns: 1fr;
  }
}

/* Kennels page slideshow */
.kennels-hero{display:grid;grid-template-columns:1fr 3fr;gap:1rem;align-items:start}
.slideshow{position:relative;border:1px solid #eee;border-radius:8px;overflow:hidden;background:#fafafa;display:flex;align-items:center;justify-content:center;padding:1rem}
.slideshow img{max-width:100%;height:auto;display:block}
.slide-prev,.slide-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.95);border:0;width:40px;height:40px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer}
.slide-prev{left:8px}
.slide-next{right:8px}
.kennels-copy article{margin-bottom:1rem}
.kennels-features{margin:0;padding-left:1.1rem}
@media (max-width:780px){.kennels-hero{grid-template-columns:1fr;}.slide-prev,.slide-next{display:none}}

/* Sage page */
.sage-top{display:block;text-align:center;margin-bottom:1rem}
.sage-logo{display:inline-block;max-width:320px;height:auto}
.video-wrap{position:relative;padding-top:56.25%;height:0;overflow:hidden;border-radius:8px;margin-top:1rem}
.video-wrap iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
.sage-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
.sage-columns .col{background:#fff;padding:1rem;border-radius:6px;border:1px solid #eee}
.sage-columns .muted{color:var(--muted)}
@media (max-width:780px){.sage-columns{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid #eee;padding:.5rem;border-radius:6px;text-align:center;cursor:pointer;transition:transform .12s ease}
 .card img{width:100%;height:auto;object-fit:contain;border-radius:4px;cursor:pointer;display:block}
.card img.loading{filter:blur(8px);transform:scale(1.02);transition:filter .35s,transform .35s}
.card img.loaded{filter:none;transform:none}
.card:focus{outline:3px solid rgba(109,1,1,0.12);outline-offset:2px}
.card:hover{transform:translateY(-3px)}
.card .desc{font-size:.9rem;color:var(--muted);padding-top:.4rem}/* Modal / lightbox */
.modal{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1000;visibility:hidden;opacity:0;transition:opacity .2s ease;pointer-events:none}
.modal.open{visibility:visible;opacity:1;pointer-events:auto}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.modal-content{position:relative;background:#fff;border-radius:8px;max-width:92%;max-height:92%;padding:1rem;z-index:10;overflow:auto;box-shadow:0 8px 30px rgba(0,0,0,.4)}
.modal-content img{max-width:100%;height:auto;display:block;margin:0 auto;border-radius:4px}
#modal-image{transition:opacity .25s ease;opacity:1;cursor:pointer}
#modal-image.loading{opacity:0}
.modal-index{margin-top:.5rem;color:var(--muted);font-size:.85rem;text-align:center}
.modal-desc{margin-top:.75rem;color:var(--muted);font-size:.95rem}
.modal-close{position:absolute;right:.5rem;top:.25rem;background:transparent;border:0;font-size:1.6rem;line-height:1;color:#333;cursor:pointer}
.modal-prev,.modal-next{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.95);border:0;width:44px;height:44px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:24px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.modal-prev{left:-18px}
.modal-next{right:-18px}
@media (max-width:800px){
  .modal-prev,.modal-next{display:none}
}
@media (max-width:600px){
  .modal-content{width:94%;padding:.75rem}
}
/* Responsive */
@media (max-width:780px){
  #product-app{grid-template-columns:1fr}
  .main-nav ul{flex-wrap:wrap}
}
/* small form styles */
form{display:grid;gap:.5rem;max-width:480px}
input,textarea{padding:.5rem;border:1px solid #ccc;border-radius:4px}
label{font-weight:600;font-size:.9rem}
.links-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  padding: 1rem;
  border-radius: 6px;
  border: 1px solid #eee;
  background: #fff;
}
.links-grid .card img {
  width: 100%;
  height: auto;
  max-width: 180px;
  margin: 0 auto;
  display: block;
  border-radius: 6px;
  object-fit: contain;
}
@media (max-width: 900px) {
  .links-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 600px) {
  .links-grid {
    grid-template-columns: 1fr;
  }
}

/* Cookie consent footer banner */
.cookie-consent {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1200;
  background: #222;
  color: #fff;
  padding: 0.8rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.cookie-consent[hidden] {
  display: none;
}

.cookie-consent__content {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.cookie-consent__message {
  margin: 0;
  font-size: 0.95rem;
}

.cookie-consent__link {
  color: #fff;
  text-decoration: underline;
  white-space: nowrap;
}

.cookie-consent__button {
  background: var(--accent);
  color: #fff;
  border: 0;
  border-radius: 4px;
  padding: 0.5rem 1.1rem;
  font-size: 0.95rem;
  cursor: pointer;
}

.cookie-consent__button:hover {
  filter: brightness(1.05);
}

/* Prevent the fixed banner from covering content */
body.cookie-consent-open {
  padding-bottom: 6rem;
}

@media (max-width: 600px) {
  .cookie-consent {
    justify-content: center;
    text-align: center;
  }
  .cookie-consent__content {
    justify-content: center;
  }
}
