/* ============================================================
   ATMOSPHERE® — Architecture + Interiors
   style.css  ·  KSM-style full-bleed hero
   ============================================================ */

:root {
  --sand:       #E8DFD0;
  --clay:       #C4A882;
  --terracotta: #9E5E3A;
  --bark:       #3D2B1F;
  --smoke:      #F5F1EC;
  --charcoal:   #1C1612;
}

*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html  { scroll-behavior:smooth; }
body  {
  font-family:'Jost',sans-serif;
  background:#EDE7DC;
  color:var(--charcoal);
  overflow-x:hidden;
  cursor:none;
}

/* ── Custom Cursor ── */
.cursor {
  width:10px; height:10px;
  background:var(--terracotta);
  border-radius:50%;
  position:fixed; top:0; left:0;
  pointer-events:none; z-index:9999;
  mix-blend-mode:multiply;
}
.cursor-ring {
  width:36px; height:36px;
  border:1px solid var(--clay);
  border-radius:50%;
  position:fixed; top:0; left:0;
  pointer-events:none; z-index:9998;
  opacity:0.6;
}

/* ============================================================
   NAV — transparent, floats over hero
   ============================================================ */
nav {
  position:fixed; top:0; left:0; right:0;
  z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 48px;
  height:80px;
  background:transparent;
  transition:background 0.5s, box-shadow 0.5s;
}
nav.scrolled {
  background:rgba(245,241,236,0.97);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--sand);
}

.nav-logo { display:flex; align-items:center; text-decoration:none; position:relative; }
.nav-logo-white {
  height:60px; object-fit:contain;
  filter:brightness(0) invert(1);
  opacity:1; transition:opacity 0.35s;
}
.nav-logo-dark {
  height:60px; object-fit:contain;
  filter:brightness(0);
  position:absolute; left:0;
  opacity:0; transition:opacity 0.35s;
}
nav.scrolled .nav-logo-white { opacity:0; }
nav.scrolled .nav-logo-dark  { opacity:1; position:static; }

.nav-links { display:flex; gap:40px; list-style:none; }
.nav-links a {
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
  text-decoration:none; color:rgba(255,255,255,0.85);
  position:relative; padding-bottom:3px;
  transition:color 0.3s;
}
nav.scrolled .nav-links a { color:var(--bark); }
.nav-links a::after {
  content:''; position:absolute; bottom:-1px; left:0;
  width:0; height:1px; background:var(--terracotta);
  transition:width 0.3s;
}
.nav-links a:hover::after { width:100%; }

.nav-menu-btn {
  display:none; flex-direction:column; gap:6px;
  background:none; border:none; cursor:none; padding:4px;
}
.nav-menu-btn span {
  display:block; width:24px; height:1px;
  background:rgba(255,255,255,0.85);
  transition:background 0.3s;
}
nav.scrolled .nav-menu-btn span { background:var(--bark); }

/* ============================================================
   HERO — FULL VIEWPORT, KSM STYLE
   ============================================================ */
.hero {
  position:relative;
  width:100%; height:100vh;
  overflow:hidden;
}

/* Slides */
.slides { position:absolute; inset:0; }
.slide {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  opacity:0;
  transform:scale(1.04);
  transition:opacity 1.1s cubic-bezier(0.4,0,0.2,1),
             transform 7s ease;
}
.slide.active {
  opacity:1;
  transform:scale(1);
}

/* Gradient veil — bottom and left edges */
.hero-veil {
  position:absolute; inset:0; z-index:2;
  background:
    linear-gradient(to top,  rgba(20,12,6,0.72) 0%, transparent 45%),
    linear-gradient(to right, rgba(20,12,6,0.45) 0%, transparent 50%);
}

/* Text overlay — bottom-left */
.hero-content {
  position:absolute; z-index:10;
  bottom:80px; left:64px;
  max-width:560px;
}
.hero-eyebrow {
  font-size:0.65rem; letter-spacing:0.32em; text-transform:uppercase;
  color:var(--clay); margin-bottom:20px;
}
.hero-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(3.2rem,6.5vw,6rem);
  font-weight:300; line-height:1.04;
  color:#fff; margin-bottom:36px;
}
.hero-title em { font-style:italic; color:var(--clay); }

.hero-cta {
  display:inline-flex; align-items:center; gap:14px;
  font-size:0.72rem; letter-spacing:0.22em; text-transform:uppercase;
  text-decoration:none; color:#fff;
  border:1px solid rgba(255,255,255,0.5);
  padding:14px 32px;
  transition:background 0.3s, border-color 0.3s, color 0.3s;
}
.hero-cta:hover {
  background:var(--clay); border-color:var(--clay); color:var(--bark);
}
.cta-arrow { font-size:1rem; transition:transform 0.3s; }
.hero-cta:hover .cta-arrow { transform:translateX(6px); }

/* Project label — bottom-right */
.hero-label {
  position:absolute; z-index:10;
  bottom:80px; right:60px;
  font-size:0.62rem; letter-spacing:0.25em; text-transform:uppercase;
  color:rgba(255,255,255,0.55);
  transition:opacity 0.3s;
}
.hero-label.fade-out { opacity:0; }

/* Dots — bottom-center */
.hero-dots {
  position:absolute; z-index:10;
  bottom:36px; left:50%; transform:translateX(-50%);
  display:flex; gap:10px;
}
.dot {
  width:6px; height:6px;
  border-radius:50%;
  background:rgba(255,255,255,0.35);
  border:none; cursor:none;
  transition:background 0.3s, transform 0.3s;
}
.dot.active {
  background:#fff;
  transform:scale(1.3);
}

/* Scroll nudge — far right, vertical */
.scroll-nudge {
  position:absolute; z-index:10;
  right:28px; bottom:120px;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-text {
  font-size:0.55rem; letter-spacing:0.3em; text-transform:uppercase;
  color:rgba(255,255,255,0.4);
  writing-mode:vertical-rl;
}
.scroll-line {
  display:block; width:1px; height:50px;
  background:rgba(255,255,255,0.25);
  animation:scrollPulse 2s ease-in-out infinite;
}
@keyframes scrollPulse {
  0%,100% { opacity:0.2; transform:scaleY(0.5); transform-origin:top; }
  50%      { opacity:1;   transform:scaleY(1);   transform-origin:top; }
}

/* ============================================================
   SECTION COMMON
   ============================================================ */
section { padding:120px 48px; }

/* ============================================================
   PHILOSOPHY
   ============================================================ */
.philosophy {
  background:var(--charcoal); padding:100px 48px;
  display:grid; grid-template-columns:1fr 1fr;
  gap:80px; align-items:center;
}
.philosophy-quote {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem,4vw,3.5rem);
  font-weight:300; font-style:italic; line-height:1.3;
  color:var(--sand);
}
.philosophy-quote span { color:var(--clay); }
.philosophy-text {
  font-size:0.88rem; line-height:2;
  color:rgba(232,223,208,0.55);
}
.philosophy-link {
  display:inline-flex; align-items:center; gap:10px;
  margin-top:24px; font-size:0.72rem; letter-spacing:0.2em;
  text-transform:uppercase; text-decoration:none;
  color:var(--clay); border-bottom:1px solid var(--clay);
  padding-bottom:4px; transition:gap 0.3s;
}
.philosophy-link::after { content:'→'; }
.philosophy-link:hover { gap:20px; }

/* ============================================================
   STATS
   ============================================================ */
.stats {
  background:var(--clay); padding:80px 48px;
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
}
.stat {
  padding:40px; background:var(--clay);
  border-left:1px solid rgba(28,22,18,0.15); text-align:center;
}
.stat:first-child { border-left:none; }
.stat-number {
  font-family:'Cormorant Garamond',serif;
  font-size:4.5rem; font-weight:300;
  color:var(--bark); line-height:1;
}
.stat-label {
  font-size:0.7rem; letter-spacing:0.2em; text-transform:uppercase;
  color:rgba(61,43,31,0.7); margin-top:8px;
}

/* ============================================================
   PROJECTS
   ============================================================ */
.projects { background:var(--smoke); }
.projects-header {
  display:flex; justify-content:space-between; align-items:flex-end;
  margin-bottom:64px;
}
.projects-title {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.5rem,5vw,4rem); font-weight:300; line-height:1.1;
}
.projects-title em { font-style:italic; color:var(--terracotta); }

.see-all {
  font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase;
  text-decoration:none; color:var(--terracotta);
  display:flex; align-items:center; gap:8px;
  border-bottom:1px solid var(--terracotta);
  padding-bottom:2px; transition:gap 0.3s;
}
.see-all::after { content:'→'; }
.see-all:hover { gap:16px; }

.projects-grid {
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:16px;
}
.proj-card { position:relative; overflow:hidden; cursor:none; }
.proj-card:nth-child(1) { grid-column:1/8;  grid-row:1; aspect-ratio:7/5; }
.proj-card:nth-child(2) { grid-column:8/13; grid-row:1; aspect-ratio:5/5; }
.proj-card:nth-child(3) { grid-column:1/5;  grid-row:2; aspect-ratio:4/5; }
.proj-card:nth-child(4) { grid-column:5/9;  grid-row:2; aspect-ratio:4/5; }
.proj-card:nth-child(5) { grid-column:9/13; grid-row:2; aspect-ratio:4/5; }

.proj-img {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transition:transform 0.7s ease;
}
.proj-card:hover .proj-img { transform:scale(1.06); }

.proj-info {
  position:absolute; bottom:0; left:0; right:0;
  padding:32px 28px 28px;
  background:linear-gradient(to top, rgba(28,22,18,0.9) 0%, transparent 100%);
  transform:translateY(8px); transition:transform 0.4s;
}
.proj-card:hover .proj-info { transform:translateY(0); }
.proj-cat {
  font-size:0.6rem; letter-spacing:0.3em; text-transform:uppercase;
  color:var(--clay); margin-bottom:6px;
}
.proj-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.3rem; font-weight:300; color:var(--sand); line-height:1.2;
}
.proj-loc { font-size:0.72rem; color:rgba(232,223,208,0.5); margin-top:4px; }

/* ============================================================
   SERVICES
   ============================================================ */
.services {
  background:var(--bark); padding:100px 48px;
  display:grid; grid-template-columns:1fr 2fr;
  gap:80px; align-items:start;
}
.services-intro {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2rem,3.5vw,2.8rem); font-weight:300;
  line-height:1.3; color:var(--sand);
}
.services-intro em { font-style:italic; color:var(--clay); }
.services-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.service-item { border-top:1px solid rgba(196,168,130,0.2); padding-top:28px; }
.service-num {
  font-family:'Cormorant Garamond',serif;
  font-size:1.8rem; font-weight:300;
  color:rgba(196,168,130,0.3); margin-bottom:12px;
}
.service-name {
  font-size:0.78rem; letter-spacing:0.15em; text-transform:uppercase;
  color:var(--clay); margin-bottom:12px;
}
.service-desc { font-size:0.82rem; line-height:1.8; color:rgba(232,223,208,0.45); }

/* ============================================================
   GALLERY STRIP
   ============================================================ */
.gallery-strip {
  display:grid; grid-template-columns:1fr 1fr 1fr;
  height:480px; gap:3px;
}
.gallery-cell { overflow:hidden; position:relative; }
.gallery-fill {
  position:absolute; inset:0;
  background-size:cover; background-position:center;
  transition:transform 0.7s ease;
}
.gallery-cell:hover .gallery-fill { transform:scale(1.05); }
.gallery-label {
  position:absolute; bottom:20px; left:20px;
  font-size:0.6rem; letter-spacing:0.2em; text-transform:uppercase;
  color:rgba(232,223,208,0.7);
}

/* ============================================================
   FOOTER
   ============================================================ */
footer { background:var(--bark); padding:80px 48px 48px; }
.footer-top {
  display:grid; grid-template-columns:2fr 1fr 1fr;
  gap:80px; padding-bottom:64px;
  border-bottom:1px solid rgba(196,168,130,0.2);
}
.footer-logo-block {
  display:flex; flex-direction:column;
  align-items:flex-start; gap:12px; margin-bottom:24px;
}
.footer-logo-img {
  height:72px; object-fit:contain;
  filter:brightness(0) invert(1); opacity:0.85;
}
.footer-brand-name {
  font-family:'Cormorant Garamond',serif;
  font-size:1.4rem; font-weight:300; letter-spacing:0.25em;
  text-transform:uppercase; color:var(--sand); line-height:1.2;
}
.footer-brand-sub {
  font-size:0.58rem; letter-spacing:0.35em;
  color:var(--clay); text-transform:uppercase;
}
.footer-tagline {
  font-family:'Cormorant Garamond',serif;
  font-size:1.05rem; font-style:italic;
  color:rgba(232,223,208,0.45); line-height:1.7; max-width:320px;
}
.footer-email {
  display:block; margin-top:28px; font-size:0.78rem;
  color:var(--clay); text-decoration:none;
  border-bottom:1px solid rgba(196,168,130,0.3);
  padding-bottom:4px; transition:border-color 0.3s;
}
.footer-email:hover { border-color:var(--clay); }
.footer-col-title {
  font-size:0.65rem; letter-spacing:0.25em; text-transform:uppercase;
  color:var(--clay); margin-bottom:24px;
}
.footer-col ul { list-style:none; }
.footer-col li+li { margin-top:12px; }
.footer-col a {
  font-size:0.82rem; color:rgba(232,223,208,0.5);
  text-decoration:none; transition:color 0.3s;
}
.footer-col a:hover { color:var(--clay); }
.footer-bottom {
  display:flex; justify-content:space-between; align-items:center;
  padding-top:32px; font-size:0.72rem; color:rgba(232,223,208,0.3);
}
.social-links { display:flex; gap:20px; }
.social-links a {
  font-size:0.72rem; letter-spacing:0.15em; text-transform:uppercase;
  color:rgba(232,223,208,0.4); text-decoration:none; transition:color 0.3s;
}
.social-links a:hover { color:var(--clay); }

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal { opacity:0; transform:translateY(40px); transition:opacity 0.8s ease, transform 0.8s ease; }
.reveal.visible { opacity:1; transform:none; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:900px) {
  nav { padding:0 24px; }
  .nav-links { display:none; }
  .nav-menu-btn { display:flex; }

  .hero-content { left:28px; bottom:100px; max-width:90%; }
  .hero-label   { right:28px; bottom:100px; display:none; }
  .hero-title   { font-size:clamp(2.6rem,10vw,4rem); }

  section { padding:80px 24px; }
  .philosophy { grid-template-columns:1fr; padding:80px 24px; }
  .stats { grid-template-columns:1fr 1fr; padding:60px 24px; }

  .projects-grid { grid-template-columns:1fr 1fr; }
  .proj-card:nth-child(1) { grid-column:1/3; grid-row:1; }
  .proj-card:nth-child(2) { grid-column:1/2; grid-row:2; }
  .proj-card:nth-child(3) { grid-column:2/3; grid-row:2; }
  .proj-card:nth-child(4) { grid-column:1/2; grid-row:3; }
  .proj-card:nth-child(5) { grid-column:2/3; grid-row:3; }

  .services { grid-template-columns:1fr; padding:80px 24px; }
  .services-grid { grid-template-columns:1fr; }

  .gallery-strip { grid-template-columns:1fr; height:auto; }
  .gallery-cell { height:260px; }

  .footer-top { grid-template-columns:1fr; gap:40px; }
  footer { padding:60px 24px 40px; }
  .scroll-nudge { display:none; }
}

/* ============================================================
   FOOTER ADDITIONS — Phone, Map, Address
   ============================================================ */
.footer-contact-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 28px;
}
.footer-phone {
  display: block;
  font-size: 0.78rem;
  color: rgba(232,223,208,0.55);
  text-decoration: none;
  transition: color 0.3s;
}
.footer-phone:hover { color: var(--clay); }

.footer-map {
  margin-top: 56px;
  padding-top: 48px;
  border-top: 1px solid rgba(196,168,130,0.2);
}
.map-wrapper {
  border: 1px solid rgba(196,168,130,0.15);
  overflow: hidden;
  filter: grayscale(30%) sepia(10%);
  transition: filter 0.4s;
}
.map-wrapper:hover { filter: none; }
.footer-address {
  margin-top: 14px;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  color: rgba(232,223,208,0.35);
}

@media (max-width:900px) {
  .footer-contact-details { margin-top: 20px; }
  .map-wrapper iframe { height: 200px; }
}
