:root{
  --cream:#fff8ef; --green:#1f3b2f; --sage:#e7eddf; --coral:#d9776f;
  --blush:#fbe6df; --orange:#e8731e; --ink:#2b2b2b;
}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{font-family:'Poppins',sans-serif;background:var(--cream);color:var(--ink);font-weight:300}
.serif,h1,h2,h3{font-family:'Playfair Display',serif;color:var(--green)}
.script{font-family:'Dancing Script',cursive;color:var(--coral);font-size:1.6rem}
.script.big{font-size:2rem;line-height:1.2;transform:rotate(-6deg);display:inline-block}
.eyebrow{letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;color:var(--green);margin-bottom:.4rem}
.tag{letter-spacing:.3em;text-transform:uppercase;font-size:.75rem;color:#6d7f73}

/* buttons */
.btn{border-radius:50rem;font-weight:500;padding:.8rem 1.6rem;transition:transform .2s,box-shadow .2s,background-color .2s,color .2s}
.btn-sm{padding:.45rem 1rem;font-size:.75rem}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.2)}
.btn-dark-green{background:var(--green);color:#fff;border:0}
.btn-coral{background:var(--coral);color:#fff;border:0}
.btn-dark-green:hover,.btn-dark-green:focus-visible{background:#315744;color:#fff}
.btn-coral:hover,.btn-coral:focus-visible{background:#b94f48;color:#fff}
.btn:focus-visible{outline:3px solid rgba(31,59,47,.35);outline-offset:3px;box-shadow:none}

/* navbar */
.an-nav{background:rgba(255,248,239,.95);backdrop-filter:blur(8px);box-shadow:0 2px 12px rgba(0,0,0,.05)}
.logo-img{height:46px}
.brand{display:flex;flex-direction:column;line-height:1}
.brand b{font-family:'Playfair Display',serif;font-size:1.9rem;color:var(--orange)}
.brand small{letter-spacing:.3em;font-size:.6rem;text-transform:uppercase;color:var(--green)}
.brand.light small{color:#fff}
.an-nav .nav-link{color:var(--ink);font-size:.85rem;border-bottom:2px solid transparent;padding:.3rem 0}
.an-nav .nav-link.active,.an-nav .nav-link:hover{border-color:var(--green);color:var(--green)}
.social a{color:var(--green);font-size:1.15rem;transition:color .2s,transform .2s}
.social a:hover{color:var(--coral);transform:scale(1.2)}

/* placeholder images: real photo if present, gradient otherwise */
.ph{background:var(--img),var(--g,#ddd);background-size:cover;background-position:center}

/* hero slider */
.slide{position:relative;min-height:540px;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(120deg,#fbeee4,#fff8ef 60%,#f9e3da)}
.slide-img{position:absolute;inset:0 auto 0 0;width:44%;
  clip-path:polygon(0 0,100% 0,82% 100%,0 100%)}
.slide-copy{position:relative;z-index:2;text-align:center;padding-left:calc(44% - 3rem);padding-block:3rem}
.slide h1{font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.1;margin:.3rem 0 1rem}
.slide .lead{font-size:1.05rem;font-weight:300;margin:1rem 0 1.6rem}
.carousel-control-prev,.carousel-control-next{width:52px;height:52px;top:50%;bottom:auto;transform:translateY(-50%);
  background:rgba(255,255,255,.8);border-radius:50%;opacity:1;margin:0 1rem;color:var(--green)}
.carousel-indicators [data-bs-target]{background:var(--green);width:10px;height:10px;border-radius:50%;border:0}
/* entrance animations replay on every slide change */
.carousel-item .a1,.carousel-item .a2,.carousel-item .a3,.carousel-item .a4{opacity:0}
.carousel-item.active .a1,.carousel-item.active .a2,.carousel-item.active .a3,.carousel-item.active .a4{
  animation:rise .8s cubic-bezier(.2,.7,.2,1) forwards}
.carousel-item.active .a2{animation-delay:.15s}
.carousel-item.active .a3{animation-delay:.3s}
.carousel-item.active .a4{animation-delay:.45s}
.carousel-item.active .slide-img{animation:zoom 7s ease-out forwards}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes zoom{from{transform:scale(1.08)}to{transform:scale(1)}}

/* courses */
.course{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.07);height:100%;transition:transform .3s,box-shadow .3s}
.course:hover{transform:translateY(-6px);box-shadow:0 14px 28px rgba(0,0,0,.12)}
.course .ph{height:130px;transition:transform .5s}
.course:hover .ph{transform:scale(1.05)}
.course{display:flex;flex-direction:column}
.course .ph{flex:none}
.course>div:first-child{overflow:hidden}
.course .body{padding:1rem;display:flex;flex-direction:column;gap:.25rem;flex:1;background:#fff;position:relative}
.course h3{font-size:1.05rem;margin:0;display:flex;gap:.5rem;align-items:center}
.course h3 i{color:var(--coral)}
.course small{color:#777;font-size:.72rem;min-height:2.2em}
.course .btn{margin-top:auto;align-self:stretch}

/* services */
.sage{background:var(--sage)}
.service{display:flex;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.07);height:100%}
.service.blush{background:var(--blush)}
.service .ph{flex:0 0 42%;min-height:240px}
.service .body{padding:1.6rem;display:flex;flex-direction:column;justify-content:center}
.service .ico{font-size:1.6rem;color:var(--coral)}
.service h3{font-size:1.5rem;margin:.3rem 0}
.service .btn{font-size:.8rem}

/* About */
.about-story{background:linear-gradient(120deg,#fbe6df,#fff3e6);padding:4.5rem 0}
.about-visual{position:relative;overflow:hidden;border-radius:26px;box-shadow:0 18px 40px rgba(31,59,47,.12);background:#f6ebe4}
.about-visual img{display:block;width:100%;height:520px;object-fit:cover}
.about-visual::after{content:"";position:absolute;inset:auto 1.2rem 1.2rem auto;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.35);backdrop-filter:blur(2px)}
.about-story .lead{font-size:1.1rem;line-height:1.8}
.about-story .btn{margin-top:1rem}

/* contact */
.contact-card{background:#fff;padding:1.8rem;border-radius:14px;box-shadow:0 4px 18px rgba(0,0,0,.07)}
.form-control,.form-select{border-radius:10px;border-color:#e3d9cc;padding:.65rem .9rem;background-color:#fffdfa}
.form-control:focus,.form-select:focus{border-color:var(--green);box-shadow:0 0 0 .2rem rgba(31,59,47,.15)}
.form-label{font-size:.8rem;color:var(--green);font-weight:500}
.contact-list li{display:flex;gap:.75rem;margin-bottom:.6rem}
.contact-list i{color:var(--coral)}
.contact-list a{color:inherit;text-decoration:none}
.map-wrap{height:100%;min-height:420px;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.1);border:4px solid #fff}
.map-wrap iframe{width:100%;height:100%;min-height:420px;border:0}

/* footer */
.an-footer{background:var(--green);color:#fff;padding:2.5rem 0 1.5rem}
.an-footer .social a{color:#fff}
.an-footer .script{color:#fff}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* mobile */
@media(max-width:991px){
  .slide{min-height:600px;align-items:flex-end}
  .slide-img{inset:0 0 auto 0;width:100%;height:230px;clip-path:polygon(0 0,100% 0,100% 80%,0 100%)}
  .slide-copy{padding:260px 1rem 3rem}
  .service{flex-direction:column}
  .service .ph{min-height:200px;flex-basis:auto}
  .carousel-control-prev,.carousel-control-next{display:none}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .carousel-item .a1,.carousel-item .a2,.carousel-item .a3,.carousel-item .a4,.reveal{opacity:1;transform:none}
}
