  :root{
    --cream:#fdfbef;
    --gingham:#fbf6d8;
    --sun:#f7d774;
    --sun-deep:#f0c04b;
    --sky:#aec6e8;
    --sky-deep:#7fa3d4;
    --ink:#4a5a78;
    --ink-soft:#6b7a95;
    --note:#fcf6cf;
    --nsblue:#5bc6e8;
    --pink:#f4b8c0;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'EB Garamond',Georgia,serif;
    color:var(--ink);line-height:1.7;
    background-color:var(--cream);
    background-image:
      linear-gradient(rgba(247,215,116,.10) 2px, transparent 2px),
      linear-gradient(90deg, rgba(247,215,116,.10) 2px, transparent 2px),
      linear-gradient(rgba(247,215,116,.06) 1px, transparent 1px),
      linear-gradient(90deg, rgba(247,215,116,.06) 1px, transparent 1px);
    background-size:60px 60px,60px 60px,20px 20px,20px 20px;
  }
  .wrap{max-width:1000px;margin:0 auto;padding:0 24px;}

  nav{
    display:flex;justify-content:center;flex-wrap:wrap;gap:2.2rem;
    padding:1.4rem 0;font-family:'Cormorant Garamond',serif;
    font-size:1.05rem;letter-spacing:.18em;text-transform:uppercase;
  }
  nav a{color:var(--ink-soft);text-decoration:none;transition:color .2s;}
  nav a:hover{color:var(--sky-deep);}

  header{text-align:center;padding:1rem 0 3rem;}
  .logo{width:min(340px,72vw);height:auto;margin:0 auto;display:block;}
  .tagline{
    font-family:'Cormorant Garamond',serif;text-transform:uppercase;
    letter-spacing:.22em;color:var(--ink);font-size:clamp(.8rem,2.4vw,1.05rem);
    margin-top:.4rem;
  }

  section{padding:2.4rem 0;}
  h2{
    font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--sky-deep);
    font-size:clamp(1.8rem,5vw,2.6rem);letter-spacing:.04em;text-transform:uppercase;
    margin-bottom:1.2rem;text-align:center;
  }
  .lead{font-size:1.15rem;max-width:60ch;margin:0 auto;text-align:center;}

  .cloud{
    background:#fff;border:2px solid var(--sky);border-radius:42px;
    padding:2.6rem 2.4rem;box-shadow:0 10px 30px rgba(127,163,212,.14);
  }
  .note{
    background:var(--note);border:1.5px dashed var(--sun-deep);border-radius:10px;
    padding:2rem 2.2rem;transform:rotate(-1deg);box-shadow:0 8px 22px rgba(240,192,75,.18);
  }

  /* mission */
  .mission .cloud{max-width:760px;margin:0 auto;text-align:center;}
  .mission p{font-size:1.18rem;}
  .mission .verse{
    font-family:'Kaushan Script',cursive;color:var(--sky);
    font-size:1.5rem;margin-top:1.2rem;
  }

  .grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;margin-top:2.5rem;}
  @media(max-width:720px){.grid{grid-template-columns:1fr;}}

  .photo{width:100%;border-radius:24px;border:3px solid #fff;box-shadow:0 12px 34px rgba(127,163,212,.28);display:block;}
  .photo-cap{text-align:center;font-variant:small-caps;letter-spacing:.1em;color:var(--ink-soft);margin-top:.7rem;}

  /* staff */
  .staff{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.5rem;}
  @media(max-width:720px){.staff{grid-template-columns:1fr;}}
  .staff-card{background:#fff;border:2px solid var(--sky);border-radius:32px;padding:2.2rem 1.9rem 2rem;box-shadow:0 10px 30px rgba(127,163,212,.14);text-align:center;}
  .staff-card img{width:190px;height:190px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 1.2rem;border:4px solid var(--sky);box-shadow:0 8px 20px rgba(127,163,212,.22);}
  .staff-card h3{font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--sky-deep);text-transform:uppercase;letter-spacing:.05em;font-size:1.55rem;}
  .staff-card .role{font-variant:small-caps;letter-spacing:.15em;color:var(--ink-soft);margin-bottom:1rem;}
  .staff-card p:last-child{text-align:left;}

  /* programs */
  .programs-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2.5rem;}
  @media(max-width:720px){.programs-grid{grid-template-columns:1fr;}}
  .prog-card{background:#fff;border:2px solid var(--sky);border-radius:32px;padding:2.2rem 2rem;box-shadow:0 10px 30px rgba(127,163,212,.14);}
  .prog-card .who{font-variant:small-caps;letter-spacing:.14em;color:var(--sky-deep);font-size:1rem;text-align:center;}
  .prog-card h3{font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.04em;font-size:1.5rem;text-align:center;margin:.15rem 0 .3rem;}
  .prog-card .sched{text-align:center;font-variant:small-caps;letter-spacing:.06em;color:var(--ink-soft);margin-bottom:1.2rem;}
  .prog-opt{border-top:1px dotted #dbe3f0;padding:.9rem 0;}
  .prog-opt strong{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--sky-deep);display:block;font-size:1.12rem;letter-spacing:.02em;}
  .prog-opt span{color:var(--ink-soft);font-size:1rem;}
  .prog-card .desc{margin-top:1rem;}
  .prog-lab{background:var(--note);border:1.5px dashed var(--sun-deep);border-radius:14px;padding:1.2rem 1.3rem;margin-top:1.2rem;}
  .prog-lab strong{font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--ink);font-size:1.18rem;letter-spacing:.03em;}
  .prog-lab .lab-tag{display:inline-block;margin-left:.5rem;font-variant:small-caps;letter-spacing:.08em;color:var(--sun-deep);font-size:.9rem;}
  .prog-lab p{margin-top:.5rem;font-size:1rem;}
  .prog-foot{margin-top:1.1rem;font-variant:small-caps;letter-spacing:.05em;color:var(--ink-soft);font-size:.98rem;text-align:center;}

  .checks{list-style:none;}
  .checks li{padding:.5rem 0;font-size:1.08rem;font-variant:small-caps;letter-spacing:.02em;}
  .checks li::before{content:"\2713 ";color:var(--sky-deep);font-weight:700;}

  .note h3{
    font-family:'Cormorant Garamond',serif;font-weight:700;color:var(--ink);
    text-transform:uppercase;letter-spacing:.05em;font-size:1.4rem;margin-bottom:.4rem;text-align:center;
  }
  .note .role{text-align:center;font-variant:small-caps;letter-spacing:.15em;color:var(--ink-soft);margin-bottom:1rem;}

  .card-title{
    font-family:'Cormorant Garamond',serif;color:var(--ink);text-transform:uppercase;
    letter-spacing:.04em;font-size:1.3rem;margin-bottom:1rem;text-align:center;
  }

  .strip{
    background:var(--sky);color:#fff;border-radius:40px;text-align:center;
    padding:1.6rem 2rem;margin:2rem 0 0;font-family:'Cormorant Garamond',serif;font-weight:600;
    text-transform:uppercase;letter-spacing:.06em;font-size:clamp(1.1rem,3vw,1.5rem);
  }

  /* calendar */
  .cal .cloud{max-width:820px;margin:0 auto;}
  .cal-sub{text-align:center;color:var(--ink-soft);margin-bottom:1.8rem;font-size:1.05rem;}
  .dates{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 2rem;}
  @media(max-width:560px){.dates{grid-template-columns:1fr;}}
  .date-row{display:flex;align-items:baseline;gap:.7rem;padding:.35rem 0;border-bottom:1px dotted #dbe3f0;}
  .date-row .d{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--sky-deep);min-width:5.6rem;font-size:1.05rem;}
  .legend{display:flex;flex-wrap:wrap;justify-content:center;gap:1.4rem;margin-top:1.8rem;}
  .legend span{display:flex;align-items:center;gap:.5rem;font-variant:small-caps;letter-spacing:.05em;color:var(--ink-soft);}
  .dot{width:14px;height:14px;border-radius:50%;display:inline-block;}

  #contact .cloud{max-width:640px;margin:0 auto;text-align:center;}
  .contact-item{font-size:1.2rem;margin:.5rem 0;}
  .contact-item a{color:var(--sky-deep);text-decoration:none;}
  .contact-item a:hover{text-decoration:underline;}
  .avail{font-variant:small-caps;letter-spacing:.06em;color:var(--ink-soft);margin-top:1.4rem;font-size:1.05rem;}
  .booking{font-family:'Cormorant Garamond',serif;font-weight:600;color:var(--sun-deep);font-size:1.3rem;margin-bottom:.8rem;}

  .form{margin-top:1.8rem;text-align:left;}
  .form label{display:block;font-variant:small-caps;letter-spacing:.08em;color:var(--ink-soft);font-size:1rem;margin:.9rem 0 .3rem;}
  .form input,.form textarea{
    width:100%;font-family:'EB Garamond',serif;font-size:1.05rem;color:var(--ink);
    background:var(--cream);border:1.5px solid var(--sky);border-radius:14px;
    padding:.7rem .9rem;transition:border-color .2s,box-shadow .2s;
  }
  .form input:focus,.form textarea:focus{outline:none;border-color:var(--sky-deep);box-shadow:0 0 0 3px rgba(127,163,212,.22);}
  .form textarea{resize:vertical;min-height:120px;}
  .btn{
    display:inline-block;margin-top:1.4rem;cursor:pointer;font-family:'Cormorant Garamond',serif;
    font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:1.1rem;color:#fff;
    background:var(--sky-deep);border:none;border-radius:30px;padding:.75rem 2.4rem;transition:background .2s,transform .1s;
  }
  .btn:hover{background:#6b93c9;}
  .btn:active{transform:translateY(1px);}

  .social{display:flex;justify-content:center;gap:1.4rem;margin-top:1.6rem;}
  .social a{
    width:46px;height:46px;border-radius:50%;background:var(--sky);color:#fff;
    display:flex;align-items:center;justify-content:center;transition:background .2s,transform .15s;
  }
  .social a:hover{background:var(--sky-deep);transform:translateY(-2px);}
  .social svg{width:24px;height:24px;fill:#fff;}

  footer{text-align:center;padding:2.5rem 0 2rem;color:var(--ink-soft);font-size:.95rem;font-variant:small-caps;letter-spacing:.1em;}

  nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px;}
  a:focus-visible{outline:2px solid var(--ink);outline-offset:5px;}
  .btn{text-decoration:none;}
  .teachers-intro{text-align:center;padding-bottom:1rem;}
  .teachers-intro h1{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,6vw,3.3rem);color:var(--sky-deep);text-transform:uppercase;letter-spacing:.04em;line-height:1.2;margin-bottom:1rem;}
  .teacher-profile{margin:2rem auto;padding:2.4rem;display:grid;grid-template-columns:190px 1fr;gap:2.4rem;align-items:start;text-align:left;}
  .teacher-profile img{width:190px;height:190px;margin:0;}
  .teacher-profile h2{text-align:left;font-size:1.8rem;margin-bottom:0;}
  .teacher-profile p+p{margin-top:1rem;}
  .teacher-profile .role{margin-top:0;}
  .teacher-profile .teacher-details{border-top:1px dotted var(--sky);padding-top:1rem;color:var(--ink-soft);}
  .teacher-profile a{color:var(--ink);}
  .teachers-contact{text-align:center;padding:1rem 0 3rem;}
  @media(max-width:600px){nav{gap:1rem 1.4rem;letter-spacing:.1em;} .teacher-profile{grid-template-columns:1fr;padding:1.8rem 1.4rem;gap:1.4rem;} .teacher-profile img{margin:0 auto;} .teacher-profile h2,.teacher-profile .role{text-align:center;}}
