@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,500;0,600;1,500;1,600&display=swap');
:root{--bg:#090909;--panel:#111;--text:#f5f3ef;--muted:#9b9b98;--gold:#d6ad5c;--line:#292929}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}
.site-header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;position:absolute;top:0;left:0;width:100%;z-index:20}.logo{font-weight:600;letter-spacing:.12em;font-size:18px}.logo span{font-size:8px;display:block;color:var(--gold);letter-spacing:.3em;margin-top:-3px}.nav{display:flex;gap:30px}.nav a{font-size:12px;text-transform:uppercase;letter-spacing:.13em;color:#ddd;transition:.25s}.nav a:hover{color:var(--gold)}.menu-toggle{display:none;background:none;border:0;color:white;font-size:27px;cursor:pointer}
.hero{min-height:100svh;position:relative;display:flex;align-items:center;padding:120px 8vw;background-image:url('../images/hero.png');background-position:center;background-size:cover;background-repeat:no-repeat;overflow:hidden}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.93) 0%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.16) 100%)}.hero-content{max-width:680px;position:relative;z-index:1}.eyebrow{font-size:10px;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;margin-bottom:18px}.hero h1,.page-hero h1{font-size:clamp(48px,8vw,92px);line-height:1.02;font-weight:500;letter-spacing:-.04em}.hero h1 em,.page-hero h1 em,h2 em{font-family:'Playfair Display',serif;font-weight:500}.hero-text{max-width:530px;color:#c3c3c0;margin:26px 0 34px;font-size:16px}.btn{display:inline-flex;align-items:center;gap:26px;border:1px solid #555;padding:15px 20px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;transition:.3s}.btn span{color:var(--gold);font-size:18px}.btn:hover{border-color:var(--gold);background:var(--gold);color:#111}.btn:hover span{color:#111}.hero-scroll{position:absolute;right:7vw;bottom:35px;z-index:2;color:#777;font-size:9px;letter-spacing:.25em;writing-mode:vertical-rl}.hero-scroll span{color:var(--gold);font-size:15px;margin-top:8px}
.section{padding:110px 8vw}.intro{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;border-bottom:1px solid var(--line)}h2{font-size:clamp(34px,4vw,58px);line-height:1.08;font-weight:500;letter-spacing:-.03em}.intro-copy{color:var(--muted);font-size:16px;align-self:end;max-width:500px}
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);padding:0}.service-card{background:#111;min-height:470px;position:relative;overflow:hidden;transition:.4s}.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease,filter .5s ease}.service-card:hover img{transform:scale(1.06);filter:brightness(.9)}.service-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05) 15%,rgba(0,0,0,.18) 40%,rgba(0,0,0,.9) 100%)}.service-content{position:absolute;inset:0;padding:40px;display:flex;flex-direction:column;justify-content:flex-end}.service-number{position:absolute;top:38px;left:40px;color:var(--gold);font-size:11px;letter-spacing:.15em}.service-card h3{font-size:38px;font-weight:400;margin-bottom:10px}.service-card p{color:#d0d0cc;font-size:14px;max-width:280px}.service-arrow{position:absolute;right:35px;bottom:34px;color:var(--gold);font-size:25px}

@media(max-width:800px){
  .story-content{left:6vw;right:6vw;top:auto;bottom:8%;transform:none;max-width:none}
  .story-overlay{background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.92) 100%)}
}

/* Sony story section — ONLY THIS SECTION CHANGED */
.story-section{
  position:relative;
  width:100%;
  height:500px;
  overflow:hidden;
  padding:0;
  background:#050505;
}
.story-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center center;
  z-index:0;
}
.story-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,
    rgba(0,0,0,.86) 0%,
    rgba(0,0,0,.68) 22%,
    rgba(0,0,0,.30) 48%,
    rgba(0,0,0,.08) 72%,
    rgba(0,0,0,0) 100%);
  z-index:1;
  pointer-events:none;
}
.story-content{
  position:absolute;
  left:8vw;
  top:50%;
  transform:translateY(-50%);
  z-index:2;
  max-width:520px;
}
.story-content h2{margin-bottom:30px}
.story-content .btn{border-color:rgba(214,173,92,.7)}

@media(max-width:800px){
  .story-section{height:440px}
  .story-bg{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
  }
  .story-overlay{
    background:linear-gradient(180deg,
      rgba(0,0,0,.05) 0%,
      rgba(0,0,0,.40) 48%,
      rgba(0,0,0,.90) 100%);
  }
  .story-content{
    left:6vw;
    right:6vw;
    top:auto;
    bottom:8%;
    transform:none;
    max-width:none;
  }
}

.cta-copy{
  max-width:620px;
  margin:24px auto 32px;
  color:var(--muted);
  font-size:15px;
}


.cta-copy{
  max-width:620px;
  margin:24px auto 32px;
  color:var(--muted);
  font-size:15px;
}

/* Footer: logo and copyright centered */
.footer{
  border-top:1px solid var(--line);
  padding:38px 8vw 30px;
  text-align:center;
}
.footer .logo{
  display:block;
  width:max-content;
  margin:0 auto 12px;
  text-align:center;
}
.footer p{
  text-align:center;
  color:#666;
  font-size:10px;
}

/* =========================================================
   MOBILE ONLY — desktop layout above remains untouched
   ========================================================= */
@media (max-width: 800px){
  html, body{width:100%;overflow-x:hidden}

  /* Header / mobile menu */
  .site-header{
    height:76px;
    padding:0 22px;
    position:absolute;
  }
  .logo{font-size:18px}
  .logo span{font-size:8px}
  .menu-toggle{
    display:block;
    font-size:0;
    width:42px;
    height:42px;
    position:relative;
    z-index:31;
  }
  .menu-toggle::before,
  .menu-toggle::after{
    content:"";
    position:absolute;
    left:8px;
    width:27px;
    height:2px;
    background:#fff;
    transition:.2s ease;
  }
  .menu-toggle::before{top:14px;box-shadow:0 9px 0 #fff}
  .menu-toggle::after{display:none}
  .nav{
    position:absolute;
    top:70px;
    right:16px;
    left:16px;
    display:flex;
    flex-direction:column;
    gap:0;
    padding:10px 0;
    background:rgba(10,10,10,.97);
    border:1px solid #292929;
    opacity:0;
    visibility:hidden;
    transform:translateY(-8px);
    transition:.22s ease;
    z-index:30;
  }
  .nav.open{opacity:1;visibility:visible;transform:translateY(0)}
  .nav a{padding:16px 22px;font-size:12px}

  /* Hero */
  .hero{
    min-height:100svh;
    height:auto;
    padding:150px 43px 80px;
    align-items:flex-end;
    background-position:64% center;
  }
  .hero-overlay{
    background:linear-gradient(180deg,
      rgba(0,0,0,.18) 0%,
      rgba(0,0,0,.24) 36%,
      rgba(0,0,0,.88) 83%,
      rgba(0,0,0,.98) 100%);
  }
  .hero-content{max-width:none;width:100%}
  .eyebrow{font-size:10px;letter-spacing:.25em;margin-bottom:16px}
  .hero h1,.page-hero h1{
    font-size:clamp(44px,12vw,58px);
    line-height:1.03;
    letter-spacing:-.045em;
  }
  .hero-text{
    max-width:none;
    margin:24px 0 30px;
    font-size:17px;
    line-height:1.65;
    color:#c9c9c6;
  }
  .hero .btn{width:100%;justify-content:space-between;padding:18px 20px}
  .hero-scroll{display:none}

  /* Intro */
  .section{padding:76px 43px}
  .intro{
    display:block;
    border-bottom:0;
  }
  .intro h2{font-size:42px;line-height:1.08}
  .intro-copy{
    max-width:none;
    margin-top:30px;
    font-size:17px;
    line-height:1.7;
  }

  /* Services: one card under another, no overlap */
  .services{
    display:grid;
    grid-template-columns:1fr;
    gap:1px;
    padding:0;
    background:var(--line);
  }
  .service-card{
    min-height:440px;
    width:100%;
  }
  .service-content{padding:30px 26px 32px}
  .service-number{top:28px;left:26px}
  .service-card h3{font-size:40px;line-height:1.05;margin-bottom:12px}
  .service-card p{font-size:15px;line-height:1.6;max-width:78%;padding-right:20px}
  .service-arrow{right:25px;bottom:28px}

  /* Sony story — preserve desktop structure, only mobile sizing */
  .story-section{
    height:600px;
    min-height:0;
  }
  .story-bg{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:62% center;
  }
  .story-overlay{
    background:linear-gradient(180deg,
      rgba(0,0,0,.02) 0%,
      rgba(0,0,0,.14) 35%,
      rgba(0,0,0,.62) 68%,
      rgba(0,0,0,.94) 100%);
  }
  .story-content{
    left:43px;
    right:43px;
    top:auto;
    bottom:48px;
    transform:none;
    max-width:none;
  }
  .story-content h2{font-size:42px;line-height:1.08;margin-bottom:28px}
  .story-content .btn{width:100%;justify-content:space-between;padding:18px 20px}

  /* Nationwide travel section */
  .cta{
    text-align:center;
    padding:86px 43px 88px;
  }
  .cta h2{font-size:43px;line-height:1.08}
  .cta-copy{
    max-width:none;
    margin:30px auto 36px;
    font-size:17px;
    line-height:1.7;
  }
  .cta .btn{width:100%;justify-content:space-between;padding:18px 20px}

  /* Footer */
  .footer{padding:46px 30px 34px}
  .footer .logo{margin:0 auto 14px}
  .footer p{font-size:10px;line-height:1.5}

  /* Generic subpages */
  .page-hero{
    min-height:55svh;
    padding:130px 43px 70px;
    display:flex;
    align-items:flex-end;
  }
  .page-hero h1{font-size:48px}
  .content.section,
  .gallery.section,
  .pricing.section,
  .contact.section{padding:76px 43px}
  .two-col{display:block}
  .two-col > * + *{margin-top:32px}
  .photo-grid{display:grid;grid-template-columns:1fr;gap:12px}
  .pricing{display:grid;grid-template-columns:1fr;gap:16px}
  .price-card{width:100%}
  .contact-mail{word-break:break-word}
}
