/*
Theme Name: Alte Dorfschule Calendar Pro v1.6
Theme URI: https://altedorfschule-heessel.de/
Author: Custom
Description: Alte Dorfschule website with built-in Outlook availability calendar and WordPress calendar admin.
Version: 1.6.0
Text Domain: alte-dorfschule-final
*/
:root{--green:#0d351d;--green2:#153e26;--paper:#fff;--cream:#f7f4ee;--ink:#161916;--muted:#5d675f;--line:#dddcd5;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:"Open Sans",Arial,sans-serif;font-size:14px;line-height:1.55}img{display:block;max-width:100%}a{color:inherit}.shell{width:min(var(--max),calc(100% - 48px));margin:auto}
.site-header{background:#fff;padding:20px 0 16px}.header-inner{width:min(1050px,calc(100% - 40px));margin:auto;text-align:center}.wordmark{display:inline-block;border:1px solid #111;padding:5px 10px 6px;font:400 30px/1 "Playfair Display",Georgia,serif;text-decoration:none}.primary-nav{margin-top:16px}.nav-list{list-style:none;display:flex;justify-content:center;gap:28px;padding:0;margin:0}.nav-list a{text-decoration:none;text-transform:uppercase;letter-spacing:.16em;font-size:9px;padding-bottom:6px;border-bottom:1px solid transparent}.nav-list .current-menu-item>a,.nav-list a:hover{border-color:var(--green)}.menu-toggle{display:none}
.home-hero{display:grid;grid-template-columns:2.15fr 1fr}.hero-photo img{width:100%;height:420px;object-fit:cover}.hero-panel{background:var(--green);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.hero-panel span{text-transform:uppercase;letter-spacing:.17em;font-size:9px}.hero-panel h1{font:400 31px/1.15 "Playfair Display",Georgia,serif;margin:8px 0 0}
.green-section{background:var(--green);color:#fff;padding:34px 0 50px}.page-top{padding-top:32px}.overline{text-transform:uppercase;letter-spacing:.15em;font-size:9px;font-weight:600;margin-bottom:12px}.overline.dark{color:#111}.section-title{text-align:center;margin:0 auto 34px}.section-title h1,.section-title h2{font:400 28px/1.2 "Playfair Display",Georgia,serif;margin:0 0 6px}.section-title p{font-size:11px;margin:0}.three-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.room-card img{width:100%;aspect-ratio:1.35/1;object-fit:cover}.room-card h3,.offer-card h3{font-size:17px;font-weight:500;margin:15px 0 8px}.room-card p{font-size:12px;line-height:1.58;margin:0}.note{text-align:center;font-size:10px;margin:38px 0 0}
.offer{padding:24px 0 28px}.offer-card{background:var(--green);color:#fff}.offer-card img{width:100%;height:265px;object-fit:cover}.offer-card div{padding:18px 24px 24px;text-align:center}.offer-card p{font-size:12px;line-height:1.58;margin:0}
.contact-hero{background-size:cover;background-position:center;padding:24px 20px 38px;text-align:center;color:#fff}.contact-hero>h2{font:400 30px "Playfair Display",Georgia,serif;margin:0 0 28px}.contact-box{background:#fff;color:#111;width:min(620px,100%);margin:auto;padding:35px 38px}.contact-box h3{font-size:18px;font-weight:500}.contact-box h4{font-size:17px;font-weight:500;margin-bottom:8px}.contact-box p{font-size:12px}.button,.contact-form button,.newsletter button{display:inline-block;background:var(--green);color:#fff;border:0;padding:12px 24px;text-transform:uppercase;letter-spacing:.16em;font-size:9px;text-decoration:none;cursor:pointer}.contact-box .button{margin-top:20px}
.newsletter{text-align:center;padding:28px 0}.newsletter h2{font:400 28px "Playfair Display",Georgia,serif;margin:0 0 12px}.newsletter p{font-size:11px}.newsletter form{display:flex;max-width:560px;margin:18px auto 0}.newsletter input{flex:1;border:0;border-bottom:1px solid #aaa;padding:10px}.newsletter button{min-width:150px}
.booking{padding:38px 0 50px}.booking-grid,.contact-page-grid,.availability-section{display:grid;grid-template-columns:1fr 1fr;gap:55px}.booking h2,.availability-form-card h2{font:400 20px "Playfair Display",Georgia,serif}.booking-copy p{font-size:12px;color:var(--muted)}.contact-form{display:grid;gap:12px}.contact-form input,.contact-form textarea{border:0;border-bottom:1px solid #c8c8c8;padding:11px 4px;font:inherit}.contact-form textarea{border:1px solid #ccc;min-height:150px;padding:12px}.contact-form button{width:100%}
.apartment-page{padding-top:28px}.apartment-hero-img{width:100%;height:430px;object-fit:cover}.apartment-text{max-width:700px;margin:25px auto 60px}.apartment-text h1{font-size:19px;font-weight:500}.apartment-text p{font-size:12px;line-height:1.65}.apartment-gallery{padding-bottom:55px}.apt-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:20px}.apt-grid button{border:0;padding:0;background:none;cursor:zoom-in;overflow:hidden}.apt-grid button.wide{grid-column:1/-1}.apt-grid img{width:100%;height:340px;object-fit:cover}.apt-grid .wide img{height:470px}
.gallery-page{padding:52px 0}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-grid button{border:0;padding:0;background:none;cursor:zoom-in}.photo-grid img{width:100%;height:260px;object-fit:cover}
.availability-hero{min-height:260px;background-size:cover;background-position:center;display:grid;place-items:center;text-align:center;color:#fff;position:relative}.availability-hero:before{content:"";position:absolute;inset:0;background:rgba(11,40,23,.55)}.availability-hero div{position:relative;z-index:1;max-width:720px;padding:30px}.availability-hero h1{font:400 40px "Playfair Display",Georgia,serif;margin:0 0 10px}.availability-hero p{font-size:13px}.availability-section{padding:48px 0}.calendar-card,.availability-form-card{background:#faf9f6;border:1px solid #e3e1da;padding:25px}.calendar-head{display:flex;justify-content:space-between;align-items:center}.calendar-head h2{font:400 22px "Playfair Display",Georgia,serif}.calendar-head button{background:none;border:0;font-size:26px;cursor:pointer}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays span{text-align:center;font-size:9px;font-weight:600;padding:8px 0}.day{aspect-ratio:1;display:grid;place-items:center;border:0;background:#edf4eb;font-size:11px;cursor:pointer}.day.empty{background:transparent;cursor:default}.day.booked{background:#f4d3cb;color:#8d4033;cursor:not-allowed}.day.selected{background:var(--green);color:#fff}.day.in-range{background:#dbe8d8}.legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:18px;font-size:10px}.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-2px;margin-right:5px}.legend .free{background:#dbe8d8}.legend .booked{background:#f4d3cb}.legend .selected{background:var(--green)}.date-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.date-pair label{font-size:10px}.date-pair input{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #ccc}.availability-form-card .button{width:100%;margin-top:18px}.availability-result{font-size:12px;color:var(--muted);margin-top:20px;padding:15px;background:white;border:1px solid #e5e5e5}.text-button{display:inline-block;margin-top:15px;font-size:11px;text-decoration:underline}.outlook-note{padding:0 0 55px}.outlook-note h2{font:400 24px "Playfair Display",Georgia,serif}.outlook-note p{max-width:760px;color:var(--muted);font-size:12px}
.contact-page-hero{min-height:250px;background-size:cover;background-position:center;display:grid;place-items:center;color:#fff}.contact-page-hero h1{font:400 39px "Playfair Display",Georgia,serif}.contact-page-grid{padding:50px 0}.contact-page-grid h2{font:400 24px "Playfair Display",Georgia,serif}.contact-page-grid p{font-size:12px;color:var(--muted)}.page-news img{width:100%;height:340px;object-fit:cover;margin-top:32px}.generic-page{padding:60px 0;min-height:55vh}.generic-page h1{font:400 38px "Playfair Display",Georgia,serif}
.site-footer{padding:40px 24px 25px;text-align:center;font-size:9px}.footer-links{display:flex;justify-content:center;gap:20px;margin-bottom:26px}.footer-links a{text-decoration:none}.footer-brand{display:flex;flex-direction:column;gap:7px;letter-spacing:.06em}.footer-bottom{display:flex;justify-content:space-between;width:min(1080px,100%);margin:36px auto 0;text-align:left}
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;display:none;align-items:center;justify-content:center;padding:30px}.lightbox.open{display:flex}.lightbox img{max-width:94vw;max-height:88vh}.lightbox-close{position:absolute;top:15px;right:25px;background:none;border:0;color:#fff;font-size:40px;cursor:pointer}
@media(max-width:800px){.menu-toggle{display:inline-block;margin-top:15px;background:none;border:1px solid #111;padding:7px 12px;text-transform:uppercase;letter-spacing:.12em;font-size:9px}.primary-nav{display:none}.primary-nav.open{display:block}.nav-list{flex-direction:column;gap:12px;margin-top:18px}.home-hero{grid-template-columns:1fr}.hero-photo img{height:320px}.hero-panel{min-height:190px}.three-cols,.booking-grid,.contact-page-grid,.availability-section{grid-template-columns:1fr}.offer-card img{height:250px}.apartment-hero-img{height:330px}.apt-grid{grid-template-columns:1fr}.apt-grid button.wide{grid-column:auto}.apt-grid img,.apt-grid .wide img{height:auto;aspect-ratio:4/3}.photo-grid{grid-template-columns:1fr 1fr}.footer-bottom{display:block;text-align:center}.footer-bottom span{display:block;margin:6px}.date-pair{grid-template-columns:1fr}}
@media(max-width:500px){.shell{width:min(100% - 28px,var(--max))}.photo-grid{grid-template-columns:1fr}.newsletter form{display:block}.newsletter button{width:100%;margin-top:12px}.nav-list{align-items:center}.availability-hero h1{font-size:32px}}

.calendar-source{display:inline-block;margin-bottom:8px;padding:6px 9px;border-radius:999px;background:#eef3ed;color:#31533b;font-size:9px;text-transform:uppercase;letter-spacing:.11em}

/* v1.3 */
.availability-nav-link>a{font-weight:600}
.admin-calendar-hint{display:none}


/* =========================================================
   v1.4 visual refinement
   - remove full-width side green bars
   - add subtle divider lines
   ========================================================= */

.home-hero{
  position:relative;
  margin-bottom:26px;
}

.green-section{
  background:transparent !important;
  padding:0 0 42px !important;
}

.green-section > .shell{
  background:var(--green);
  padding:34px 42px 44px;
  position:relative;
}

.green-section > .shell::before{
  content:"";
  position:absolute;
  left:32px;
  right:32px;
  top:-14px;
  border-top:2px solid rgba(255,255,255,.88);
  opacity:.95;
}

.green-section > .shell::after{
  content:"";
  position:absolute;
  left:42px;
  right:42px;
  top:14px;
  border-top:1px solid rgba(255,255,255,.12);
}

.green-section .section-title{
  position:relative;
  padding-bottom:18px;
  margin-bottom:30px;
}

.green-section .section-title::after{
  content:"";
  display:block;
  width:140px;
  height:1px;
  background:rgba(255,255,255,.28);
  margin:16px auto 0;
}

.green-section .room-card{
  position:relative;
  padding-top:14px;
}

.green-section .room-card::before{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:52px;
  border-top:1px solid rgba(255,255,255,.22);
}

.offer{
  position:relative;
  padding-top:12px;
}

.offer::before{
  content:"";
  display:block;
  width:min(1120px, calc(100% - 48px));
  margin:0 auto 18px;
  border-top:1px solid rgba(0,0,0,.12);
}

.offer-card{
  position:relative;
  overflow:hidden;
}

.offer-card div{
  position:relative;
}

.offer-card div::before{
  content:"";
  display:block;
  width:54px;
  border-top:1px solid rgba(255,255,255,.22);
  margin:0 auto 14px;
}

.contact-hero{
  position:relative;
  margin-top:8px;
}

.contact-hero::before{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  top:0;
  width:min(1120px, calc(100% - 48px));
  border-top:1px solid rgba(255,255,255,.45);
  opacity:.85;
}

.contact-box{
  box-shadow:0 12px 30px rgba(0,0,0,.08);
  border-top:1px solid rgba(0,0,0,.08);
}

.newsletter{
  position:relative;
}

.newsletter::before{
  content:"";
  display:block;
  width:min(1120px, calc(100% - 48px));
  margin:0 auto 24px;
  border-top:1px solid rgba(0,0,0,.12);
}

@media(max-width:800px){
  .green-section > .shell{
    padding:28px 20px 34px;
  }
  .green-section > .shell::before{
    left:20px;
    right:20px;
    top:-10px;
  }
  .green-section > .shell::after{
    left:20px;
    right:20px;
  }
}


/* v1.6 text color refinement */
.green-section,
.green-section .room-card,
.green-section .room-card p,
.green-section .section-title p,
.green-section .note{
  color:#e7dfc8 !important;
}
.green-section .section-title h1,
.green-section .section-title h2,
.green-section .room-card h3{
  color:#f7f1e3 !important;
}
.green-section .overline{
  color:#f0ead8 !important;
}
