@font-face{font-family:'Ramillas';src:url('https://static1.squarespace.com/static/68d3e62cf6980212437e24a7/t/68d3e96998fb7811119e6a18/1758718315493/tt-medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Ramillas';src:url('https://static1.squarespace.com/static/68d3e62cf6980212437e24a7/t/68d3e96933cef340d250cd9a/1758718315665/tt-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap;}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Inter Tight',sans-serif;font-size:16px;line-height:1.6;color:#1a1a1a;background:#fff;-webkit-font-smoothing:antialiased;overflow-x:hidden;}

/* HEADINGS */
h1,h2,h3{font-family:'Ramillas','Instrument Serif',serif;font-weight:500;font-style:normal;line-height:1.15;color:#1a1a1a;letter-spacing:-0.03em;}
h1{font-size:clamp(2.2rem,4.5vw,3.2rem);}
h2{font-size:clamp(1.8rem,3.5vw,2.6rem);}
h3{font-size:clamp(1.3rem,2.5vw,1.7rem);}
h4{font-family:'Ramillas','Instrument Serif',serif;font-weight:500;font-style:normal;font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.2;letter-spacing:-0.02em;}

p{color:#333;line-height:1.7;font-size:0.95rem;}
p+p{margin-top:1em;}
a{color:inherit;text-decoration:none;}
a:focus,button:focus,input:focus,select:focus,textarea:focus{outline:none;box-shadow:none;}
button{border:none;outline:none;box-shadow:none;-webkit-appearance:none;appearance:none;}
img{display:block;max-width:100%;}

:root{
  --cream:#E8E4DF;
  --card-bg:#F0EDEA;
  --green-btn:#2D4A3E;
  --green-muted:#5C6B4F;
  --border:#e0dbd4;
  --text:#1a1a1a;
  --muted:#555;
}

/* LAYOUT */
.container{max-width:1240px;margin:0 auto;padding:0 40px;}
@media(max-width:768px){.container{padding:0 20px;}}
.section{padding:80px 0;}
.section--cream{background:var(--cream);}
.section--white{background:#fff;}

/* ===== NAV ===== */
nav{position:fixed;top:0;left:0;right:0;z-index:200;background:#fff;border-bottom:1px solid #efefef;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;}
.logo{display:inline-block;text-decoration:none;line-height:1;}
.logo img{height:38px;width:auto;display:block;}
.logo-exp{display:none;}
.logo-sub{display:none;}
.nav-links{display:flex;align-items:center;gap:36px;list-style:none;}
.nav-links a{font-family:'Inter Tight',sans-serif;font-size:0.875rem;font-weight:400;color:#1a1a1a;text-decoration:none;transition:opacity .2s;}
.nav-links a:hover,.nav-links a.active{text-decoration:underline;text-underline-offset:3px;}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.hamburger span{width:22px;height:1.5px;background:#1a1a1a;display:block;}
.mobile-menu{display:none;position:fixed;inset:0;background:#fff;z-index:199;flex-direction:column;align-items:center;justify-content:center;gap:32px;}
.mobile-menu.open{display:flex;}
.mobile-menu a{font-family:'Instrument Serif',serif;font-style:italic;font-size:2rem;color:#1a1a1a;}
.mobile-close{position:absolute;top:20px;right:28px;font-size:28px;cursor:pointer;background:none;border:none;color:#1a1a1a;}
@media(max-width:768px){nav{padding:14px 20px;}.nav-links{display:none;}.hamburger{display:flex;}}

/* ===== HERO ===== */
.hero{padding:160px 0 80px;background:#fff;text-align:center;}
.hero-eyebrow{font-family:'Inter Tight',sans-serif;font-size:0.7rem;letter-spacing:4px;text-transform:uppercase;color:#999;margin-bottom:20px;display:block;}
.hero-heading{font-family:'Ramillas','Instrument Serif',serif;font-style:normal;font-weight:500;font-size:clamp(2.2rem,4.5vw,3.2rem);color:#1a1a1a;max-width:800px;margin:0 auto;line-height:1.15;text-align:center;letter-spacing:-0.03em;}
.hero-heading em{font-family:'Ramillas','Instrument Serif',serif;font-style:italic;font-weight:400;}

/* ===== ABOUT ===== */
#about{background:var(--cream);}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;}
@media(max-width:900px){.two-col{grid-template-columns:1fr;gap:40px;}}
.section-label{font-family:'Inter Tight',sans-serif;font-size:0.65rem;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:#1a1a1a;display:block;margin-bottom:16px;}
.section-divider{display:none;}
.about-text h2{margin-bottom:28px;}
.about-text p{margin-bottom:16px;font-size:1rem;}
.about-img{border-radius:14px;width:100%;height:420px;object-fit:cover;}
@media(max-width:900px){.about-img{height:280px;}}

/* ===== EXPERIENCES ===== */
#experiences .exp-intro{text-align:center;padding:80px 0 60px;background:#fff;}
#experiences .exp-intro h2{margin-bottom:20px;}
#experiences .exp-intro p{max-width:680px;margin:0 auto;font-size:1rem;}
#experiences .upcoming{background:var(--cream);padding:60px 0 80px;}
#experiences .past{background:#fff;padding:60px 0 80px;}
.exp-section-h{text-align:center;margin-bottom:50px;}

/* UPCOMING CARDS — 2 col, image top */
.upcoming-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch;}
@media(max-width:768px){.upcoming-grid{grid-template-columns:1fr;}}
.upcoming-card{background:var(--card-bg);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;height:100%;}
.upcoming-card .card-img{width:100%;height:280px;object-fit:cover;display:block;}
.upcoming-card .card-body{padding:32px 32px 24px;display:flex;flex-direction:column;flex:1;min-height:0;}
.upcoming-card h4{margin-bottom:14px;font-size:clamp(1.5rem,2.5vw,2rem);}
.upcoming-card .card-desc{font-size:0.9rem;color:var(--muted);line-height:1.65;margin-bottom:0;flex:1 1 auto;}
.upcoming-card .card-footer{margin-top:auto;padding-top:20px;}
.upcoming-card .card-date{font-family:'Inter Tight',sans-serif;font-size:0.85rem;color:var(--green-muted);margin-bottom:20px;}
.upcoming-card .card-soon{font-family:'Inter Tight',sans-serif;font-size:0.85rem;color:var(--green-muted);margin-bottom:24px;}
.btn-inquire{display:inline-block;text-align:center;font-family:'Inter Tight',sans-serif;font-size:0.875rem;font-weight:400;letter-spacing:0;text-transform:none;color:#fff;background:var(--green-btn);padding:14px 36px;border-radius:50px;border:0 !important;outline:0 !important;box-shadow:none !important;-webkit-appearance:none !important;appearance:none !important;cursor:pointer;text-decoration:none;transition:opacity .2s;}
.btn-inquire:hover{opacity:0.85;}

/* PAST CARDS — 3 col grid */
.past-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
@media(max-width:960px){.past-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.past-grid{grid-template-columns:1fr;}}
.past-card{background:var(--card-bg);border-radius:14px;overflow:hidden;}
.past-card .card-img{width:100%;height:220px;object-fit:cover;display:block;}
.past-card .card-body{padding:24px;}
.past-card h4{margin-bottom:6px;font-size:1.4rem;}
.past-card .card-type{font-family:'Inter Tight',sans-serif;font-size:0.8rem;font-weight:700;color:#1a1a1a;margin-bottom:12px;}
.past-card .card-desc{font-size:0.875rem;color:var(--muted);line-height:1.65;}

/* ===== LUSSOIREE ===== */
#lussoiree{background:var(--cream);}
#lussoiree .two-col{gap:80px;}
.lussoiree-img{width:100%;height:500px;object-fit:cover;border-radius:14px;}
.lussoiree-text p{font-size:1rem;margin-bottom:16px;}
.btn-dark{display:inline-block;font-family:'Inter Tight',sans-serif;font-size:0.875rem;color:#fff;background:#1a1a1a;padding:14px 36px;border-radius:50px;margin-top:24px;transition:background .2s;}
.btn-dark:hover{background:#333;}

/* ===== REACH OUT ===== */
#reach-out .reach-intro{background:#fff;padding:80px 0 60px;text-align:center;}
#reach-out .reach-intro .contact-label{font-family:'Inter Tight',sans-serif;font-size:0.65rem;letter-spacing:3px;text-transform:uppercase;color:var(--green-btn);display:block;margin-bottom:14px;}
#reach-out .reach-intro h2{margin-bottom:20px;}
#reach-out .reach-intro h2 em{font-style:italic;}
#reach-out .reach-intro p{max-width:560px;margin:0 auto;font-size:0.95rem;}
#reach-out .reach-body{background:var(--cream);padding:60px 0 80px;}
.contact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:900px;margin:0 auto;}
@media(max-width:768px){.contact-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:440px){.contact-grid{grid-template-columns:1fr;}}
.contact-item-label{font-family:'Inter Tight',sans-serif;font-size:0.65rem;letter-spacing:2px;text-transform:uppercase;color:#888;display:block;margin-bottom:8px;}
.contact-item a{font-size:0.9rem;color:#1a1a1a;display:block;text-decoration:none;}
.contact-item a:hover{text-decoration:underline;}

/* ===== FOOTER ===== */
footer{background:#fff;border-top:1px solid var(--border);padding:50px 0;}
footer .container{max-width:1600px;padding:0 60px;}
.footer-inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;margin-bottom:36px;}
@media(max-width:768px){.footer-inner{grid-template-columns:1fr;text-align:center;}}
.footer-addr{font-family:'Inter Tight',sans-serif;font-size:0.82rem;color:#888;line-height:1.9;}
.footer-center{display:flex;align-items:center;justify-content:center;gap:14px;}
.btn-wa-footer{display:inline-flex;align-items:center;font-family:'Inter Tight',sans-serif;font-size:0.875rem;color:#fff;background:var(--green-btn);padding:14px 28px;border-radius:50px;white-space:nowrap;}
.btn-wa-footer:hover{background:#1f3329;}
.ig-circle{width:46px;height:46px;border-radius:50%;background:var(--green-btn);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.ig-circle svg{width:20px;height:20px;fill:#fff;}
.footer-right{text-align:right;}
.footer-right p{font-family:'Inter Tight',sans-serif;font-size:0.82rem;color:#888;margin-bottom:4px;}
.footer-right a{font-family:'Inter Tight',sans-serif;font-size:0.85rem;color:#888;text-decoration:underline;text-underline-offset:3px;}
.footer-bottom{border-top:1px solid var(--border);padding-top:24px;text-align:center;}
.footer-bottom p{font-family:'Inter Tight',sans-serif;font-size:0.8rem;color:#aaa;}

/* SIDE NAV DOTS */
.side-nav{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:500;display:flex;flex-direction:column;align-items:center;gap:16px;}
.side-nav::before{content:'';position:absolute;width:1px;height:100%;background:rgba(30,118,123,0.12);left:50%;transform:translateX(-50%);}
.sn-fill{position:absolute;width:1px;background:#1e767b;left:50%;transform:translateX(-50%);top:0;height:0%;transition:height .3s;}
.sn-dot{width:7px;height:7px;border-radius:50%;border:1.5px solid rgba(30,118,123,0.3);background:transparent;position:relative;z-index:1;cursor:pointer;transition:all .3s;flex-shrink:0;}
.sn-dot.active{width:10px;height:10px;background:#1e767b;border-color:#1e767b;box-shadow:0 0 8px rgba(30,118,123,0.4);}
.sn-dot .sn-tip{position:absolute;right:20px;top:50%;transform:translateY(-50%) translateX(4px);font-family:'Inter Tight',sans-serif;font-size:8px;letter-spacing:2px;text-transform:uppercase;color:#1e767b;white-space:nowrap;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;background:rgba(255,255,255,0.97);padding:3px 8px;border-radius:4px;box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.sn-dot:hover .sn-tip{opacity:1;transform:translateY(-50%) translateX(0);}
@media(max-width:1100px){.side-nav{display:none;}}

/* WA FLOAT */
#wa-float{position:fixed;bottom:22px;right:22px;z-index:999;}
#wa-float a{display:block;width:52px;height:52px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,0.15);transition:transform .2s;}
#wa-float a:hover{transform:scale(1.08);}
#wa-float svg{width:28px;height:28px;fill:#fff;}

/* PAGE HERO (inner pages) */
.page-hero{padding:160px 0 60px;background:#fff;text-align:center;}
.page-hero h1{max-width:600px;margin:0 auto 20px;}
.page-hero-desc{max-width:640px;margin:0 auto;font-size:1rem;}

/* CARD BUTTONS */
.card-buttons{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;}

/* INFO CARDS (about page) */
.two-col-cards{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media(max-width:768px){.two-col-cards{grid-template-columns:1fr;}}
.info-card{background:var(--card-bg);border-radius:14px;overflow:hidden;}
.info-card-img{width:100%;height:260px;object-fit:cover;display:block;border-radius:14px 14px 0 0;}
.info-card h3{padding:28px 28px 12px;margin:0;}
.info-card p{padding:0 28px 28px;font-size:0.95rem;}

/* FORM */
.reach-form{max-width:640px;margin:0 auto;}
.form-row{margin-bottom:24px;}
.form-row--half{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:560px){.form-row--half{grid-template-columns:1fr;}}
.form-group{margin-bottom:24px;}
.form-group label{display:block;font-family:'Inter Tight',sans-serif;font-size:0.875rem;font-weight:700;color:#1a1a1a;margin-bottom:6px;}
.form-group .req{font-weight:400;color:#888;}
.form-helper{font-size:0.8rem;color:#888;margin-bottom:8px;margin-top:0;}
.form-group input,.form-group select,.form-group textarea{width:100%;font-family:'Inter Tight',sans-serif;font-size:0.9rem;padding:14px 16px;border:1px solid #d4d0cb;border-radius:6px;background:#fff;color:#1a1a1a;outline:none;transition:border-color .2s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#1a1a1a;}
.form-group textarea{resize:vertical;min-height:120px;}
.form-group select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:40px;}

/* BRAND LINK */
.brand-link{color:#58A97A;text-decoration:underline;text-underline-offset:2px;}
.brand-link:hover{color:#1e767b;}

/* REVEAL */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
