:root{
  --green:#536f16;
  --purple:#4b174c;
  --dark:#151b22;
  --grey:#5f6368;
  --light:#f5f5f2;
  --white:#ffffff;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--grey);line-height:1.7;background:#fff}
a{color:inherit;text-decoration:none}.container{width:min(1120px,92%);margin:auto}.topbar{background:var(--dark);color:#fff;font-size:14px}.topbar .container{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:8px 0}.topbar a{color:#fff}.facebook{color:#8aa13b;font-weight:700}.header{background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.06);position:sticky;top:0;z-index:10}.nav-wrap{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 0}.logo{max-width:340px;height:auto}.nav{display:flex;align-items:center;gap:36px;list-style:none;margin:0;padding:0}.nav a{font-weight:700;color:var(--purple);font-size:18px}.nav a:hover{color:var(--green)}.dropdown{position:relative}.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:#fff;min-width:230px;box-shadow:0 16px 30px rgba(0,0,0,.12);padding:10px 0;border-top:4px solid var(--green)}.dropdown:hover .dropdown-menu{display:block}.dropdown-menu a{display:block;padding:10px 18px;font-size:15px}.hero{position:relative;height:560px;overflow:hidden;background:#ddd}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity 1.8s ease-in-out;z-index:1}.slide.active{opacity:1}.hero::before{content:"";position:absolute;inset:0;background:#ddd;z-index:0}.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,27,34,.65),rgba(21,27,34,.1));z-index:2;pointer-events:none}.hero-content{position:relative;z-index:3;color:#fff;height:100%;display:flex;flex-direction:column;justify-content:center}.hero-content h1{font-size:58px;line-height:1.05;margin:0 0 15px;color:#fff}.hero-content p{font-size:22px;max-width:650px;margin:0 0 28px}.btn{display:inline-block;background:var(--green);color:#fff;padding:13px 24px;border-radius:999px;font-weight:700}.btn:hover{background:var(--purple)}section{padding:70px 0}.intro-grid,.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}h1,h2,h3{color:var(--green);line-height:1.15;margin-top:0}h2{font-size:38px}h3{font-size:26px}.lead{font-size:19px;color:#555}.image-card{width:100%;border-radius:20px;box-shadow:0 20px 40px rgba(0,0,0,.14)}.page-image{height:360px;object-fit:cover}.panel{background:var(--light)}.cards{display:grid;grid-template-columns:repeat(6,1fr);gap:24px}.cards .card{grid-column:span 2}.cards .card:nth-child(4):nth-last-child(2){grid-column:2 / span 2}.card{background:#fff;border-radius:18px;padding:26px;box-shadow:0 12px 30px rgba(0,0,0,.08);border-top:5px solid var(--purple)}.card img{width:100%;height:170px;object-fit:cover;border-radius:14px;margin:-8px 0 18px;display:block}.card h3{color:var(--purple);font-size:22px}.cottage-hero{background:linear-gradient(rgba(21,27,34,.55),rgba(21,27,34,.55)),var(--hero-image, url('images/ballydougan-pottery.jpg')) center/cover;height:360px;display:flex;align-items:center;color:#fff}.cottage-hero h1{color:#fff;font-size:52px}.cottage-hero .lead{color:#fff}.facilities{columns:2;padding-left:20px}.price-table{width:100%;border-collapse:collapse;margin-top:22px;background:#fff}.price-table th{background:var(--purple);color:#fff}.price-table th,.price-table td{padding:14px;border:1px solid #ddd;text-align:center}.contact-box{background:var(--purple);color:#fff;border-radius:20px;padding:34px}.contact-box h3{color:#fff}.footer{background:var(--dark);color:#d8d8d8;padding:34px 0;text-align:center}.footer span{color:#9aaa46}form{display:grid;gap:14px}input,textarea{width:100%;padding:14px;border:1px solid #ddd;border-radius:10px;font:inherit}button{border:0;cursor:pointer}@media(max-width:850px){.topbar .container,.nav-wrap{flex-direction:column;text-align:center}.nav{flex-wrap:wrap;justify-content:center;gap:18px}.dropdown-menu{position:static;box-shadow:none;border-top:0}.hero{height:440px}.hero-content h1{font-size:40px}.intro-grid,.feature-grid{grid-template-columns:1fr}.cards{grid-template-columns:1fr}.cards .card,.cards .card:nth-child(4):nth-last-child(2){grid-column:auto}.facilities{columns:1}}
.tariff-note { margin-top: 16px; color: #666; font-size: 0.95rem; line-height: 1.6; }
.gallery-section{padding-top:10px;background:#fff}
.image-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
.image-gallery img{width:100%;height:250px;object-fit:cover;border-radius:18px;box-shadow:0 12px 28px rgba(0,0,0,.12);display:block}
@media(max-width:850px){.image-gallery{grid-template-columns:1fr}.image-gallery img{height:260px}}


/* Clickable image popup with image scrolling */
img:not(.logo) { cursor: pointer; }
.lightbox { display:none; position:fixed; z-index:9999; inset:0; background:rgba(0,0,0,.88); align-items:center; justify-content:center; padding:30px 80px; }
.lightbox.open { display:flex; }
.lightbox img { max-width:92vw; max-height:86vh; object-fit:contain; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.45); cursor:default; }
.lightbox-close,.lightbox-prev,.lightbox-next { position:absolute; color:#fff; cursor:pointer; background:rgba(0,0,0,.25); border:1px solid rgba(255,255,255,.35); transition:.2s ease; }
.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover { background:rgba(255,255,255,.18); }
.lightbox-close { top:20px; right:30px; font-size:42px; line-height:1; font-weight:300; border-radius:50%; width:52px; height:52px; }
.lightbox-prev,.lightbox-next { top:50%; transform:translateY(-50%); font-size:48px; line-height:1; width:58px; height:58px; border-radius:50%; }
.lightbox-prev { left:24px; }
.lightbox-next { right:24px; }
.lightbox-caption { position:absolute; bottom:18px; left:30px; right:30px; color:#fff; text-align:center; font-size:15px; }
.lightbox-counter { position:absolute; top:28px; left:30px; color:#fff; font-size:14px; background:rgba(0,0,0,.35); padding:7px 12px; border-radius:999px; }
@media(max-width:850px){ .lightbox{padding:20px 55px}.lightbox-prev,.lightbox-next{width:44px;height:44px;font-size:34px}.lightbox-prev{left:8px}.lightbox-next{right:8px} }

/* Updated Facebook link */
.facebook{color:#1877f2;font-weight:700;display:inline-flex;align-items:center;gap:6px}
.facebook-icon{font-size:32px;line-height:1;color:#1877f2;font-family:Arial,Helvetica,sans-serif;font-weight:900}

/* Updated cottage gallery captions */
.image-gallery figure{margin:0;position:relative;overflow:hidden;border-radius:18px;box-shadow:0 12px 28px rgba(0,0,0,.12);cursor:pointer;background:#fff}
.image-gallery figure img{height:250px;border-radius:0;box-shadow:none;transition:transform .35s ease}
.image-gallery figure:hover img{transform:scale(1.05)}
.image-gallery figcaption{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.62);color:#fff;text-align:center;padding:9px 10px;font-size:14px;font-weight:700}

/* Contact page map */
.map-section{padding-top:20px;background:#fff}
.map-section h2{color:var(--green);margin-bottom:15px}
.map-section iframe{border-radius:14px;box-shadow:0 12px 28px rgba(0,0,0,.12);display:block}

/* Contact form and thank-you page */
.contact-form label{font-weight:700;color:var(--purple);margin-bottom:-6px}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:14px;border:1px solid #ddd;border-radius:10px;font:inherit;background:#fff;color:var(--grey)}
.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus{outline:2px solid rgba(139,161,59,.35);border-color:var(--green)}
.contact-form select{appearance:auto}
.thankyou-section{min-height:55vh;display:flex;align-items:center;background:var(--light);text-align:center}
.thankyou-card{background:#fff;border-radius:22px;padding:60px 30px;box-shadow:0 15px 35px rgba(0,0,0,.08)}
.thankyou-card h1{font-size:48px;margin-bottom:10px}

/* Updated contact page layout */
.contact-page-section {
  padding: 70px 0;
}

.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: stretch;
}

.contact-left {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.contact-left .contact-box {
  margin: 0;
}

.map-container {
  flex: 1;
  min-height: 340px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}

.map-container iframe {
  display: block;
  width: 100%;
  height: 100%;
}

.contact-right {
  display: flex;
  flex-direction: column;
}

.contact-right .contact-form {
  flex: 1;
}

@media(max-width:850px){
  .contact-layout {
    grid-template-columns: 1fr;
  }

  .map-container {
    min-height: 360px;
  }
}

/* Homepage updates */
.hero-content .hero-btn{
  align-self:flex-start;
  margin-top:auto;
  margin-bottom:34px;
  padding:9px 18px;
  font-size:14px;
}
.contact-bar{
  background:var(--purple);
  color:#fff;
  text-align:center;
  padding:22px 0;
  font-size:17px;
}
.contact-bar strong{
  color:#fff;
  font-size:20px;
}
.contact-bar a{
  color:#fff;
  font-weight:700;
  text-decoration:underline;
}
@media(max-width:850px){
  .hero-content .hero-btn{
    margin-bottom:24px;
  }
}

/* Mobile spacing and subtle modern animations */
html{scroll-behavior:smooth}
body{overflow-x:hidden}
.header,.topbar{animation:softDrop .55s ease both}
.hero-content h1,.hero-content p,.hero-content .btn{animation:fadeUp .75s ease both}
.hero-content p{animation-delay:.12s}
.hero-content .btn{animation-delay:.22s}
.slide.active{animation:gentleZoom 7s ease both}
section .container{animation:fadeUp .65s ease both}
.card,.image-card,.image-gallery figure,.contact-box,.thankyou-card{transition:transform .28s ease,box-shadow .28s ease}
.card:hover,.image-card:hover,.image-gallery figure:hover,.contact-box:hover,.thankyou-card:hover{transform:translateY(-4px);box-shadow:0 18px 42px rgba(0,0,0,.14)}
.btn{transition:background .25s ease,transform .25s ease,box-shadow .25s ease}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.18)}
.nav a{transition:color .2s ease}
.dropdown-menu{animation:fadeDown .22s ease both}

@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeDown{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes softDrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes gentleZoom{from{transform:scale(1)}to{transform:scale(1.035)}}

@media(max-width:850px){
  body{font-size:16px;line-height:1.65}
  .container{width:min(100% - 32px,1120px)}
  .topbar .container{gap:8px;padding:10px 0;font-size:13px;line-height:1.45}
  .facebook-icon{font-size:24px}
  .nav-wrap{gap:14px;padding:14px 0}
  .logo{max-width:255px;width:100%}
  .nav{gap:10px 18px}
  .nav a{font-size:16px}
  .dropdown-menu{width:100%;padding:6px 0;background:#f8f8f5;border-radius:12px;margin-top:8px}
  .dropdown-menu a{font-size:14px;padding:8px 12px}
  .hero{height:520px}
  .hero::after{background:linear-gradient(180deg,rgba(21,27,34,.28),rgba(21,27,34,.72))}
  .hero-content{justify-content:flex-end;text-align:left;padding-bottom:88px}
  .hero-content h1{font-size:36px;line-height:1.08;margin-bottom:12px;max-width:340px}
  .hero-content p{font-size:17px;line-height:1.55;max-width:360px;margin-bottom:18px}
  .hero-content .hero-btn{margin-bottom:0;align-self:flex-start;padding:9px 18px;font-size:13px}
  section{padding:46px 0}
  h2{font-size:30px;margin-bottom:14px}
  h3{font-size:23px}
  .intro-grid,.feature-grid{gap:28px}
  .page-image{height:280px;border-radius:16px}
  .panel{padding-top:50px;padding-bottom:50px}
  .contact-bar{padding:18px 0;font-size:15px;line-height:1.7}
  .contact-bar strong{font-size:18px;display:block;margin-bottom:3px}
  .cards{gap:18px}
  .card{padding:22px;border-radius:16px}
  .card img{height:190px}
  .cottage-hero{height:310px;text-align:left;align-items:flex-end;padding-bottom:42px}
  .cottage-hero h1{font-size:36px;margin-bottom:8px}
  .cottage-hero .lead{font-size:17px;line-height:1.5}
  .facilities{columns:1;line-height:1.8}
  .price-table{display:block;overflow-x:auto;white-space:nowrap;border-radius:12px}
  .price-table th,.price-table td{padding:12px 14px;font-size:14px}
  .image-gallery{gap:18px}
  .image-gallery figure img,.image-gallery img{height:245px}
  .contact-page-section{padding:46px 0}
  .contact-layout{gap:28px}
  .contact-box{padding:26px;border-radius:18px}
  .map-container{min-height:300px;border-radius:18px}
  .contact-right h2{font-size:30px;margin-bottom:12px}
  form{gap:12px}
  .contact-form input,.contact-form textarea,.contact-form select,input,textarea{padding:13px;border-radius:9px}
  .footer{font-size:14px;line-height:1.6;padding:28px 18px}
  .thankyou-section{min-height:60vh;padding:40px 0}
  .thankyou-card{padding:42px 22px;border-radius:18px}
  .thankyou-card h1{font-size:38px}
}

@media(max-width:520px){
  .container{width:min(100% - 26px,1120px)}
  .hero{height:500px}
  .hero-content{padding-bottom:76px}
  .hero-content h1{font-size:32px}
  .hero-content p{font-size:16px}
  .nav{gap:8px 14px}
  .nav a{font-size:15px}
  section{padding:40px 0}
  h2{font-size:27px}
  .page-image{height:235px}
  .card img{height:170px}
  .cottage-hero{height:280px;padding-bottom:36px}
  .cottage-hero h1{font-size:31px}
  .image-gallery figure img,.image-gallery img{height:220px}
  .contact-bar a{display:inline-block;margin-top:2px}
  .lightbox-caption{font-size:13px;bottom:12px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}


/* Cottage contact bars and Facebook image link */
.cottage-contact-bar,
.cottage-contact-mini{
  background:var(--purple);
  color:#fff;
  border-radius:18px;
  padding:20px 24px;
  margin:26px 0 32px;
  box-shadow:0 12px 28px rgba(0,0,0,.10);
}
.cottage-contact-mini{
  background:#fff;
  color:var(--grey);
  border-left:6px solid var(--green);
}
.cottage-contact-bar strong,
.cottage-contact-mini strong{
  color:inherit;
  font-size:18px;
}
.cottage-contact-bar a{
  color:#fff;
  font-weight:700;
  text-decoration:underline;
}
.cottage-contact-mini a{
  color:var(--green);
  font-weight:700;
}
.facebook-image-link{
  position:relative;
  display:block;
  overflow:hidden;
  border-radius:14px;
  margin:-8px 0 18px;
}
.facebook-image-link img{
  margin:0;
}
.facebook-image-link span{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  background:rgba(21,27,34,.82);
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-size:13px;
  font-weight:700;
  text-align:center;
}
.facebook-image-link:hover img{
  transform:scale(1.05);
}
@media(max-width:850px){
  .cottage-contact-bar,
  .cottage-contact-mini{
    padding:18px;
    margin:22px 0 28px;
    font-size:15px;
    line-height:1.7;
  }
  .cottage-contact-bar a,
  .cottage-contact-mini a{
    display:inline-block;
    margin-top:2px;
  }
}

/* Latest homepage banner positioning update */
@media(min-width:851px){
  .hero-content{
    justify-content:center;
    padding-top:90px; /* moves the revolving banner text down */
  }
  .hero-content .hero-btn{
    margin-top:22px;
    margin-bottom:0;
  }
}

/* Jazzed-up cottages page text layout */
.cottage-copy-wrap{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:30px;
  align-items:start;
  margin-bottom:34px;
}
.cottage-copy-main{
  background:#fff;
  border-radius:22px;
  padding:34px;
  box-shadow:0 14px 34px rgba(0,0,0,.08);
  border-top:5px solid var(--green);
}
.cottage-copy-main .intro-lead{font-size:19px;line-height:1.75;color:#4f5458;margin-top:0}
.cottage-copy-main p{margin:0 0 18px}
.cottage-highlight-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0}
.cottage-highlight{background:var(--light);border-radius:16px;padding:18px;border-left:5px solid var(--purple)}
.cottage-highlight strong{display:block;color:var(--purple);margin-bottom:5px;font-size:16px}
.cottage-side-card{background:var(--purple);color:#fff;border-radius:22px;padding:30px;box-shadow:0 14px 34px rgba(0,0,0,.10);position:sticky;top:128px}
.cottage-side-card h3{color:#fff;margin-bottom:12px}
.cottage-side-card p{color:#fff;margin:0 0 16px}
.cottage-side-card a{color:#fff;font-weight:700;text-decoration:underline}
.cottage-side-note{background:rgba(255,255,255,.12);border-radius:14px;padding:14px 16px;margin-top:18px;font-weight:700}
.cottage-location-note{background:linear-gradient(135deg,rgba(83,111,22,.10),rgba(75,23,76,.08));border-radius:18px;padding:22px 24px;margin-top:8px;border-left:6px solid var(--green)}
.cottage-location-note p:last-child{margin-bottom:0}
@media(max-width:850px){
  .hero-content{justify-content:flex-end;padding-bottom:58px}
  .cottage-copy-wrap{grid-template-columns:1fr;gap:22px}
  .cottage-copy-main,.cottage-side-card{padding:24px;border-radius:18px}
  .cottage-side-card{position:static}
  .cottage-highlight-grid{grid-template-columns:1fr;gap:12px;margin:22px 0}
  .cottage-copy-main .intro-lead{font-size:17px;line-height:1.7}
}

/* Final cottages page readability update */
.cottages-overview-section{background:#fff;}
.cottage-copy-main strong{color:var(--green);}
.cottage-copy-main .cottage-location-note strong{color:var(--purple);}
.cottage-highlight{line-height:1.55;}
@media(max-width:850px){
  .cottages-overview-section{padding-top:52px;}
  .cottage-copy-main p{font-size:16px;}
}


/* Updated smaller View Our Cottages pill */
.banner .cta-button, .hero-btn, .banner a.cta-button {
  font-size: 13px;
  padding: 6px 14px;
  border-radius: 18px;
  line-height: 1.2;
  display: inline-block;
}

.footer-contact {
  text-align: center;
  margin-top: 20px;
}

.facebook-link {
  color: #3b5998;
  text-decoration: none;
  font-weight: 500;
}

.facebook-link:hover {
  text-decoration: underline;
}

.footer-contact {
  text-align: center;
  font-size: 15px;
  color: #ddd;
}

.footer-divider {
  margin: 0 10px;
  color: #aaa;
}

.facebook-link {
  text-decoration: none;
  color: #ffffff;
  font-weight: 600;
}

.facebook-link:hover {
  opacity: 0.8;
}

.facebook-icon {
  font-family: Arial, sans-serif;
  font-weight: bold;
  color: #1877f2;
  margin-right: 6px;
  font-size: 18px;
}

/* Whole cottage cards clickable */
.cottage-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.cottage-card-link:hover {
  text-decoration: none;
}

.card-link {
  display: inline-block;
  margin-top: 10px;
  font-weight: 600;
}
