/* Local editorial proposal shared by the catalogue, studio, and cart. */
:root { --studio-sans:"Helvetica Neue",Arial,sans-serif; }

/* OBJ#001: preserve the source photographs and let them speak. */
.obj1-explore .obj1-collage-card img { height:auto; aspect-ratio:auto; object-fit:contain; }
.obj1-explore .obj1-collage-card figcaption { display:none; }
.obj1-explore .obj1-collage-grid { row-gap:clamp(34px,4vw,72px); }
.obj1-explore .obj1-collage-living { margin-top:0; align-self:end; }

/* The OBJ#002 hero uses the whole product photograph. */
.obj2-page .obj2-hero-image { background:#ada9a6; }
.obj2-page .obj2-hero-image img { object-fit:contain; }

/* Home: one calm index after the two immersive product introductions. */
.home-collection { background:#f4f3ef; color:#151515; }
.home-collection-head { display:grid; grid-template-columns:1fr 3fr auto; align-items:end; gap:24px; padding:clamp(42px,6vw,100px) clamp(20px,4vw,70px) clamp(34px,5vw,80px); }
.home-collection-head > span { align-self:start; font-size:.72rem; letter-spacing:.05em; }
.home-collection-head > span:last-child { align-self:end; }
.home-collection-head h2 { margin:0; font-family:var(--studio-sans); font-size:clamp(4.3rem,9vw,10rem); font-weight:400; line-height:.86; letter-spacing:-.085em; }
.home-object-list { border-top:1px solid #151515; }
.home-object-row { display:grid; grid-template-columns:55% 45%; min-height:clamp(540px,70svh,900px); border-bottom:1px solid #151515; }
.home-object-row-alt { grid-template-columns:45% 55%; }
.home-object-row-alt .home-object-image { order:2; border-left:1px solid #151515; border-right:0; }
.home-object-image { display:block; overflow:hidden; padding:0; border:0; border-right:1px solid #151515; background:#eceae4; cursor:pointer; }
.home-object-image img { display:block; width:100%; height:100%; max-height:900px; object-fit:contain; }
.home-object-row-alt .home-object-image { background:#31372f; }
.home-object-row-alt .home-object-image img { object-fit:cover; }
.home-object-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:30px; padding:clamp(28px,4vw,66px); }
.home-object-copy > span { font-size:.74rem; letter-spacing:.05em; }
.home-object-copy h3 { margin:auto 0 0; font-family:var(--studio-sans); font-size:clamp(5rem,10vw,13rem); font-weight:400; line-height:.78; letter-spacing:-.095em; }
.home-object-copy p { max-width:370px; margin:0; font-family:var(--studio-sans); font-size:clamp(1.15rem,1.7vw,1.75rem); line-height:1.22; letter-spacing:-.035em; }
.home-object-copy button { display:flex; justify-content:space-between; align-items:center; width:100%; min-height:58px; padding:12px 0; border:0; border-top:1px solid #151515; background:transparent; font-size:.76rem; text-align:left; cursor:pointer; }
.home-object-copy button:hover,.home-object-copy button:focus-visible { color:#1749d7; outline:none; }
.home-object-copy button span { font-size:1.4rem; }
.home-studio-bridge { min-height:70svh; padding:clamp(28px,4vw,66px); display:flex; flex-direction:column; align-items:flex-start; background:#1749d7; color:#fff; }
.home-studio-bridge > span { font-size:.72rem; letter-spacing:.05em; }
.home-studio-bridge h2 { margin:auto 0 38px; font-family:var(--studio-sans); font-size:clamp(4.2rem,10vw,12rem); font-weight:400; line-height:.83; letter-spacing:-.09em; }
.home-studio-bridge button { min-height:52px; padding:0 20px; border:1px solid #fff; background:#fff; color:#151515; font-size:.76rem; cursor:pointer; }
.home-studio-bridge button:hover,.home-studio-bridge button:focus-visible { background:transparent; color:#fff; }

/* Studio: a brand page with photographic proof, not a boxed text panel. */
.studio-page { background:#f4f3ef; }
.studio-hero { min-height:calc(100svh - 76px); display:flex; flex-direction:column; padding:clamp(22px,3vw,50px) clamp(20px,4vw,70px); background:#1749d7; color:#fff; }
.studio-top { display:flex; justify-content:space-between; gap:20px; font-size:.75rem; letter-spacing:.04em; }
.studio-top button { padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
.studio-hero h1 { margin:auto 0 30px; max-width:none; font-family:var(--studio-sans); font-size:clamp(5rem,11vw,13rem); font-weight:400; line-height:.82; letter-spacing:-.09em; text-transform:none; }
.studio-hero p { max-width:690px; margin:0 0 clamp(36px,5vw,70px); font-family:var(--studio-sans); font-size:clamp(1.15rem,2vw,2rem); line-height:1.22; letter-spacing:-.035em; }
.studio-scroll { padding-top:18px; border-top:1px solid rgba(255,255,255,.7); font-size:.72rem; letter-spacing:.06em; }
.studio-objects { padding:clamp(35px,5vw,80px) clamp(20px,4vw,70px) clamp(55px,7vw,110px); }
.studio-objects-head { display:flex; justify-content:space-between; align-items:end; gap:24px; padding-bottom:35px; }
.studio-objects-head > span { align-self:start; font-size:.72rem; }
.studio-objects-head h2 { margin:0; font-family:var(--studio-sans); font-size:clamp(3.7rem,8vw,9rem); font-weight:400; letter-spacing:-.08em; line-height:.85; }
.studio-object-pair { display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(14px,2vw,32px); }
.studio-object-pair button { min-width:0; padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.studio-object-pair img { display:block; width:100%; height:clamp(360px,52vw,760px); object-fit:cover; border-radius:16px; }
.studio-object-pair button:last-child img { object-position:center; }
.studio-object-pair button > span { display:flex; justify-content:space-between; gap:12px; padding:15px 0; border-bottom:1px solid #151515; font-size:.75rem; }
.studio-object-pair i { font-style:normal; }
.studio-object-pair button:hover span,.studio-object-pair button:focus-visible span { color:#1749d7; }
.studio-end { min-height:180px; padding:28px clamp(20px,4vw,70px); display:flex; align-items:end; justify-content:space-between; gap:20px; border-top:1px solid #151515; font-size:.75rem; }
.studio-end a { text-decoration:underline; text-underline-offset:5px; }

/* Cart: clear selection and a useful empty state. */
.cart-page { padding:clamp(24px,3vw,50px) clamp(20px,4vw,70px) 100px; background:#f4f3ef; }
.cart-overline,.cart-item-index,.cart-summary-index,.cart-empty > span { font-size:.72rem; letter-spacing:.05em; }
.cart-page .page-head { align-items:end; padding:42px 0 36px; margin:0; }
.cart-page .page-title { display:flex; align-items:start; gap:15px; font-family:var(--studio-sans); font-size:clamp(5.2rem,11vw,13rem); font-weight:400; line-height:.78; letter-spacing:-.09em; text-transform:none; }
.cart-title-count { padding-top:6px; font-family:var(--mono); font-size:.9rem; line-height:1; letter-spacing:0; }
.cart-page .page-head .btn { border:0; border-bottom:1px solid #151515; padding:0 0 8px; }
.cart-empty { min-height:55svh; padding:35px 0 70px; display:flex; flex-direction:column; align-items:flex-start; border-top:1px solid #151515; }
.cart-empty h2 { margin:auto 0 18px; font-family:var(--studio-sans); font-size:clamp(3.8rem,8vw,9rem); font-weight:400; line-height:.9; letter-spacing:-.08em; }
.cart-empty p { max-width:440px; margin:0 0 34px; font-family:var(--studio-sans); font-size:clamp(1rem,1.5vw,1.4rem); }
.cart-empty > div { display:flex; flex-wrap:wrap; gap:12px; }
.cart-empty button { min-height:50px; padding:0 20px; border:1px solid #151515; background:transparent; cursor:pointer; }
.cart-empty button:hover,.cart-empty button:focus-visible { background:#151515; color:#fff; }
.cart-page .cart-layout { grid-template-columns:minmax(0,1fr) minmax(310px,.45fr); gap:clamp(26px,4vw,70px); border-top:1px solid #151515; padding-top:30px; }
.cart-page .cart-items { border-top:0; }
.cart-page .cart-item { grid-template-columns:clamp(120px,15vw,200px) minmax(0,1fr) auto; padding:0 0 26px; margin-bottom:26px; gap:clamp(16px,2vw,30px); }
.cart-page .cart-item img { width:100%; height:clamp(150px,17vw,230px); object-fit:contain; background:#eeece7; }
.cart-page .cart-item h3 { margin:12px 0 20px; font-family:var(--studio-sans); font-size:clamp(2.2rem,4vw,4.4rem); font-weight:400; line-height:.9; letter-spacing:-.07em; }
.cart-page .cart-item > div:last-child { display:flex; flex-direction:column; align-items:end; justify-content:space-between; }
.cart-page .summary { top:100px; border:0; padding:20px 0; background:transparent; }
.cart-page .summary h2 { margin:22px 0 30px; font-family:var(--studio-sans); font-size:clamp(2.5rem,4vw,4.5rem); font-weight:400; letter-spacing:-.06em; text-transform:none; }
.cart-page .summary-line { font-size:.8rem; }

@media(max-width:820px) {
  .obj1-explore .obj1-collage-grid { gap:clamp(35px,10vw,50px); }
  .home-collection-head { grid-template-columns:1fr auto; padding:46px 20px; }
  .home-collection-head h2 { grid-column:1/-1; grid-row:2; font-size:clamp(3.8rem,12vw,6rem); }
  .home-collection-head > span:last-child { text-align:right; }
  .home-object-row,.home-object-row-alt { display:flex; flex-direction:column; min-height:0; }
  .home-object-row-alt .home-object-image { order:0; border-left:0; }
  .home-object-image { width:100%; height:65svh; min-height:430px; border-right:0; border-bottom:1px solid #151515; }
  .home-object-copy { min-height:310px; padding:24px 20px 22px; gap:20px; }
  .home-object-copy h3 { font-size:clamp(4.7rem,18vw,8rem); }
  .home-object-copy p { font-size:1.1rem; }
  .home-studio-bridge { min-height:60svh; padding:25px 20px 80px; }
  .home-studio-bridge h2 { font-size:clamp(3.9rem,12vw,6.5rem); }
  .studio-hero { min-height:calc(100svh - 66px); padding:22px 20px 30px; }
  .studio-top { font-size:.62rem; }
  .studio-hero h1 { font-size:clamp(3.8rem,13vw,7rem); }
  .studio-hero p { font-size:1.15rem; }
  .studio-objects { padding:55px 20px 75px; }
  .studio-objects-head { align-items:start; flex-direction:column; }
  .studio-objects-head h2 { font-size:clamp(3.6rem,12vw,6rem); }
  .studio-object-pair { grid-template-columns:1fr; gap:35px; }
  .studio-object-pair img { height:65svh; min-height:420px; }
  .studio-end { min-height:150px; align-items:start; flex-direction:column; justify-content:space-between; }
  .cart-page { padding:24px 20px 80px; }
  .cart-page .page-head { align-items:start; flex-direction:column; gap:22px; }
  .cart-page .page-title { font-size:clamp(5rem,18vw,8rem); }
  .cart-page .cart-layout { grid-template-columns:1fr; }
  .cart-page .cart-item { grid-template-columns:105px minmax(0,1fr); gap:14px; }
  .cart-page .cart-item img { width:105px; height:145px; }
  .cart-page .cart-item h3 { font-size:2.3rem; margin:8px 0 12px; }
  .cart-page .cart-item > div:last-child { grid-column:2; align-items:center; flex-direction:row; }
  .cart-page .summary { position:static; border-top:1px solid #151515; }
}
@media(prefers-reduced-motion:reduce) {
  .home-object-image img { transition:none; }
}

/* Campaign: a real OBJ#001 photograph and a graphic signal derived from the logo's square rhythm. */
.home-campaign { min-height:760px; display:grid; grid-template-columns:minmax(380px,41%) minmax(0,59%); background:#1749d7; color:#fff; }
.home-campaign-photo { grid-column:2; grid-row:1; display:block; min-height:760px; overflow:hidden; }
.home-campaign-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:58% center; }
.home-campaign-panel { grid-column:1; grid-row:1; z-index:1; min-width:0; padding:clamp(25px,3.2vw,55px); display:flex; flex-direction:column; }
.home-campaign-top { display:flex; flex-direction:column; align-items:flex-start; gap:30px; }
.home-campaign-top img { display:block; width:clamp(118px,12vw,190px); height:auto; }
.home-campaign-top span,.home-campaign-message>span { font-size:.7rem; letter-spacing:.08em; }
.home-campaign-signal { display:flex; gap:10px; margin:auto 0 30px; }
.home-campaign-signal i { display:block; width:22px; height:22px; border:2px solid currentColor; animation:campaign-signal 2.7s ease-in-out infinite; }
.home-campaign-signal i:nth-child(2) { animation-delay:.25s; }
.home-campaign-signal i:nth-child(3) { animation-delay:.5s; }
@keyframes campaign-signal { 0%,55%,100% { background:transparent; } 20%,35% { background:currentColor; } }
.home-campaign-message h2 { max-width:11ch; margin:17px 0 24px; font-family:var(--studio-sans); font-size:clamp(3.5rem,5.4vw,6.4rem); font-weight:400; line-height:.91; letter-spacing:-.075em; }
.home-campaign-message p { max-width:310px; margin:0 0 36px; font-family:var(--studio-sans); font-size:clamp(1.08rem,1.45vw,1.5rem); line-height:1.18; letter-spacing:-.03em; }
.home-campaign-actions { display:grid; grid-template-columns:1fr; }
.home-campaign-actions button { display:flex; align-items:center; justify-content:space-between; min-height:56px; padding:0; border:0; border-top:1px solid rgba(255,255,255,.75); background:none; color:#fff; font-size:.74rem; text-align:left; cursor:pointer; }
.home-campaign-actions button:last-child { border-bottom:1px solid rgba(255,255,255,.75); }
.home-campaign-actions button span { font-size:1.3rem; }
.home-campaign-actions button:hover,.home-campaign-actions button:focus-visible { padding-left:10px; outline:0; background:rgba(255,255,255,.14); }
.studio-hero { position:relative; overflow:hidden; }
.studio-hero-mark { position:absolute; width:48vw; max-width:720px; right:-5vw; top:18%; opacity:.12; pointer-events:none; }
.studio-hero > :not(.studio-hero-mark) { position:relative; z-index:1; }
@media(max-width:820px) {
  .home-campaign { display:flex; flex-direction:column; min-height:0; }
  .home-campaign-photo { order:1; min-height:0; height:50svh; }
  .home-campaign-photo img { object-position:59% center; }
  .home-campaign-panel { order:2; min-height:560px; padding:26px 20px 30px; }
  .home-campaign-top { gap:22px; }
  .home-campaign-signal { margin:auto 0 18px; }
  .home-campaign-message h2 { font-size:clamp(3.7rem,12vw,5.8rem); }
  .home-campaign-message p { margin-bottom:34px; }
  .studio-hero-mark { width:88vw; right:-30vw; top:25%; }
}
@media(prefers-reduced-motion:reduce) { .home-campaign-signal i { animation:none; } }

/* Direct access to both objects after the immersive opening scenes. */
.home-collection-head { grid-template-columns:1fr auto; padding-bottom:34px; }
.home-collection-head h2 { grid-column:1/-1; grid-row:2; font-size:clamp(3.8rem,7vw,8rem); }
.home-object-direct { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border-top:1px solid #151515; }
.home-direct-card { min-width:0; border-right:1px solid #151515; border-bottom:1px solid #151515; }
.home-direct-card:last-child { border-right:0; }
.home-direct-image { display:block; width:100%; height:clamp(350px,47vw,680px); overflow:hidden; padding:0; border:0; border-bottom:1px solid #151515; background:#eeece7; cursor:pointer; }
.home-direct-card:last-child .home-direct-image { background:#302c28; }
.home-direct-image img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .55s ease; }
.home-direct-card:last-child .home-direct-image img { object-fit:cover; }
.home-direct-image:hover img,.home-direct-image:focus-visible img { transform:scale(1.025); }
.home-direct-info { padding:clamp(20px,2.6vw,42px); }
.home-direct-info>span { font-size:.7rem; letter-spacing:.05em; }
.home-direct-info h3 { margin:20px 0 28px; font-family:var(--studio-sans); font-size:clamp(3.6rem,7vw,8rem); font-weight:400; line-height:.85; letter-spacing:-.085em; }
.home-direct-info>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.home-direct-info button { display:flex; justify-content:space-between; align-items:center; min-width:0; min-height:58px; padding:0 12px; border:1px solid #151515; background:transparent; text-align:left; font-size:.72rem; cursor:pointer; }
.home-direct-info button:last-child { background:#151515; color:#fff; }
.home-direct-info button:hover,.home-direct-info button:focus-visible { background:#1749d7; border-color:#1749d7; color:#fff; outline:0; }
.home-direct-info button span { font-size:1.25rem; }

/* OBJ#001 color study: real product photo remains the default. */
.obj1-buy-page .obj1-gallery-frame[data-obj001-frame="clean"] { position:relative; }
.obj1-buy-page .obj1-blue-mock { position:absolute; top:0; left:0; width:100%; height:calc(100% - 42px); object-fit:contain; opacity:0; visibility:hidden; transition:opacity .28s ease; pointer-events:none; }
.obj1-buy-page.is-blue-concept .obj1-blue-mock { opacity:1; visibility:visible; }
.obj1-color-options { display:flex; flex-wrap:wrap; gap:8px; width:100%; }
.obj1-color-options button { display:flex; align-items:center; gap:9px; min-height:46px; padding:5px 12px; border:1px solid #888; background:#fff; color:#151515; font-size:.69rem; cursor:pointer; }
.obj1-color-options button[aria-pressed="true"] { border-color:#151515; box-shadow:inset 0 0 0 1px #151515; }
.obj1-color-options button:hover,.obj1-color-options button:focus-visible { border-color:#1749d7; outline:2px solid #1749d7; outline-offset:2px; }
.obj1-swatch { display:block; width:20px; height:20px; border:1px solid #aaa; border-radius:50%; flex:none; }
.obj1-swatch-original { background:linear-gradient(135deg,#f2ddaa 0 50%,#073ac9 50%); }
.obj1-swatch-blue { background:#073ac9; }
.obj1-color-note { display:none; max-width:370px; line-height:1.4; }
.obj1-buy-page.is-blue-concept .obj1-color-note { display:block; }
.obj1-buy-page [data-add="obj001"]:disabled { background:#a6a6a6; border-color:#a6a6a6; color:#151515; cursor:not-allowed; }
@media(max-width:820px) {
  .home-object-direct { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-direct-image { height:clamp(230px,55vw,420px); }
  .home-direct-info { padding:18px 12px 20px; }
  .home-direct-info h3 { font-size:clamp(2rem,8vw,4rem); margin:18px 0 22px; }
  .home-direct-info>div { grid-template-columns:1fr; gap:7px; }
  .home-direct-info button { min-height:42px; padding:0 8px; font-size:.6rem; }
  .obj1-buy-page .obj1-blue-mock { height:100%; }
}
@media(prefers-reduced-motion:reduce) { .home-direct-image img,.obj1-buy-page .obj1-blue-mock { transition:none; } }
.obj1-buy-page.is-blue-concept .obj1-gallery-frame:not([data-obj001-frame="clean"]),
.obj1-buy-page.is-blue-concept .obj1-gallery-nav { display:none; }
.obj1-buy-page .obj1-blue-mock img { display:block; width:100%; height:100%; object-fit:contain; }
/* Home light control: the icon reflects scroll progress and can jump between states. */
[data-story="obj001"] .story-state-icon {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  min-height: 48px;
  padding: 9px 15px;
  border: 1px solid currentColor;
  border-radius: 999px;
  background: rgba(244, 243, 239, .94);
  color: #171717;
  font: 600 11px/1 var(--mono);
  letter-spacing: .07em;
  cursor: pointer;
  transition: background-color .2s, color .2s, border-color .2s;
}
[data-story="obj001"] .story-state-icon:hover,
[data-story="obj001"] .story-state-icon:focus-visible { background: #1648d8; color: #fff; border-color: #1648d8; }
[data-story="obj001"] .story-state-icon svg { flex: none; }
[data-story="obj001"] .story-state-icon[aria-pressed="true"] { background: #1648d8; color: #fff; border-color: #1648d8; }
[data-story="obj001"] .story-state-word { display: grid; }
[data-story="obj001"] .story-state-word span { grid-area: 1 / 1; }
[data-story="obj001"] .story-state-word .state-on,
[data-story="obj001"] .story-state-icon[aria-pressed="true"] .state-off { visibility: hidden; }
[data-story="obj001"] .story-state-icon[aria-pressed="true"] .state-on { visibility: visible; }
@media (max-width: 820px) {
  [data-story="obj001"] .story-state-icon { min-height: 44px; padding: 7px 12px; gap: 7px; font-size: 9px; }
  [data-story="obj001"] .story-state-icon svg { width: 22px; height: 22px; }
}
/* The hidden toast used to leave a black rectangle below the viewport. */
#toast:not(.show) { opacity: 0; pointer-events: none; }
#toast.show { opacity: 1; }

.obj2-video { margin: 0; background: #101619; }
.obj2-video video { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; }

.obj2-video { position:relative; }
.obj2-video-frames { display:grid; }
.obj2-video-frames video { grid-area:1/1; }
.obj2-video-frames video + video { opacity:0; }
.obj2-video-caption { position:absolute; inset:auto 0 0; display:flex; align-items:center; justify-content:space-between; padding:clamp(16px,3vw,42px); color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.35)); }
.obj2-video-caption > span { font-size:clamp(22px,3.5vw,48px); letter-spacing:-.04em; }
.obj2-video-caption button { color:#fff; background:transparent; border:1px solid rgba(255,255,255,.65); padding:12px 18px; cursor:pointer; font:inherit; }
.obj2-video-caption button:hover { background:#fff; color:#151515; }
.obj2-video-caption button:focus-visible { outline:2px solid #fff; outline-offset:4px; }
@media(max-width:820px) { .obj2-video-caption button { padding:8px 12px; font-size:11px; } }

/* Prueba de encuadre móvil; escritorio conserva 16:9. */
@media (max-width: 820px) {
  .obj2-video-frames { aspect-ratio: 4 / 5; overflow: hidden; }
  .obj2-video-frames video { width:100%; height:100%; min-height:0; aspect-ratio:auto; object-fit:cover; object-position:72% 50%; }
}

/* Export móvil definitivo: mostrar su encuadre completo. */
@media(max-width:820px) { .obj2-video-frames video { object-fit:contain; object-position:center; } }
.obj2-page .obj2-hero { background:#151515; color:#fff; }
.obj2-page .obj2-light-switch { border-color:#858585; }
.obj2-page .obj2-light-switch button { color:#eee; }
.obj2-page .obj2-light-switch button[aria-pressed="true"] { background:#fff; color:#151515; }
.obj2-page .obj2-hero-footer { border-color:#777; }
