/* Liz Asser Consultancy — shared stylesheet */
:root {
  --deep-green:#3C5A3E;--mid-green:#4E7352;--sage:#6B8F71;--sage-light:#A8C5AB;
  --cream:#F5F0E8;--stone:#D6CFC3;--warm-white:#FDFCF9;
  --text-dark:#2A2A20;--text-mid:#5A5A4A;--text-light:#8A8A7A;
  --bg:#F5F0E8;--surface:#FAF8F4;--surface-2:#FFFFFF;--surface-off:#EEE9DF;
  --border:rgba(60,90,62,0.14);--divider:#D6CFC3;--khaki:#E8E2D1;
  --font-display:'Lora',Georgia,serif;--font-body:'Source Sans 3','Helvetica Neue',sans-serif;
  --text-xs:clamp(.72rem,.7rem + .2vw,.82rem);--text-sm:clamp(.875rem,.82rem + .3vw,1rem);
  --text-base:clamp(1rem,.95rem + .2vw,1.1rem);--text-lg:clamp(1.1rem,1rem + .6vw,1.4rem);
  --text-xl:clamp(1.4rem,1.1rem + 1.1vw,2rem);--text-2xl:clamp(1.8rem,1rem + 2.2vw,3rem);
  --text-3xl:clamp(2.2rem,1.2rem + 2.8vw,3.6rem);
  --r-sm:4px;--r-md:8px;--r-lg:12px;--r-xl:16px;
  --sh-sm:0 1px 3px rgba(60,90,62,.08);--sh-md:0 4px 16px rgba(60,90,62,.10);
  --tr:180ms cubic-bezier(.16,1,.3,1);--content:980px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-font-smoothing:antialiased;scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--text-dark);background:var(--bg);line-height:1.65}
img{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2}p{max-width:68ch}
button{cursor:pointer;border:none;background:none}a{color:var(--deep-green);text-decoration:none;transition:color var(--tr)}a:hover{color:var(--sage)}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px}
.wrap{max-width:var(--content);margin:0 auto;padding:0 1.5rem}

/* NAV — Book CTA very prominent */
.nav{background:var(--deep-green);padding:.9rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100;box-shadow:0 2px 12px rgba(0,0,0,.18)}
.nav-brand{cursor:pointer}.nav-brand-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--cream)}.nav-brand-tag{font-size:var(--text-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-light)}
.nav-links{display:flex;gap:1.5rem;list-style:none;align-items:center}
.nav-links a{font-size:var(--text-sm);font-weight:600;color:rgba(245,240,232,.72);cursor:pointer;letter-spacing:.03em;transition:all var(--tr)}
.nav-links a:hover,.nav-links a.active{color:var(--cream)}
/* BOOK CTA — large, bright, animated pulse on load */
.nav-book{background:#fff!important;color:var(--deep-green)!important;padding:.55rem 1.5rem!important;border-radius:var(--r-md)!important;font-weight:700!important;font-size:var(--text-sm)!important;letter-spacing:.02em!important;box-shadow:0 0 0 0 rgba(255,255,255,.4);animation:bookPulse 2s ease-out 1s 3;transition:all var(--tr)!important;border:2px solid #fff!important}
.nav-book:hover{background:var(--sage-light)!important;border-color:var(--sage-light)!important;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)!important}
@keyframes bookPulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.45)}70%{box-shadow:0 0 0 10px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
.mob-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px}.mob-toggle span{display:block;width:20px;height:2px;background:#fff;margin:4px 0}
@media(max-width:740px){.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--deep-green);padding:1rem 1.5rem;gap:.75rem;z-index:99}.mob-toggle{display:block}.nav{padding:.75rem 1rem}.nav-book{width:100%;text-align:center;justify-content:center;display:flex}}

/* PAGE ROUTING */
.page{display:none;animation:pageIn .35s ease-out}.page.active{display:block}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

/* HERO with real botanical images */
.hero{position:relative;min-height:260px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--deep-green);padding:4rem 2rem 3rem}
.hero-tall{min-height:70vh;padding:5rem 2rem}
.hero-canopy{position:absolute;top:0;left:0;right:0;height:200px;background:url(canopy.jpg) center top/cover no-repeat;opacity:.35;pointer-events:none}
.hero-tall .hero-canopy{height:280px;opacity:.4}
.hero-vine-l{position:absolute;left:0;top:0;bottom:0;width:90px;background:url(vine.jpg) left top/contain repeat-y;opacity:.2;pointer-events:none}
.hero-vine-r{position:absolute;right:0;top:0;bottom:0;width:90px;background:url(vine.jpg) right bottom/contain repeat-y;opacity:.15;pointer-events:none;transform:scaleX(-1)}
.hero-ground{position:absolute;bottom:0;left:0;right:0;height:110px;background:url(stone.jpg) center bottom/cover no-repeat;opacity:.3;pointer-events:none}
.hero-tall .hero-ground{height:144px;opacity:.35}
.hero::before{content:'';position:absolute;inset:0;background:linear-gradient(160deg,rgba(30,55,32,.78),rgba(60,90,62,.55) 50%,rgba(78,115,82,.4));z-index:1;pointer-events:none}
.hero-content{position:relative;z-index:2;text-align:center}
.hero-overline{font-size:var(--text-xs);font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(245,240,232,.75);margin-bottom:.75rem}
.hero h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--cream);margin-bottom:.75rem;text-shadow:0 2px 16px rgba(0,0,0,.2)}
.hero-tall h1{font-size:var(--text-3xl);margin-bottom:1rem}
.hero-sub{font-size:var(--text-base);color:rgba(245,240,232,.85);font-style:italic}
.hero-tall .hero-sub{font-size:var(--text-lg);margin-bottom:1.5rem}
.hero-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}

/* BOTANICAL STRIP — stone/leaves image between sections */
.botan-strip{width:100%;height:72px;background:url(stone.jpg) center/cover no-repeat;opacity:.45}
.botan-strip-sm{width:100%;height:48px;background:url(stone.jpg) center/cover no-repeat;opacity:.3}

/* VINE EDGES — on all content sections */
.vine-left{position:absolute;left:0;top:0;bottom:0;width:70px;background:url(vine.jpg) left top/contain repeat-y;opacity:.05;pointer-events:none}
.vine-right{position:absolute;right:0;top:0;bottom:0;width:70px;background:url(vine.jpg) right bottom/contain repeat-y;opacity:.04;pointer-events:none;transform:scaleX(-1)}
@media(max-width:860px){.vine-left,.vine-right,.hero-vine-l,.hero-vine-r{display:none}}

/* BRANCH CANOPY on sections */
.section-canopy{position:absolute;top:0;left:0;right:0;height:120px;background:url(canopy.jpg) center top/cover no-repeat;opacity:.06;pointer-events:none}

/* BUTTONS */
.btn{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;padding:.75rem 1.5rem;border-radius:var(--r-md);cursor:pointer;transition:all var(--tr);display:inline-flex;align-items:center;gap:.5rem;border:2px solid transparent}
.btn-primary{background:var(--cream);color:var(--deep-green);border-color:var(--cream)}.btn-primary:hover{background:#fff;box-shadow:var(--sh-md);transform:translateY(-1px)}
.btn-green{background:var(--deep-green);color:var(--cream);border-color:var(--deep-green)}.btn-green:hover{background:#2e4530;box-shadow:var(--sh-md);transform:translateY(-1px)}
.btn-ghost{background:transparent;color:var(--cream);border-color:rgba(245,240,232,.4)}.btn-ghost:hover{border-color:var(--cream);background:rgba(245,240,232,.1)}
.btn-outline{background:transparent;color:var(--deep-green);border-color:var(--stone)}.btn-outline:hover{border-color:var(--sage);background:rgba(107,143,113,.08)}
.btn:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:540px){.hero-actions{flex-direction:column;align-items:center}.hero-actions .btn{width:85%}}

/* CONTENT SECTIONS */
.cs{padding:3rem 0;position:relative;overflow:hidden}
.section-heading{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--deep-green);margin-bottom:.5rem}
.heading-rule{width:100%;height:1px;background:var(--divider);border:none;margin:.5rem 0 1.25rem}
.bq{border-left:3.5px solid var(--deep-green);padding:1.25rem 1.5rem;background:var(--surface-off);border-radius:0 var(--r-md) var(--r-md) 0;margin:1.5rem 0}
.bq p{font-family:var(--font-display);font-size:var(--text-lg);font-style:italic;color:var(--text-dark);line-height:1.55}.bq cite{display:block;margin-top:.75rem;font-style:normal;font-size:var(--text-xs);color:var(--text-light)}

/* Services */
.services-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden}
/* REV C: Liz asked for the pale khaki background behind all four service options */
.svc-cell{padding:1.5rem;background:var(--khaki)}.svc-cell:nth-child(n+3){border-top:1px solid var(--border)}
.svc-cell h3{font-weight:700;color:var(--deep-green);margin-bottom:.5rem}.svc-cell p{font-size:var(--text-sm);color:var(--text-mid);line-height:1.65}
@media(max-width:700px){.services-grid{grid-template-columns:1fr}}

.who-item{padding:1rem 0 1rem 1.25rem;border-bottom:1px solid var(--border);position:relative;font-size:var(--text-sm);color:var(--text-mid)}.who-item:last-child{border-bottom:none}.who-item::before{content:'';position:absolute;left:0;top:1.3rem;width:7px;height:7px;border-radius:50%;background:var(--sage)}.who-item strong{font-weight:700;color:var(--deep-green)}
.values-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--border)}.values-table thead th{background:var(--deep-green);color:var(--cream);font-size:var(--text-xs);font-weight:700;letter-spacing:.15em;text-transform:uppercase;text-align:left;padding:.75rem 1.25rem}.values-table tbody tr:nth-child(odd){background:rgba(107,143,113,.06)}.values-table tbody tr:nth-child(even){background:var(--surface-2)}.values-table td{padding:.75rem 1.25rem;line-height:1.6;border-bottom:1px solid var(--border)}.values-table td:first-child{font-weight:700;color:var(--deep-green)}

.about-grid{display:grid;grid-template-columns:280px 1fr;gap:2.5rem;align-items:start;margin-top:1.5rem}.portrait-img{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;border:4px solid var(--stone);box-shadow:var(--sh-md)}.about-text p{margin-bottom:1rem;line-height:1.75;color:var(--text-mid)}.creds{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}.cred{padding:.25rem .75rem;background:rgba(107,143,113,.1);border:1px solid rgba(107,143,113,.2);border-radius:var(--r-sm);font-size:var(--text-xs);font-weight:700;color:var(--deep-green)}
@media(max-width:700px){.about-grid{grid-template-columns:1fr;text-align:center}.portrait-img{max-width:200px;margin:0 auto}.about-text{text-align:left}}

.contact-bar{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-left:4px solid var(--deep-green);border-radius:var(--r-lg);overflow:hidden;margin:1.5rem 0}.contact-cell{padding:1.25rem 1.5rem}.contact-cell:nth-child(2){border-left:1px solid var(--border)}.contact-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-light);margin-bottom:.25rem}.contact-value{font-size:var(--text-base);font-weight:700;color:var(--deep-green)}.contact-value a{color:var(--deep-green)}
@media(max-width:700px){.contact-bar{grid-template-columns:1fr}.contact-cell:nth-child(2){border-left:none;border-top:1px solid var(--border)}}

.enq-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:2.5rem;margin-top:1rem}.enq-info p{line-height:1.75;color:var(--text-mid);margin-bottom:1rem}
.enq-form{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.5rem;box-shadow:var(--sh-sm)}.enq-form h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--deep-green);margin-bottom:1.25rem}
.fg{margin-bottom:1rem}.fg label{display:block;font-size:var(--text-sm);font-weight:600;margin-bottom:.25rem}
.fg input,.fg select,.fg textarea{width:100%;padding:.75rem 1rem;background:var(--surface-2);border:1.5px solid var(--stone);border-radius:var(--r-md);font-size:var(--text-sm);transition:border-color var(--tr),box-shadow var(--tr)}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(107,143,113,.15)}
.fg input::placeholder,.fg textarea::placeholder{color:var(--text-light)}.fg textarea{resize:vertical;min-height:88px}.fg-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.btn-send{width:100%;padding:.75rem;background:var(--deep-green);color:var(--cream);font-weight:700;border:none;border-radius:var(--r-md);cursor:pointer;transition:all var(--tr);font-size:var(--text-sm);margin-top:.25rem}.btn-send:hover{background:#2e4530;transform:translateY(-1px)}
@media(max-width:700px){.enq-grid{grid-template-columns:1fr}.fg-row{grid-template-columns:1fr}}

/* BOOKING PAGE */
.booking-layout{max-width:var(--content);margin:0 auto;padding:2.5rem 1.5rem;display:grid;grid-template-columns:1fr 320px;gap:2.5rem;align-items:start}
@media(max-width:860px){.booking-layout{grid-template-columns:1fr;padding:1.5rem 1rem;gap:1.5rem}}
.booking-panel{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--sh-md);overflow:hidden}
.steps-bar{background:var(--deep-green);padding:1rem 1.5rem;display:flex;gap:0;align-items:center}
.step{display:flex;align-items:center;gap:.5rem;flex:1}.step-num{width:26px;height:26px;border-radius:50%;background:rgba(245,240,232,.12);border:1.5px solid rgba(245,240,232,.25);color:rgba(245,240,232,.45);font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--tr)}
.step.active .step-num{background:var(--sage);border-color:var(--sage);color:var(--cream)}.step.done .step-num{background:rgba(107,143,113,.45);border-color:var(--sage);color:var(--cream)}
.step-label{font-size:var(--text-xs);font-weight:600;color:rgba(245,240,232,.38);letter-spacing:.07em;text-transform:uppercase}.step.active .step-label{color:var(--cream)}.step.done .step-label{color:rgba(245,240,232,.6)}
.step-connector{width:20px;height:1px;background:rgba(245,240,232,.14);flex-shrink:0}
@media(max-width:540px){.step-label{display:none}}
.step-panel{display:none;padding:2rem}.step-panel.active{display:block}
@media(max-width:540px){.step-panel{padding:1.25rem}}
.step-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--deep-green);margin-bottom:.5rem}
.step-desc{font-size:var(--text-sm);color:var(--text-mid);margin-bottom:1.5rem;line-height:1.65}
.service-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}
.service-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-lg);cursor:pointer;transition:all var(--tr);position:relative}
.service-option:hover{border-color:var(--sage);box-shadow:var(--sh-sm)}.service-option.selected{border-color:var(--deep-green);background:rgba(60,90,62,.05)}
.service-option input[type="radio"]{position:absolute;opacity:0}
.service-radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--stone);background:var(--surface-2);flex-shrink:0;margin-top:2px;display:flex;align-items:center;justify-content:center;transition:all var(--tr)}
.service-option.selected .service-radio{border-color:var(--deep-green);background:var(--deep-green)}.service-option.selected .service-radio::after{content:'';width:7px;height:7px;border-radius:50%;background:var(--cream)}
.service-info{flex:1}.service-name{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--deep-green);margin-bottom:.25rem}.service-desc{font-size:var(--text-sm);color:var(--text-mid);line-height:1.55}
.service-duration{font-size:var(--text-xs);font-weight:700;color:var(--sage);background:rgba(107,143,113,.12);padding:.25rem .5rem;border-radius:var(--r-sm);white-space:nowrap;align-self:flex-start;margin-top:2px}
.calendar-wrapper{margin-bottom:1.5rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.cal-nav{width:34px;height:34px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);color:var(--deep-green);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:all var(--tr)}.cal-nav:hover{background:var(--deep-green);color:var(--cream)}
.cal-month{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--deep-green)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dh{font-size:var(--text-xs);font-weight:700;color:var(--text-light);letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:.5rem 0}
.cal-day{aspect-ratio:1;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);transition:all var(--tr);position:relative}
.cal-day.avail{cursor:pointer}.cal-day.avail:hover{background:rgba(107,143,113,.15)}.cal-day.avail::after{content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--sage)}
.cal-day.sel{background:var(--deep-green);color:var(--cream);font-weight:700}.cal-day.today{border:1.5px solid var(--sage);font-weight:700}.cal-day.past{color:var(--stone)}.cal-day.empty{cursor:default}
.ts-section{margin-bottom:1.5rem}.ts-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light);margin-bottom:.75rem}.ts-wrap{display:flex;flex-wrap:wrap;gap:.5rem}
.ts{font-size:var(--text-sm);font-weight:600;color:var(--deep-green);background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-md);padding:.5rem 1rem;cursor:pointer;transition:all var(--tr)}.ts:hover{border-color:var(--sage)}.ts.sel{background:var(--deep-green);color:var(--cream);border-color:var(--deep-green)}.ts.booked{color:var(--stone);background:var(--surface-off);text-decoration:line-through;cursor:default}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.25rem}@media(max-width:540px){.form-grid{grid-template-columns:1fr}}
.form-label{font-size:var(--text-sm);font-weight:600;margin-bottom:.25rem;display:block}.req{color:var(--sage)}
.form-input,.form-select,.form-textarea{width:100%;padding:.75rem 1rem;background:var(--surface-2);border:1.5px solid var(--stone);border-radius:var(--r-md);font-size:var(--text-sm);transition:all var(--tr)}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 3px rgba(107,143,113,.15)}
.form-textarea{resize:vertical;min-height:88px}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%233C5A3E' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:38px;cursor:pointer}
.form-hint{font-size:var(--text-xs);color:var(--text-light);margin-top:.25rem}
.privacy-note{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;background:rgba(107,143,113,.07);border-radius:var(--r-md);border:1px solid rgba(107,143,113,.18);margin-bottom:1.25rem}.privacy-note svg{flex-shrink:0;color:var(--sage)}.privacy-note p{font-size:var(--text-xs);color:var(--text-mid);max-width:none}
.booking-summary{background:var(--surface-off);border-radius:var(--r-lg);padding:1.25rem 1.5rem;margin:1.5rem 0}.sum-row{display:flex;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid var(--divider);gap:2rem}.sum-row:last-child{border-bottom:none}.sum-lbl{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-light)}.sum-val{font-size:var(--text-sm);font-weight:600;text-align:right}
.confirm-head{text-align:center;padding:1.5rem 0 1rem}.confirm-icon{width:60px;height:60px;background:rgba(60,90,62,.1);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.confirm-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--deep-green);margin-bottom:.5rem}.confirm-sub{color:var(--text-mid)}
.btn-row{display:flex;justify-content:space-between;gap:.75rem;margin-top:.5rem}@media(max-width:540px){.btn-row{flex-direction:column-reverse}.btn-row .btn{width:100%;justify-content:center}}
.book-intro{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--sh-sm)}.book-intro h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--deep-green);margin-bottom:.75rem}.book-intro p{font-size:var(--text-sm);color:var(--text-mid);line-height:1.7;margin-bottom:.5rem}
.book-checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:.4rem 1rem;margin-top:.75rem}.book-checks li{display:flex;align-items:flex-start;gap:.5rem;font-size:var(--text-sm);color:var(--text-mid)}.book-checks li::before{content:'\2713';color:var(--sage);font-weight:700;flex-shrink:0}
@media(max-width:540px){.book-checks{grid-template-columns:1fr}}

/* Sidebar cards */
.sidebar{display:flex;flex-direction:column;gap:1.25rem}
.sc{background:var(--surface);border-radius:var(--r-xl);border:1px solid var(--border);box-shadow:var(--sh-sm);overflow:hidden}.sc-head{background:var(--deep-green);padding:1rem 1.25rem}.sc-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--cream)}.sc-body{padding:1.25rem}
.liz-profile{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem}.liz-avatar{width:52px;height:52px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid var(--stone)}.liz-avatar img{width:100%;height:100%;object-fit:cover}.liz-name{font-family:var(--font-display);font-weight:700;color:var(--deep-green)}.liz-role{font-size:var(--text-xs);color:var(--text-mid)}.liz-bio{font-size:var(--text-sm);color:var(--text-mid);font-style:italic;padding-top:1rem;border-top:1px solid var(--divider)}
.expect-list{list-style:none}.ei{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}.edot{width:7px;height:7px;border-radius:50%;background:var(--sage);flex-shrink:0;margin-top:7px}.etext{font-size:var(--text-sm);color:var(--text-mid);line-height:1.6}
.cmi{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.cmi svg{color:var(--sage);flex-shrink:0}.cmi-label{font-size:var(--text-sm);color:var(--text-mid)}.cmi-label strong{display:block;color:var(--text-dark);font-weight:600}
.full{grid-column:1/-1}

/* FOOTER */
.ack{background:var(--surface-off);padding:1.5rem 2rem;text-align:center}.ack p{max-width:700px;margin:0 auto;font-size:var(--text-sm);font-style:italic;color:var(--text-light)}
.footer{background:var(--deep-green);padding:2rem;text-align:center;position:relative;overflow:hidden}
.footer-ground{position:absolute;bottom:0;left:0;right:0;height:60px;background:url(stone.jpg) center bottom/cover no-repeat;opacity:.12;pointer-events:none}
.footer-name{font-family:var(--font-display);font-weight:700;color:var(--cream);position:relative;z-index:1}.footer-tag{font-size:var(--text-xs);font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-light);margin-bottom:.75rem;position:relative;z-index:1}.footer-contact{font-size:var(--text-sm);color:rgba(245,240,232,.58);position:relative;z-index:1}.footer-contact a{color:rgba(245,240,232,.65)}.footer-contact a:hover{color:var(--cream)}.footer-credit{font-size:var(--text-xs);color:rgba(245,240,232,.3);margin-top:.75rem;position:relative;z-index:1}.footer-credit a{color:rgba(245,240,232,.4)}

.nav-brand{text-decoration:none;color:inherit;display:inline-block}

/* Portrait placeholders (photo to come) */
.portrait-placeholder{width:200px;height:200px;margin:0 auto;border-radius:50%;border:4px solid var(--stone);box-shadow:var(--sh-md);background:radial-gradient(circle at 50% 38%,var(--surface),var(--surface-off) 70%,var(--stone));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--sage)}
.portrait-placeholder svg{width:40%;height:40%;opacity:.5}
.portrait-placeholder span{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;color:var(--text-light)}
.liz-avatar-ph{display:flex;align-items:center;justify-content:center;background:var(--surface-off);color:var(--sage)}
.liz-avatar-ph svg{width:26px;height:26px;opacity:.6}

/* ── RESOURCES PAGE (REV C) ─────────────────────────────────────────────── */
.res-kind{font-size:var(--text-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin-bottom:.4rem}
.svc-cell h3+p{margin-bottom:.75rem}
.res-foot{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem;font-size:var(--text-sm);font-weight:600}
.res-tag{font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .55rem;border-radius:var(--r-sm)}
.res-open{background:rgba(107,143,113,.16);color:var(--deep-green)}
.res-member{background:rgba(184,134,11,.14);color:#7d5c07}
.res-check{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--text-sm);color:var(--text-mid);margin:.25rem 0 1rem;line-height:1.55}
.res-check input{width:auto;margin-top:.3rem;flex-shrink:0}

/* ── HOME INTRO COLUMN (REV I) ──────────────────────────────────────────── */
/* The paragraphs used to inherit p{max-width:68ch} while the quote above them
   ran the full width of the container, so the text stopped short and left an
   awkward gap. Quote, text and button now share one column. */
.intro-col{max-width:680px}
.intro-col p{max-width:none}
.intro-col .bq{margin-top:0;margin-bottom:1.75rem}
.intro-lead{font-size:1.06rem;line-height:1.8;color:var(--text-dark);margin-bottom:1.15rem}
.intro-body{line-height:1.8;color:var(--text-mid);margin-bottom:1.75rem}
@media(min-width:1040px){.intro-col{max-width:720px}}

/* ── BOOKING PAGE — Microsoft Bookings embed (REV J) ───────────────────── */
/* The request wizard is gone; book.html now frames Liz's Bookings page inside
   the existing .booking-panel card. These rules are additive only. */
.embed-head{background:var(--deep-green);padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}
.embed-head-title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--cream)}
.embed-head-meta{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sage-light)}
.embed-frame{display:block;width:100%;height:1080px;border:0;background:var(--surface-2)}
@media(max-width:540px){.embed-frame{height:1240px}}
.embed-foot{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;padding:1rem 1.5rem;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-light)}
.book-other{margin-top:1.5rem;margin-bottom:0}.book-other .btn{margin-top:.5rem}
/* REV J.2 — launch card (replaces the iframe embed inside .booking-panel) */
.launch-body{padding:1.5rem 2rem 1.75rem}
@media(max-width:540px){.launch-body{padding:1.25rem}}
.launch-steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:0 0 1.5rem}
.launch-step{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem 1.25rem}
.launch-num{width:26px;height:26px;border-radius:50%;background:var(--sage);color:var(--cream);font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center;margin-bottom:.6rem}
.launch-step h4{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--deep-green);margin-bottom:.25rem}
.launch-step p{font-size:var(--text-sm);color:var(--text-mid);line-height:1.55;max-width:none}
.launch-cta{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.launch-cta .btn{padding:.9rem 1.75rem;font-size:var(--text-base)}
.launch-note{font-size:var(--text-xs);color:var(--text-light)}
@media(max-width:700px){.launch-steps{grid-template-columns:1fr}.launch-cta{flex-direction:column;align-items:stretch;text-align:center}.launch-cta .btn{justify-content:center}}

/* ══ REV L — LAYOUT ALIGNMENT PASS (Sept 2026) ═══════════════════════════
   A review across all pages found four places where blocks disagreed about
   their width, which read as "ragged". Fixes are additive; no existing rule
   is changed and no colour, type or imagery is touched.
   ───────────────────────────────────────────────────────────────────── */

/* 1. LEAD PARAGRAPHS — p{max-width:68ch} made intro paragraphs stop ~360px
      short of the full-width table or card grid directly beneath them. A
      paragraph tagged .lead spans the content column so the left AND right
      edges line up with whatever follows it. */
.lead{max-width:none;color:var(--text-mid);line-height:1.75;margin-bottom:1.25rem}

/* 2. HOME INTRO COLUMN — the 680px reading column sat hard left inside the
      980px container, leaving a large empty gutter on the right. Centred, it
      reads as a deliberate measure rather than a broken grid. */
.intro-col{margin-left:auto;margin-right:auto}

/* 3. SERVICES GRID — all four cells share one khaki background (REV C), so
      the 2×2 grid read as a single block with no column break. A hairline
      divider restores the grid without changing the colour. */
@media(min-width:701px){.services-grid .svc-cell:nth-child(odd){border-right:1px solid var(--border)}}

/* 4. CONTACT COLUMNS — the left column was narrower than the form, so short
      sentences broke across three lines and hyphenated awkwardly. Even
      columns give both sides a comfortable measure. */
.enq-grid{grid-template-columns:1fr 1fr;align-items:start}
@media(max-width:700px){.enq-grid{grid-template-columns:1fr}}

/* 4b. CONTACT BAR — the standard location line is long; give it a tidy
      two-line break instead of wrapping mid-phrase. */
.contact-value .loc-2{display:block}

/* 5. NAV — "Resource Library" is a longer label than "Resources", so the row
      needs more width before it fits beside the Book CTA. Links never wrap,
      the gap tightens on mid-size screens, and the mobile menu now takes over
      at 980px instead of 740px (between those widths the old nav collapsed). */
.nav-links a{white-space:nowrap}
.nav-brand-name,.nav-brand-tag{white-space:nowrap}
@media(min-width:981px) and (max-width:1180px){.nav-links{gap:1.05rem}.nav{padding:.9rem 1.25rem}}
@media(max-width:980px){
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--deep-green);padding:1rem 1.5rem;gap:.75rem;z-index:99}
  .mob-toggle{display:block}
  .nav{padding:.75rem 1.25rem}
  .nav-links.open .nav-book{width:100%;text-align:center;justify-content:center;display:flex}
}

/* 6. BOOKING STEPS — the three steps sat in a fixed 3-column grid, but on the
      booking page they live in a ~570px column beside the sidebar, so each one
      was squeezed to ~155px and the headings broke across two lines. They now
      stack as full-width rows (number beside the heading) whenever the panel is
      narrow, and return to three across when there is genuinely room. */
.launch-body{container-type:inline-size}
.launch-steps{display:flex;flex-direction:column;gap:.75rem}
.launch-step{display:grid;grid-template-columns:26px 1fr;column-gap:.85rem;row-gap:.15rem;align-items:start;padding:.9rem 1.15rem}
.launch-step .launch-num{grid-row:1;grid-column:1;margin-bottom:0;margin-top:1px}
.launch-step h4{grid-row:1;grid-column:2;margin-bottom:0}
.launch-step p{grid-row:2;grid-column:2}
@container (min-width:620px){
  .launch-steps{flex-direction:row}
  .launch-step{flex:1 1 0;display:block;padding:1rem 1.25rem}
  .launch-step .launch-num{margin-bottom:.6rem;margin-top:0}
  .launch-step h4{margin-bottom:.25rem}
}
