
:root{--navy:#1B2A4A;--navy-deep:#0F1A30;--navy-light:#2A3D66;--gold:#C4A84E;--gold-light:#D4BE78;--gold-pale:#E8D9A8;--burgundy:#6B2D3E;--burgundy-light:#8A3D52;--cream:#FAF6EE;--cream-dark:#F0E8D8;--parchment:#F5EDE0;--text-dark:#2C2C2C;--text-medium:#5A5A5A;--text-light:#8A8A7A;--white:#FFFFFF;}
*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}
body{font-family:'Cormorant Garamond',Georgia,serif;color:var(--text-dark);background:var(--cream);overflow-x:hidden;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(27,42,74,.97);backdrop-filter:blur(12px);border-bottom:2px solid var(--gold);transition:all .4s;}
nav.scrolled{background:rgba(15,26,48,.99);box-shadow:0 4px 30px rgba(0,0,0,.3);}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:72px;}
.nav-brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
.nav-compass{width:40px;height:40px;}
.nav-title{font-family:'Playfair Display',serif;color:var(--gold);font-size:1.1rem;font-weight:700;letter-spacing:1px;}
.nav-title span{display:block;font-family:'Josefin Sans',sans-serif;font-size:.55rem;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--gold-pale);margin-top:2px;}
.nav-links{display:flex;gap:1.4rem;align-items:center;list-style:none;}
.nav-links a{font-family:'Josefin Sans',sans-serif;color:var(--cream);text-decoration:none;font-size:.68rem;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;transition:color .3s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s;}
.nav-links a:hover,.nav-links a.active{color:var(--gold);}.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-cta{font-family:'Josefin Sans',sans-serif;background:var(--gold)!important;color:var(--navy)!important;padding:10px 22px!important;font-weight:600!important;letter-spacing:2px;transition:all .3s;border:none;cursor:pointer;}
.nav-cta::after{display:none!important;}.nav-cta:hover{background:var(--gold-light)!important;transform:translateY(-1px);}
.mobile-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px;}
.mobile-toggle span{width:24px;height:2px;background:var(--gold);transition:all .3s;}

/* HERO (page-level) */
.page-hero{padding:10rem 2rem 5rem;text-align:center;position:relative;overflow:hidden;}
.page-hero.dark{background:var(--navy-deep);}
.page-hero.dark .hero-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 20% 50%,rgba(196,168,78,.08) 0%,transparent 60%),radial-gradient(ellipse at 80% 30%,rgba(107,45,62,.1) 0%,transparent 50%);}
.page-hero .inner{position:relative;z-index:2;max-width:800px;margin:0 auto;}
.page-hero .tagline{font-family:'Josefin Sans',sans-serif;color:var(--gold);font-size:.8rem;font-weight:400;letter-spacing:6px;text-transform:uppercase;margin-bottom:1.25rem;}
.page-hero h1{font-family:'Playfair Display',serif;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:700;line-height:1.15;margin-bottom:1.25rem;}
.page-hero.dark h1{color:var(--cream);}
.page-hero h1 em{color:var(--gold);font-style:italic;}
.page-hero .subtitle{font-size:1.3rem;line-height:1.7;max-width:650px;margin:0 auto 2rem;}
.page-hero.dark .subtitle{color:var(--gold-pale);}
.hero-buttons{display:flex;gap:1.25rem;justify-content:center;flex-wrap:wrap;}
.hero-location{font-family:'Josefin Sans',sans-serif;color:var(--text-light);font-size:.7rem;letter-spacing:3px;text-transform:uppercase;margin-top:2.5rem;}

/* BUTTONS */
.btn{font-family:'Josefin Sans',sans-serif;font-size:.78rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;padding:15px 36px;text-decoration:none;transition:all .35s;cursor:pointer;border:none;display:inline-block;}
.btn-primary{background:var(--gold);color:var(--navy);}.btn-primary:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 8px 30px rgba(196,168,78,.3);}
.btn-outline{background:transparent;color:var(--cream);border:1px solid var(--gold-pale);}.btn-outline:hover{background:rgba(196,168,78,.1);border-color:var(--gold);color:var(--gold);transform:translateY(-2px);}
.btn-outline-dark{background:transparent;color:var(--navy);border:1px solid var(--navy);}.btn-outline-dark:hover{background:var(--navy);color:var(--cream);transform:translateY(-2px);}
.btn-sm{padding:12px 28px;font-size:.7rem;}

/* SECTIONS */
section{padding:5rem 2rem;}
.section-inner{max-width:1100px;margin:0 auto;}
.section-label{font-family:'Josefin Sans',sans-serif;color:var(--gold);font-size:.7rem;font-weight:500;letter-spacing:5px;text-transform:uppercase;margin-bottom:1rem;}
.section-heading{font-family:'Playfair Display',serif;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:700;line-height:1.25;margin-bottom:1.25rem;}
.section-sub{font-size:1.15rem;color:var(--text-medium);max-width:650px;line-height:1.7;margin-bottom:3rem;}
.centered{text-align:center;}.centered .section-sub{margin-left:auto;margin-right:auto;}

/* CARDS (generic) */
.card{background:var(--white);border:1px solid var(--cream-dark);padding:2.5rem 2rem;transition:all .4s;position:relative;overflow:hidden;}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold),var(--burgundy));transform:scaleX(0);transform-origin:left;transition:transform .4s;}
.card:hover::before{transform:scaleX(1);}.card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(27,42,74,.08);}
.card h3{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:700;color:var(--navy);margin-bottom:.75rem;}
.card p{font-size:1.05rem;color:var(--text-medium);line-height:1.7;}

/* DARK CARDS */
.card-dark{background:rgba(255,255,255,.04);border:1px solid rgba(196,168,78,.15);padding:2.5rem 2rem;transition:all .4s;}
.card-dark:hover{background:rgba(255,255,255,.07);border-color:rgba(196,168,78,.3);}
.card-dark h3{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:700;color:var(--cream);margin-bottom:.75rem;}
.card-dark p{font-size:1.05rem;color:var(--gold-pale);line-height:1.7;}

/* BADGE */
.badge{font-family:'Josefin Sans',sans-serif;font-size:.6rem;font-weight:500;letter-spacing:3px;text-transform:uppercase;padding:5px 14px;display:inline-block;margin-bottom:1.25rem;}
.badge-gold{color:var(--gold);background:rgba(196,168,78,.1);border:1px solid rgba(196,168,78,.2);}
.badge-burg{color:var(--burgundy);background:rgba(107,45,62,.08);border:1px solid rgba(107,45,62,.15);}

/* META */
.meta{font-family:'Josefin Sans',sans-serif;font-size:.7rem;letter-spacing:1px;color:var(--text-light);margin-top:.75rem;}
.meta span{margin-right:1.25rem;}

/* GRIDS */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;}

/* ACCORDION */
.accordion{border:1px solid var(--cream-dark);margin-bottom:1rem;overflow:hidden;background:var(--white);transition:all .3s;}
.accordion:hover{border-color:var(--gold-pale);}
.accordion-trigger{width:100%;background:none;border:none;font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:600;color:var(--navy);padding:1.5rem 2rem;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:color .3s;}
.accordion-trigger:hover{color:var(--burgundy);}
.accordion-toggle{color:var(--gold);font-size:1.4rem;font-family:'Josefin Sans',sans-serif;transition:transform .3s;flex-shrink:0;}
.accordion.open .accordion-toggle{transform:rotate(45deg);}
.accordion-body{max-height:0;overflow:hidden;transition:max-height .5s;padding:0 2rem;}
.accordion.open .accordion-body{max-height:800px;padding:0 2rem 2rem;}
.accordion-body p{font-size:1.05rem;color:var(--text-medium);line-height:1.7;margin-bottom:.75rem;}
.accordion-body .md-label{color:var(--navy);font-weight:600;}
.narrative{font-style:italic;border-left:3px solid var(--gold);padding-left:1rem;margin-bottom:1.25rem!important;color:var(--text-dark)!important;}

/* DARK ACCORDION */
.accordion-dark{background:rgba(255,255,255,.03);border:1px solid rgba(196,168,78,.12);}
.accordion-dark:hover{border-color:rgba(196,168,78,.25);}
.accordion-dark .accordion-trigger{color:var(--cream);}
.accordion-dark .accordion-trigger:hover{color:var(--gold);}
.accordion-dark .accordion-body p{color:var(--gold-pale);}
.accordion-dark .narrative{color:var(--cream)!important;border-color:var(--gold);}
.accordion-dark .md-label{color:var(--gold)!important;}

/* SECTIONS BG */
.bg-cream{background:var(--cream);}.bg-white{background:var(--white);}.bg-parchment{background:var(--parchment);}
.bg-navy{background:var(--navy-deep);position:relative;}.bg-navy::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(196,168,78,.05) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(107,45,62,.06) 0%,transparent 50%);}
.bg-navy .section-inner{position:relative;z-index:1;}.bg-navy .section-heading{color:var(--cream);}.bg-navy .section-sub{color:var(--gold-pale);}.bg-navy .section-label{color:var(--gold);}
.bg-navy-solid{background:var(--navy);position:relative;}
.bg-navy-solid .section-inner{position:relative;z-index:1;}.bg-navy-solid .section-heading{color:var(--cream);}.bg-navy-solid .section-sub{color:var(--gold-pale);}

/* PRICING */
.price-card{border:1px solid var(--cream-dark);padding:2.5rem 2rem;text-align:center;position:relative;transition:all .4s;background:var(--white);}
.price-card.featured{border-color:var(--gold);}
.price-card.featured::before{content:'MOST POPULAR';font-family:'Josefin Sans',sans-serif;font-size:.6rem;letter-spacing:3px;position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--navy);padding:4px 16px;font-weight:600;}
.price-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(27,42,74,.08);}
.price-card h3{font-family:'Playfair Display',serif;font-size:1.3rem;font-weight:700;color:var(--navy);margin-bottom:.5rem;}
.price-desc{font-size:.95rem;color:var(--text-medium);margin-bottom:1.5rem;line-height:1.5;}
.price-amount{font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:700;color:var(--navy);}
.price-period{font-family:'Josefin Sans',sans-serif;font-size:.7rem;letter-spacing:1px;color:var(--text-light);margin-bottom:1.5rem;display:block;}
.price-features{list-style:none;text-align:left;margin-bottom:2rem;}
.price-features li{font-size:.95rem;color:var(--text-medium);padding:.5rem 0;border-bottom:1px solid var(--cream-dark);line-height:1.5;}
.price-features li::before{content:'\2713';color:var(--gold);margin-right:.75rem;font-weight:700;}
.price-note{font-family:'Josefin Sans',sans-serif;font-size:.65rem;letter-spacing:1px;color:var(--text-light);text-align:center;margin-top:2rem;max-width:700px;margin-left:auto;margin-right:auto;line-height:1.8;}

/* JOURNEY RANKS */
.journey-steps{display:flex;justify-content:center;gap:0;margin-top:2rem;}
.journey-step{flex:1;max-width:250px;text-align:center;padding:2rem 1.5rem;position:relative;}
.journey-step::after{content:'';position:absolute;top:52px;right:-20px;width:40px;height:2px;background:linear-gradient(90deg,var(--gold),var(--burgundy));}
.journey-step:last-child::after{display:none;}
.step-rank{width:64px;height:64px;border-radius:50%;background:var(--navy);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;font-family:'Playfair Display',serif;color:var(--gold);font-size:1.4rem;font-weight:700;}
.step-title{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:.75rem;}
.step-desc{font-size:.95rem;color:var(--text-medium);line-height:1.6;}

/* HOW IT WORKS */
.steps-row{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;counter-reset:step;}
.step-item{text-align:center;position:relative;counter-increment:step;}
.step-num{font-family:'Playfair Display',serif;font-size:2.5rem;font-weight:700;color:var(--gold);margin-bottom:.75rem;}
.step-item h3{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--navy);margin-bottom:.5rem;}
.step-item p{font-size:.95rem;color:var(--text-medium);line-height:1.6;}

/* ABOUT */
.about-layout{display:grid;grid-template-columns:1fr 1.4fr;gap:4rem;align-items:center;}
.about-image-frame{aspect-ratio:3/4;background:linear-gradient(145deg,var(--navy),var(--navy-light));position:relative;overflow:hidden;}
.about-image-frame::before{content:'';position:absolute;inset:12px;border:1px solid var(--gold-pale);z-index:1;pointer-events:none;}
.about-accent{position:absolute;bottom:-16px;right:-16px;width:120px;height:120px;background:var(--gold);z-index:-1;}
.credentials{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;}
.credential-tag{font-family:'Josefin Sans',sans-serif;font-size:.65rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;padding:8px 16px;border:1px solid var(--cream-dark);color:var(--navy);background:var(--cream);}

/* FORM */
.form-section{background:var(--white);}
.contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}
.styled-form{background:var(--cream);padding:2.5rem;border:1px solid var(--cream-dark);}
.form-group{margin-bottom:1.25rem;}
.form-group label{display:block;font-family:'Josefin Sans',sans-serif;font-size:.7rem;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--navy);margin-bottom:.5rem;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:1px solid var(--cream-dark);background:var(--white);font-family:'Cormorant Garamond',Georgia,serif;font-size:1.05rem;color:var(--text-dark);transition:border-color .3s;outline:none;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gold);}
.form-group textarea{min-height:100px;resize:vertical;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.form-submit{font-family:'Josefin Sans',sans-serif;background:var(--gold);color:var(--navy);padding:14px 40px;font-size:.75rem;font-weight:600;letter-spacing:2px;text-transform:uppercase;border:none;cursor:pointer;transition:all .3s;width:100%;margin-top:.5rem;}
.form-submit:hover{background:var(--gold-light);transform:translateY(-1px);}

/* CTA BANNER */
.cta-banner{background:linear-gradient(160deg,var(--navy-deep),var(--navy) 50%,var(--burgundy));text-align:center;padding:5rem 2rem;position:relative;}
.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(196,168,78,.06) 0%,transparent 50%);}
.cta-banner .section-inner{position:relative;z-index:1;}
.cta-banner h2{font-family:'Playfair Display',serif;color:var(--cream);font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:700;margin-bottom:1rem;}
.cta-banner p{font-size:1.2rem;color:var(--gold-pale);margin-bottom:2rem;max-width:550px;margin-left:auto;margin-right:auto;line-height:1.7;}

/* FAQ */
.faq-item{border-bottom:1px solid var(--cream-dark);overflow:hidden;}
.faq-question{width:100%;background:none;border:none;font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:600;color:var(--navy);padding:1.5rem 0;text-align:left;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:color .3s;}
.faq-question:hover{color:var(--burgundy);}
.faq-toggle{font-family:'Josefin Sans',sans-serif;font-size:1.4rem;color:var(--gold);transition:transform .3s;flex-shrink:0;margin-left:1rem;}
.faq-item.open .faq-toggle{transform:rotate(45deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s,padding .4s;}
.faq-item.open .faq-answer{max-height:500px;padding-bottom:1.5rem;}
.faq-answer p{font-size:1.05rem;color:var(--text-medium);line-height:1.7;}

/* FOOTER */
footer{background:var(--navy-deep);border-top:2px solid var(--gold);padding:3rem 2rem;}
.footer-inner{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:1.5rem;text-align:center;}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:.5rem;}
.footer-brand-text{font-family:'Playfair Display',serif;color:var(--gold);font-size:1rem;font-weight:600;}
.footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;justify-content:center;}
.footer-links a{font-family:'Josefin Sans',sans-serif;color:var(--gold-pale);text-decoration:none;font-size:.7rem;letter-spacing:2px;text-transform:uppercase;transition:color .3s;}
.footer-links a:hover{color:var(--gold);}
.footer-info p{font-family:'Josefin Sans',sans-serif;color:var(--text-light);font-size:.7rem;letter-spacing:1px;line-height:1.8;}
.footer-info a{color:var(--gold-pale);text-decoration:none;}.footer-info a:hover{color:var(--gold);}

.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s,transform .8s;}.reveal.visible{opacity:1;transform:translateY(0);}

@media(max-width:900px){
  .nav-links{display:none;}.mobile-toggle{display:flex;}
  .nav-links.mobile-open{display:flex;flex-direction:column;position:absolute;top:72px;left:0;right:0;background:var(--navy-deep);padding:2rem;gap:1.5rem;border-bottom:2px solid var(--gold);}
  .grid-2,.grid-3,.grid-4,.contact-layout,.about-layout,.form-row,.steps-row{grid-template-columns:1fr;}
  .journey-steps{flex-direction:column;align-items:center;}.journey-step::after{display:none;}
}
