/* Colon Ricor — premium design system */

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
}

:root{
  --color-bg:#0E0E10;
  --color-surface:#1A1A1D;
  --color-text:#F5F1E8;
  --color-muted:#9C948A;
  --color-accent:#C9A227;
  --font-display:'Cinzel', 'Georgia', serif;
  --font-body:'IBM Plex Sans', 'Segoe UI', sans-serif;
  --container-max:1200px;
  --gap:2rem;
  --transition:0.7s cubic-bezier(.22,.61,.36,1);
}

body{
  margin:0;
  background:var(--color-bg);
  color:var(--color-text);
  font-family:var(--font-body);
  font-weight:300;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  position:relative;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:2000;
  opacity:.035;
  mix-blend-mode:overlay;
  background-image:repeating-conic-gradient(from 0deg, rgba(245,241,232,0.6) 0deg 1deg, transparent 1deg 2deg);
  background-size:3px 3px;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:500;
  letter-spacing:.01em;
  margin:0 0 1rem;
  line-height:1.2;
}
p{margin:0 0 1rem;}
.muted{color:var(--color-muted);}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}

.skip-link{
  position:absolute;left:-999px;top:0;
  background:var(--color-accent);color:#0E0E10;padding:.6rem 1rem;z-index:3000;
}
.skip-link:focus{left:0;}

:focus-visible{
  outline:2px solid var(--color-accent);
  outline-offset:3px;
}

.container{
  max-width:var(--container-max);
  margin:0 auto;
  padding:0 1.5rem;
}
.container--narrow{max-width:760px;}

.eyebrow{
  font-family:var(--font-body);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.72rem;
  color:var(--color-accent);
  margin-bottom:.8rem;
}

.hairline{
  height:1px;
  width:100%;
  background:linear-gradient(90deg, transparent, rgba(201,162,39,0.55), transparent);
  border:none;
  margin:2.5rem 0;
}

.fluted-divider{
  width:72px;
  height:16px;
  margin:1.6rem 0;
  background-image:repeating-linear-gradient(90deg, transparent 0 6px, rgba(201,162,39,0.65) 6px 8px);
  opacity:.85;
}
.site-footer__brand .fluted-divider{margin:1rem 0;}

/* ---------- Header / Nav ---------- */
.site-header{
  position:sticky;top:0;z-index:1000;
  background:rgba(14,14,16,0.88);
  backdrop-filter:blur(6px);
  border-bottom:1px solid rgba(201,162,39,0.25);
}
.site-header__inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:1.1rem 1.5rem;
}
.wordmark{
  font-family:var(--font-display);
  font-size:1.15rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-text);
}
.wordmark--footer{font-size:1.3rem;margin-bottom:.4rem;}

.site-nav ul{
  display:flex;gap:1.8rem;list-style:none;margin:0;padding:0;
}
.site-nav a{
  font-size:.85rem;letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--color-muted);
  position:relative;
  padding-bottom:.3rem;
  transition:color .3s ease;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{color:var(--color-text);}
.site-nav a[aria-current="page"]::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--color-accent);
}

.nav-toggle{
  display:none;
  flex-direction:column;
  gap:5px;
  background:none;border:none;cursor:pointer;padding:.5rem;
}
.nav-toggle span{width:22px;height:1px;background:var(--color-text);display:block;}

@media (max-width:860px){
  .nav-toggle{display:flex;}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;
    background:var(--color-surface);
    border-bottom:1px solid rgba(201,162,39,0.25);
    max-height:0;overflow:hidden;
    transition:max-height .4s ease;
  }
  .site-nav.is-open{max-height:400px;}
  .site-nav ul{flex-direction:column;gap:0;padding:1rem 1.5rem;}
  .site-nav li{border-bottom:1px solid rgba(245,241,232,0.06);}
  .site-nav a{display:block;padding:.9rem 0;}
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-block;
  font-size:.82rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  padding:.95rem 2rem;
  border:1px solid var(--color-accent);
  transition:background .35s ease,color .35s ease;
}
.btn-solid{
  background:var(--color-accent);
  color:#14140f;
}
.btn-solid:hover{background:transparent;color:var(--color-text);}
.btn-outline{
  background:transparent;color:var(--color-text);
}
.btn-outline:hover{background:var(--color-accent);color:#14140f;}

.link-arrow{
  display:inline-block;
  color:var(--color-accent);
  border-bottom:1px solid rgba(201,162,39,0.4);
  padding-bottom:.2rem;
  font-size:.9rem;
  transition:opacity .3s ease;
}
.link-arrow:hover{opacity:.7;}

/* ---------- Reveal ---------- */
[data-reveal]{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .9s ease, transform .9s ease;
}
[data-reveal].is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1;transform:none;transition:none;}
}

/* ---------- Hero ---------- */
.hero{
  position:relative;
  min-height:88vh;
  display:flex;
  align-items:center;
  overflow:hidden;
}
.hero__media{position:absolute;inset:0;z-index:0;}
.hero__media img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(1.02);
}
.hero__overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0.55) 0%, rgba(10,10,11,0.35) 45%, rgba(10,10,11,0.85) 100%);
}
.hero__content{
  position:relative;z-index:1;
  max-width:760px;
  margin:0 auto;
  padding:0 1.5rem;
  text-align:center;
}
.hero__content .eyebrow{justify-content:center;}
.hero h1{
  font-size:clamp(2.4rem,6vw,4.4rem);
  margin-bottom:.6rem;
}
.hero__lede{
  color:var(--color-text);
  font-size:1.05rem;
  max-width:520px;
  margin:0 auto 2rem;
}
.hero .fluted-divider{margin:1.4rem auto;}

/* ---------- Generic Section ---------- */
.section{
  padding:6.5rem 0;
}
.section h2{font-size:clamp(1.6rem,3vw,2.2rem);}

.statement{padding:7rem 0;}
.statement__text{
  font-size:clamp(1.15rem,2.2vw,1.5rem);
  color:var(--color-text);
  line-height:1.6;
}
.statement__text + .statement__text{color:var(--color-muted);font-size:1.05rem;}

/* ---------- Offer / Craft split ---------- */
.offer__grid,.craft__grid,.editorial-split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:4rem;
  align-items:center;
}
.craft__grid{grid-template-columns:1fr 1fr;}
.craft__media{order:1;}
.craft__copy{order:2;}

.offer__media img,.craft__media img,.editorial-split img{
  width:100%;
  aspect-ratio:4/3;
  object-fit:cover;
}
.offer__media{position:relative;}
.caption{
  font-size:.75rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--color-muted);
  margin-top:.9rem;
  border-top:1px solid rgba(201,162,39,0.3);
  padding-top:.6rem;
}

@media (max-width:900px){
  .offer__grid,.craft__grid,.editorial-split{grid-template-columns:1fr;gap:2rem;}
  .craft__media{order:0;}
  .craft__copy{order:1;}
}

/* ---------- Fullbleed ---------- */
.fullbleed{
  position:relative;
  min-height:82vh;
  width:100%;
}
.fullbleed img{
  width:100%;height:100%;
  position:absolute;inset:0;
  object-fit:cover;
}
.fullbleed__caption{
  position:relative;
  z-index:1;
  max-width:520px;
  margin-left:6vw;
  padding:3rem 2rem;
  background:linear-gradient(180deg, rgba(14,14,16,0.15), rgba(14,14,16,0.82));
  top:40vh;
}
@media (max-width:700px){
  .fullbleed{min-height:70vh;}
  .fullbleed__caption{margin-left:1.2rem;margin-right:1.2rem;max-width:none;top:32vh;}
}

/* ---------- Gallery ---------- */
.gallery__grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:1.6rem;
  margin-top:3rem;
}
.gallery__item{margin:0;}
.gallery__item img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1;}
.gallery__item figcaption{
  margin-top:.7rem;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--color-muted);
}
.gallery__item--a{grid-column:1 / 4;grid-row:1;}
.gallery__item--b{grid-column:4 / 7;grid-row:1;margin-top:3rem;}
.gallery__item--c{grid-column:1 / 3;grid-row:2;margin-top:1.5rem;}
.gallery__item--d{grid-column:3 / 7;grid-row:2;}

@media (max-width:900px){
  .gallery__grid{grid-template-columns:1fr 1fr;}
  .gallery__item--a{grid-column:1/3;}
  .gallery__item--b{grid-column:1/3;margin-top:0;}
  .gallery__item--c{grid-column:1/2;margin-top:0;}
  .gallery__item--d{grid-column:2/3;}
}
@media (max-width:560px){
  .gallery__grid{grid-template-columns:1fr;}
  .gallery__item--a,.gallery__item--b,.gallery__item--c,.gallery__item--d{grid-column:1/2;margin-top:0;}
}

/* ---------- FAQ ---------- */
.faq__list{margin-top:2.5rem;}
.faq__item{padding:1.8rem 0;border-top:1px solid rgba(245,241,232,0.08);}
.faq__item:first-child{border-top:1px solid rgba(245,241,232,0.08);}
.faq__item h3{
  font-size:1.05rem;
  font-family:var(--font-body);
  font-weight:500;
  color:var(--color-text);
  margin-bottom:.5rem;
}
.faq__item p{color:var(--color-muted);margin-bottom:0;}

/* ---------- CTA ---------- */
.cta{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:70vh;
}
.cta__media{position:relative;overflow:hidden;}
.cta__media img{width:100%;height:100%;object-fit:cover;}
.cta__content{
  display:flex;flex-direction:column;justify-content:center;
  padding:4rem 6vw;
  background:var(--color-surface);
}
@media (max-width:860px){
  .cta{grid-template-columns:1fr;}
  .cta__media{min-height:46vh;}
  .cta__content{padding:3rem 1.5rem;}
}

/* ---------- Page hero (secondary pages) ---------- */
.page-hero{
  position:relative;
  min-height:52vh;
  display:flex;align-items:flex-end;
  overflow:hidden;
}
.page-hero img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.page-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,10,11,0.35), rgba(10,10,11,0.92));
}
.page-hero__content{
  position:relative;z-index:1;
  padding:3rem 1.5rem;
  max-width:var(--container-max);
  margin:0 auto;
  width:100%;
}
.page-hero__content h1{font-size:clamp(2rem,5vw,3.2rem);margin-bottom:0;}

/* ---------- Category / step lists ---------- */
.category-list,.step-list{margin-top:2rem;}
.category-item,.step-item{padding:2rem 0;}
.category-item h3,.step-item h3{
  font-size:1.15rem;font-family:var(--font-display);font-weight:500;
  color:var(--color-text);
}
.step-item .step-number{
  color:var(--color-accent);
  font-family:var(--font-display);
  font-size:.85rem;
  letter-spacing:.15em;
  display:block;margin-bottom:.4rem;
}

/* ---------- Contact block ---------- */
.contact-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:4rem;
  margin-top:2.5rem;
}
.contact-card{
  background:var(--color-surface);
  padding:2.5rem;
  border:1px solid rgba(201,162,39,0.2);
}
.contact-card p{margin-bottom:.8rem;}
.contact-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem;}
@media (max-width:860px){
  .contact-grid{grid-template-columns:1fr;gap:2.5rem;}
}

/* ---------- Footer ---------- */
.site-footer{
  background:var(--color-surface);
  border-top:1px solid rgba(201,162,39,0.25);
  padding:4rem 0 1.5rem;
  margin-top:0;
}
.site-footer__inner{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:3rem;
}
.site-footer__links ul{list-style:none;padding:0;margin:0;}
.site-footer__links li{margin-bottom:.6rem;}
.site-footer__links a,.site-footer__contact a{color:var(--color-muted);}
.site-footer__links a:hover,.site-footer__contact a:hover{color:var(--color-accent);}
.site-footer__bottom{
  margin-top:3rem;
  border-top:1px solid rgba(245,241,232,0.06);
  padding-top:1.5rem;
  font-size:.8rem;
}
@media (max-width:860px){
  .site-footer__inner{grid-template-columns:1fr;gap:2.2rem;}
}
/* Landing Factory generated brand lockup */
.lf-brand-lockup{display:inline-flex;align-items:center;text-decoration:none;flex:0 0 auto}.lf-brand-lockup img{display:block;width:auto;height:44px;max-width:min(260px,48vw);object-fit:contain}@media(max-width:700px){.lf-brand-lockup img{height:36px;max-width:54vw}}
