/* delphius.co — design system. Palette tokens come from brand.css. Type: Cinzel (display) + Manrope (body). */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--delphius-ivory);color:var(--delphius-obsidian);
  font-family:Manrope,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:Cinzel,"Trajan Pro",Georgia,serif;font-weight:600;letter-spacing:.06em;line-height:1.18;text-transform:uppercase}
h1{letter-spacing:.08em}
p{margin:0 0 1rem}
a{color:inherit;text-decoration:none}
.wrap{width:min(1140px,92vw);margin-inline:auto}
.eyebrow{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.22em;font-size:.72rem;color:var(--delphius-bronze);margin:0 0 1rem}
.fineprint{font-size:.82rem;color:#6b6256;line-height:1.55}
.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;background:var(--delphius-obsidian);color:var(--delphius-ivory);padding:.6rem 1rem;z-index:200}

/* buttons */
.btn{display:inline-block;font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;padding:.85rem 1.5rem;border:1px solid var(--delphius-obsidian);transition:.2s}
.btn--solid{background:var(--delphius-obsidian);color:var(--delphius-ivory)}
.btn--solid:hover{background:var(--delphius-bronze-deep);border-color:var(--delphius-bronze-deep)}
.btn--ghost{background:transparent;color:var(--delphius-obsidian)}
.btn--ghost:hover{background:var(--delphius-obsidian);color:var(--delphius-ivory)}
.btn-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.btn-row--center{justify-content:center}
/* disabled (pre-launch) booking/submit state — clearly inert, not a broken link */
.btn.is-disabled{opacity:.55;cursor:not-allowed;background:var(--delphius-charcoal);border-color:var(--delphius-charcoal);color:var(--delphius-stone);pointer-events:none}
.btn--ghost.is-disabled{background:transparent;color:#8a8170;border-color:var(--delphius-stone)}
.link-arrow{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;color:var(--delphius-bronze-deep);border-bottom:1px solid var(--delphius-bronze)}

/* announcement bar */
.announce{background:var(--delphius-obsidian);color:var(--delphius-ivory);font-size:.86rem}
.announce__inner{display:flex;align-items:center;gap:1rem;min-height:42px;padding:.4rem 0}
.announce p{margin:0;flex:1;text-align:center}
.announce a{color:var(--delphius-bronze);border-bottom:1px solid var(--delphius-bronze);white-space:nowrap}
.announce a:hover{color:#fff}
.announce__close{background:none;border:0;color:var(--delphius-stone);font-size:1.3rem;line-height:1;cursor:pointer;padding:.2rem .4rem}
.announce__close:hover{color:#fff}

/* header / nav */
.site-header{position:sticky;top:0;z-index:100;background:rgba(244,240,232,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--delphius-stone)}
.site-header__inner{display:flex;align-items:center;gap:1.5rem;min-height:74px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.brand-mark{width:42px;height:42px;flex:0 0 auto}
.brand-word{font-family:Cinzel,"Trajan Pro",Georgia,serif;text-transform:uppercase;letter-spacing:.2em;font-size:1.05rem;font-weight:600;color:var(--delphius-obsidian)}
.nav{margin-left:auto}
.nav__list{display:flex;gap:1.35rem;list-style:none;margin:0;padding:0}
.nav__item>a{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.12em;font-size:.74rem;padding:.4rem 0;display:inline-block}
.nav__item>a:hover{color:var(--delphius-bronze-deep)}
.nav__item{position:relative}
.nav__sub{position:absolute;top:100%;left:0;min-width:240px;background:var(--delphius-obsidian);list-style:none;margin:0;padding:.5rem 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.18s;box-shadow:0 14px 40px rgba(0,0,0,.25)}
.nav__item.has-children:hover .nav__sub,.nav__item.has-children:focus-within .nav__sub{opacity:1;visibility:visible;transform:none}
.nav__sub a{display:block;padding:.55rem 1.1rem;color:var(--delphius-ivory);font-size:.82rem;letter-spacing:.04em}
.nav__sub a:hover{background:var(--delphius-charcoal);color:#fff}
.header-ctas{display:flex;gap:.6rem}
.nav-toggle{display:none;margin-left:auto;flex-direction:column;justify-content:center;gap:5px;width:46px;height:46px;padding:11px;background:none;border:0;cursor:pointer}
.nav-toggle span{display:block;height:2px;width:100%;background:var(--delphius-obsidian);border-radius:2px}
.mnav{position:fixed;inset:0;z-index:300;background:var(--delphius-ivory);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.1rem 1.5rem 2.5rem}
.mnav[hidden]{display:none}
.mnav__top{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--delphius-stone);padding-bottom:.8rem;margin-bottom:.6rem}
.mnav__close{background:none;border:0;font-size:2rem;line-height:1;color:var(--delphius-obsidian);cursor:pointer;padding:.1rem .6rem}
.mnav__list{list-style:none;margin:0;padding:0}
.mnav__list>li{border-bottom:1px solid rgba(216,209,196,.6);padding:.2rem 0}
.mnav__list>li>a{font-family:Cinzel,serif;text-transform:uppercase;letter-spacing:.1em;font-size:1rem;color:var(--delphius-obsidian);display:block;padding:.65rem 0}
.mnav__sub{list-style:none;margin:0 0 .5rem;padding:0}
.mnav__sub a{display:block;padding:.4rem 0 .4rem .8rem;font-size:.95rem;color:#4a443b}
.mnav__cta{display:flex;flex-direction:column;gap:.7rem;margin-top:1.6rem}
.mnav__cta .btn{width:100%;text-align:center}
body.menu-open{overflow:hidden}
@media(max-width:1024px){.nav,.header-ctas{display:none}.nav-toggle{display:flex}}

/* hero */
.hero{padding:5.5rem 0 3rem;background:linear-gradient(180deg,var(--delphius-ivory),#efe9df)}
.hero__title{font-size:clamp(2.1rem,5vw,3.4rem);margin:.2rem 0 1.2rem;max-width:18ch}
.hero__sub{font-size:1.08rem;max-width:60ch;color:#3a352d}
.media-ph{margin:2rem 0 0;aspect-ratio:16/7;background:repeating-linear-gradient(45deg,#e7e0d4,#e7e0d4 12px,#e2dacc 12px,#e2dacc 24px);border:1px solid var(--delphius-stone);display:flex;align-items:center;justify-content:center}
.media-ph span{font-family:Cinzel,serif;letter-spacing:.1em;font-size:.78rem;color:#7a7163;text-transform:uppercase;text-align:center;padding:1rem}

/* sections */
.section{padding:3.5rem 0;border-top:1px solid rgba(216,209,196,.5)}
html{scroll-behavior:smooth}
#listings{scroll-margin-top:1.25rem}
.section__title{font-size:clamp(1.4rem,3vw,2rem);margin:0 0 1.6rem}
.section__intro{max-width:62ch;color:#3a352d;margin-top:-.6rem}
.prose{max-width:70ch}.prose p{color:#322e27}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1.1rem}
.card{position:relative;display:block;background:#fff;border:1px solid var(--delphius-stone);padding:1.5rem;transition:.2s}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 40px rgba(18,18,18,.08);border-color:var(--delphius-bronze)}
.card h3{font-size:1.02rem;margin:0 0 .5rem}
.card p{font-size:.92rem;color:#4a443b;margin:0}
.card__role{font-family:Cinzel,serif;font-size:.66rem;letter-spacing:.12em;color:var(--delphius-bronze-deep);text-transform:uppercase;margin:.2rem 0 .5rem}
.card__arrow{color:var(--delphius-bronze);margin-top:.8rem;display:inline-block}
.card--listing .media-ph{aspect-ratio:4/3;margin:0 0 1rem}
.rate-live{font-size:.8rem;color:#6b6256;font-style:italic}

/* feature / twocol */
.feature__inner{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}
.feature__media .media-ph{aspect-ratio:4/3;margin:0}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.twocol__col{background:#fff;border:1px solid var(--delphius-stone);padding:1.8rem}
@media(max-width:760px){.feature__inner,.twocol{grid-template-columns:1fr}}

/* callouts / faq / lists / paths */
.callout{padding:1.3rem 1.5rem;border-left:3px solid var(--delphius-bronze);background:#fff}
.callout--warn{border-left-color:var(--delphius-bronze-deep);background:#f6f1e8}
.faq{border-bottom:1px solid var(--delphius-stone);padding:1rem 0}
.faq summary{cursor:pointer;font-family:Cinzel,serif;letter-spacing:.06em;font-size:.95rem;text-transform:none}
.guide-list{columns:2;gap:2rem;list-style:none;padding:0}.guide-list li{margin:0 0 .7rem;break-inside:avoid}
.tag{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8a8170;border:1px solid var(--delphius-stone);padding:.05rem .4rem;margin-left:.3rem}
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem}
.path{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.3rem;background:#fff;border:1px solid var(--delphius-stone);font-family:Cinzel,serif;letter-spacing:.06em;font-size:.84rem}
.path:hover{border-color:var(--delphius-bronze);color:var(--delphius-bronze-deep)}

/* forms */
.form{max-width:640px;display:grid;gap:1rem}
.field{display:grid;gap:.35rem}
.field span{font-family:Cinzel,serif;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#4a443b}
.field input,.field textarea{font:inherit;padding:.7rem .8rem;border:1px solid var(--delphius-stone);background:#fff}
.field input:focus,.field textarea:focus{outline:2px solid var(--delphius-bronze);border-color:var(--delphius-bronze)}
.form-status{margin:.2rem 0 0;padding:.7rem .9rem;font-size:.9rem;border-left:3px solid}
.form-status.is-ok{background:#eef1e9;border-color:var(--delphius-olive);color:#33402a}
.form-status.is-err{background:#f6ece8;border-color:#9a4a2e;color:#7a3320}
.consent{position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:1000;background:var(--delphius-ink,#121212);color:#f3efe7;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.consent[hidden]{display:none}
.consent__inner{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem 1.2rem;padding:1rem 1.2rem;max-width:1100px;margin:0 auto}
.consent__text{margin:0;flex:1 1 300px;font-size:.9rem;line-height:1.5}
.consent__text a{color:#e7d9bf;text-decoration:underline}
.consent__actions{display:flex;gap:.6rem;flex:0 0 auto}
.consent .btn{padding:.5rem 1.1rem;font-size:.85rem}
.consent .btn--ghost{background:transparent;border:1px solid rgba(243,239,231,.5);color:#f3efe7}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem}
.g-item{margin:0;aspect-ratio:4/3;overflow:hidden;border-radius:8px;background:#e9e4da}
.g-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.g-item:hover img{transform:scale(1.04)}
.media{margin:0;border-radius:12px;overflow:hidden;background:#e9e4da;aspect-ratio:3/2}
.media img{width:100%;height:100%;object-fit:cover;display:block}
.feature__media .media,.card--listing .media{aspect-ratio:3/2}
.card--listing .media{border-radius:0;margin:-1.5rem -1.5rem 1.2rem}
.hero .media{margin-top:2.25rem}
.credits-list{margin:.4rem 0 0;padding-left:1.1rem;line-height:1.7}
.credits-list li{margin:.1rem 0}

/* cta band / footer / sticky */
.cta-band{background:var(--delphius-obsidian);color:var(--delphius-ivory);text-align:center}
.cta-band .section__title{color:var(--delphius-ivory)}
.site-footer{background:var(--delphius-obsidian);color:var(--delphius-ivory);padding:3rem 0 4.5rem}
.footer-brand{font-family:Cinzel,serif;letter-spacing:.14em;text-transform:uppercase;font-size:.84rem;color:var(--delphius-stone)}
.footer-contact{margin:.5rem 0 0;font-size:.86rem;color:var(--delphius-stone)}
.footer-contact a{color:var(--delphius-stone);border-bottom:1px solid rgba(216,209,196,.4)}
.footer-contact a:hover{color:#fff}
.footer-addr{font-size:.8rem;color:#8c8475}
.footer-links{display:flex;flex-wrap:wrap;gap:.4rem 1.3rem;list-style:none;padding:0;margin:1.2rem 0}
.footer-links a{font-size:.82rem;color:var(--delphius-stone)}.footer-links a:hover{color:#fff}
.footer-cta{font-family:Cinzel,serif;letter-spacing:.12em;text-transform:uppercase;color:var(--delphius-bronze);margin-top:1rem}
.site-footer .fineprint{color:#8c8475}
.sticky-cta{display:none;position:fixed;left:1rem;right:1rem;bottom:1rem;z-index:120;transform:translateY(160%);opacity:0;transition:transform .35s ease,opacity .35s ease;pointer-events:none}
.sticky-cta.show{transform:none;opacity:1;pointer-events:auto}
.sticky-cta .btn{display:block;width:100%;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.3)}
@media(max-width:1024px){.sticky-cta{display:block}body{padding-bottom:5.5rem}}

/* The Knickerbocker by Delphius — warmer brass accent on its pages (§2 differentiation) */
[data-brand="knickerbocker"]{--delphius-bronze:#9a7b2e;--delphius-bronze-deep:#6f5816}

/* steps + feature lists */
.steps{counter-reset:step;list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.4rem}
.step{position:relative;background:#fff;border:1px solid var(--delphius-stone);padding:1.6rem 1.5rem 1.4rem}
.step::before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:Cinzel,serif;font-size:.8rem;letter-spacing:.1em;color:var(--delphius-bronze);display:block;margin-bottom:.6rem}
.step h3{font-size:.98rem;margin:0 0 .4rem}.step p{font-size:.9rem;color:#4a443b;margin:0}
.feature-list{columns:2;gap:2.4rem;list-style:none;padding:0;max-width:none}
.feature-list li{position:relative;padding-left:1.3rem;margin:0 0 .75rem;break-inside:avoid;color:#322e27}
.feature-list li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:7px;background:var(--delphius-bronze);transform:rotate(45deg)}
@media(max-width:680px){.feature-list,.guide-list{columns:1}.hero{padding:2.5rem 0 1.25rem}.section{padding:2.25rem 0}.hero .media{margin-top:.5rem}}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
