/* =================================================================
   YSL — responsive.css
   The 2026 prototypes were desktop-only (1440px). These rules add the
   tablet + mobile behaviour described in the handoff.
   ================================================================= */

/* ---- large desktop down: tighten the gutter ---- */
@media (max-width:1280px){
  :root{--ysl-pad:44px;}
  .ysl-h1{font-size:60px;}
  .ysl-split{gap:56px;}
}

/* ---- laptop / small desktop ---- */
@media (max-width:1080px){
  :root{--ysl-pad:36px;}

  /* switch header to slide-in panel */
  .ysl-header__burger{display:flex;}
  .ysl-header__cta{display:none;}
  .ysl-header__cta--mobile{display:inline-flex;margin-top:14px;}

  .ysl-nav{
    position:fixed;top:0;right:0;bottom:0;width:min(360px,86vw);z-index:60;
    background:var(--ysl-cream);border-left:1px solid var(--ysl-hairline);
    padding:96px 28px 40px;overflow-y:auto;
    transform:translateX(100%);transition:transform .28s ease;
    display:flex;flex-direction:column;align-items:stretch;gap:4px;
  }
  .ysl-nav.is-open{transform:translateX(0);}
  .ysl-nav__list{flex-direction:column;align-items:stretch;gap:0;white-space:normal;}
  .ysl-nav__item{border-bottom:1px solid var(--ysl-hairline);}
  .ysl-nav__group{justify-content:space-between;}
  .ysl-nav__link{display:block;padding:16px 2px;font-size:15px;border:0;}
  .ysl-nav__item.is-active .ysl-nav__link{border:0;}
  .ysl-nav__toggle{padding:16px;}
  .ysl-nav__toggle svg{transition:transform .2s ease;}
  .ysl-nav__toggle[aria-expanded="true"] svg{transform:rotate(180deg);}

  .ysl-nav__sub{
    position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;background:transparent;padding:0 0 12px;min-width:0;
    max-height:0;overflow:hidden;transition:max-height .25s ease;
  }
  .ysl-nav__sub.is-open{max-height:420px;}
  .ysl-nav__item--has-sub:hover .ysl-nav__sub:not(.is-open){opacity:1;visibility:visible;max-height:0;}
  .ysl-nav__sub li a{padding:12px 14px;font-size:13.5px;}
  .ysl-nav__sub li a:hover{background:var(--ysl-sand-hover);}
  .ysl-nav__scrim.is-visible{opacity:1;}
  body.ysl-nav-open{overflow:hidden;}
}

/* ---- tablet ---- */
@media (max-width:900px){
  .ysl-section{padding-top:80px;padding-bottom:80px;}
  .ysl-band,.ysl-band--navy{padding:80px 0;}
  .ysl-h1{font-size:48px;}
  .ysl-h2{font-size:36px;}
  .ysl-pagehead__title{font-size:40px;}

  .ysl-split,.ysl-split--reverse{grid-template-columns:1fr;gap:40px;}
  .ysl-grid--4{grid-template-columns:repeat(2,1fr);}
  .ysl-grid--3{grid-template-columns:repeat(2,1fr);}

  .ysl-footer__grid{grid-template-columns:1fr 1fr;gap:36px;}
  .ysl-footer__contact{grid-column:1 / -1;}
}

/* ---- mobile ---- */
@media (max-width:600px){
  :root{--ysl-pad:20px;--ysl-header-h:76px;}
  body{font-size:14px;}
  .ysl-section{padding-top:56px;padding-bottom:56px;}
  .ysl-band,.ysl-band--navy{padding:56px 0;}

  .ysl-h1{font-size:38px;letter-spacing:-.5px;margin-bottom:20px;}
  .ysl-h2{font-size:30px;}
  .ysl-h3{font-size:21px;}
  .ysl-lead{font-size:17px;}
  .ysl-pagehead{padding-top:36px;}
  .ysl-pagehead__title{font-size:32px;}

  .ysl-header__inner{padding:12px 20px;}
  .ysl-header__logo-img{width:104px;height:60px;}

  .ysl-grid--4,.ysl-grid--3,.ysl-grid--2{grid-template-columns:1fr;gap:18px;}
  .ysl-card{padding:30px 24px 26px;}

  .ysl-footer__grid{grid-template-columns:1fr;gap:32px;}
  .ysl-footer__bar{flex-direction:column;align-items:flex-start;gap:12px;}
  .ysl-backtotop{padding-top:24px;}

  .ysl-marquee__item{height:56px;padding:0 26px;}
  .ysl-marquee--award .ysl-marquee__item{height:68px;padding:0 24px;}
  .ysl-marquee__logo{max-width:130px;max-height:34px;}
  .ysl-marquee--award .ysl-marquee__logo{max-width:130px;max-height:52px;}
}
