:root{--olive:#C4788A;--olive-dark:#8B4A5C;--sand:#F7F0F2;--terracotta:#D4A574;--terracotta-dark:#8B4A5C;--ivory:#FFFFFF;--charcoal:#3A3034;--radius:12px;--shadow:0 8px 28px rgba(58,48,52,.08)}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'Inter',system-ui,sans-serif;color:var(--charcoal);background:#FFFFFF;line-height:1.7;position:relative}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='none' stroke='%23C4788A' stroke-width='1.2'%3E%3Cpath d='M40 4l10 14h17l-6 16 6 16H50L40 64 30 50H13l6-16-6-16h17z'/%3E%3Ccircle cx='40' cy='34' r='9'/%3E%3Cpath d='M0 0l12 12M80 0L68 12M0 80l12-12M80 80L68 68'/%3E%3C/g%3E%3C/svg%3E");background-size:80px 80px}
h1,h2,h3,.font-display{font-family:'Cormorant Garamond',Georgia,serif;line-height:1.15;color:var(--olive-dark)}
h1{font-weight:700;letter-spacing:-.01em}
h2{font-weight:700}
.arabic{font-family:'Amiri',serif;line-height:1.9}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--olive);color:#fff;padding:.75rem 1rem;z-index:100;border-radius:0 0 8px 0}
.skip-link:focus{left:0}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--terracotta);outline-offset:3px;border-radius:6px}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid rgba(196,120,138,.15)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;min-width:44px;padding:.7rem 1.4rem;border-radius:999px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s;cursor:pointer;border:2px solid transparent}
.btn-primary{background:var(--olive-dark);color:#fff}
.btn-primary:hover{background:#6F3A49;transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-ghost{border-color:var(--olive);color:var(--olive-dark);background:transparent}
.btn-ghost:hover{background:var(--olive);color:#fff}
.icon-btn{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--olive-dark)}
.card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(196,120,138,.10)}
.section{padding:5rem 0}
@media(min-width:768px){.section{padding:6.5rem 0}}
.eyebrow{font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--terracotta-dark);font-weight:600}
.divider{width:72px;height:3px;background:var(--terracotta);border-radius:3px;margin:1rem 0 1.5rem}
.center .divider{margin-left:auto;margin-right:auto}
.icon-wrap{width:52px;height:52px;border-radius:12px;background:var(--sand);display:flex;align-items:center;justify-content:center;color:var(--olive)}
.trust li{display:flex;align-items:center;gap:.5rem}
.trust li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--olive);flex:none}
.photo-ph{aspect-ratio:4/5;border-radius:var(--radius);background:linear-gradient(160deg,var(--sand),#EBD3DA);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow);border:6px solid #fff}
details.faq{background:#fff;border-radius:var(--radius);border:1px solid rgba(196,120,138,.12);box-shadow:0 2px 10px rgba(0,0,0,.03)}
details.faq summary{cursor:pointer;list-style:none;padding:1.1rem 1.25rem;min-height:44px;font-weight:600;display:flex;justify-content:space-between;gap:1rem;align-items:center}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-size:1.5rem;color:var(--terracotta);line-height:1}
details.faq[open] summary::after{content:"\2212"}
details.faq .answer{padding:0 1.25rem 1.2rem}
.field label{display:block;font-weight:600;margin-bottom:.35rem}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.75rem 1rem;border:1.5px solid #DDBFC8;border-radius:10px;background:#fff;font:inherit;color:var(--charcoal)}
.field textarea{min-height:130px}
.field.invalid input,.field.invalid select{border-color:#a3271b}
.error{color:#a3271b;font-size:.9rem;margin-top:.3rem;min-height:1.2em}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.band{background:var(--olive);color:var(--ivory)}
.band h2{color:#fff}
.map-frame{width:100%;height:220px;border:0;border-radius:10px;background:var(--sand)}
.wa-float{position:fixed;right:1rem;bottom:5.5rem;z-index:60;width:58px;height:58px;border-radius:50%;background:#1f7a45;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.wa-float:hover{background:#17603a}
.mobile-nav[hidden]{display:none}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}
.badge-female{display:inline-block;background:var(--sand);color:var(--olive-dark);border-radius:999px;padding:.35rem .9rem;font-weight:600;font-size:.9rem}
.site-footer{background:#5C3A45;color:#F7F0F2}
.site-footer a{color:#fff}
.site-footer h2{color:#fff}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{transition:none!important;animation:none!important}}

/* Mobile sticky header: keep Enquire on one line */
.header-enquire .full{display:none}
.header-enquire .short{display:inline}
@media (min-width:480px){.header-enquire .full{display:inline}.header-enquire .short{display:none}}
.brand-text{font-size:1.15rem;max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (min-width:640px){.brand-text{font-size:1.5rem;max-width:none}}
.site-header .btn-primary{padding:.55rem 1rem;white-space:nowrap;flex-shrink:0}
/* Above-the-fold: avoid washed-out hero before JS */
main > section:first-of-type .reveal{opacity:1;transform:none}

@media (min-width:768px){.wa-float{bottom:1.25rem}}

.illust-frame{margin:0;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);border:1px solid rgba(196,120,138,.15);background:#fff}
.illust-img{display:block;width:100%;height:auto}
.illust-cap{padding:.85rem 1rem;text-align:center;font-size:.95rem;background:var(--sand);color:var(--charcoal)}
.pathway-thumb{width:140px;height:140px;object-fit:cover;border-radius:12px;box-shadow:0 4px 14px rgba(139,74,92,.12);border:1px solid rgba(196,120,138,.18)}
@media (max-width:767px){.pathway-thumb{width:100%;height:auto;aspect-ratio:1/1;max-height:220px}}
.about-photo{margin:0}
.about-img{display:block;width:100%;height:auto;border-radius:var(--radius);box-shadow:var(--shadow);border:6px solid #fff;background:var(--sand)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.brand-logo{height:40px;width:auto;display:block;flex-shrink:0}
@media (min-width:640px){.brand-logo{height:46px}}

/* ===== Polish pass ===== */
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
::selection{background:#F1D9E0;color:var(--olive-dark)}
img{max-width:100%}
.site-header{transition:box-shadow .25s ease,background .25s ease}
.site-header.scrolled{box-shadow:0 6px 24px rgba(58,48,52,.08);background:rgba(255,255,255,.98)}
.btn{transition:background .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease,border-color .2s ease;-webkit-tap-highlight-color:transparent}
.btn:active{transform:translateY(0) scale(.98)}
.btn-primary{box-shadow:0 4px 14px rgba(139,74,92,.18)}
.btn-primary:hover{box-shadow:0 10px 26px rgba(139,74,92,.26)}
.btn-ghost:hover{transform:translateY(-1px)}
.btn[aria-busy="true"]{opacity:.75;pointer-events:none}
.card{transition:transform .3s ease,box-shadow .3s ease}
@media (hover:hover){.card:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(58,48,52,.10)}}
.illust-frame{border-radius:16px}
.illust-img{aspect-ratio:auto;object-fit:cover;background:var(--sand)}
.pathway-thumb{background:var(--sand)}
.field input,.field select,.field textarea{transition:border-color .2s ease,box-shadow .2s ease}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--olive)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--olive-dark);box-shadow:0 0 0 4px rgba(196,120,138,.18)}
.field.invalid input:focus,.field.invalid select:focus{box-shadow:0 0 0 4px rgba(163,39,27,.14)}
.error:empty{min-height:0;margin-top:0}
.mobile-nav a{transition:color .2s ease,background .2s ease;border-radius:8px}
.mobile-nav a:hover{background:var(--sand);color:var(--olive-dark)}
nav[aria-label="Main"] a{transition:color .2s ease}
nav a[aria-current="page"]{color:var(--olive-dark);font-weight:600}
.site-footer a{text-underline-offset:3px;transition:opacity .2s ease}
.site-footer a:hover{text-decoration:underline;opacity:.9}
.wa-float{transition:transform .2s ease,background .2s ease}
.wa-float:hover{transform:scale(1.06)}
a.is-placeholder{cursor:not-allowed}
.reveal{transition:opacity .6s cubic-bezier(.2,.6,.2,1),transform .6s cubic-bezier(.2,.6,.2,1)}
@media (prefers-reduced-motion:reduce){.card:hover,.btn:hover,.wa-float:hover{transform:none}}
