/**
 * Dreamland — Case Individual (Elementor Pro Theme Builder / dl_case).
 * CSS exclusivo das seções .dl-cs-*; NÃO altera Home nem Archive.
 * Nenhum script, GSAP ou ScrollTrigger adicional necessário.
 */
.dl-cs-section { position:relative; width:100%; box-sizing:border-box; }
.dl-cs-section *, .dl-cs-section *::before, .dl-cs-section *::after { box-sizing:border-box; }

/* HERO editorial off-white — Coolvetica de identidade e mídia dominante. */
.dl-cs-hero {
    --dl-cs-title:#0d0d0d;
    --dl-cs-muted:#68635d;
    --dl-cs-media-bg:#121212;
    --dl-cs-side:clamp(22px,4.5vw,110px);
    --dl-cs-title-size:clamp(58px,9vw,166px);
    --dl-cs-media-height:clamp(330px,55vw,940px);
    background:#f2f0ea;
    color:var(--dl-cs-title);
}
.dl-cs-hero__header {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-end;
    gap:clamp(24px,3vw,50px);
    max-width:1920px;
    margin-inline:auto;
    padding:clamp(132px,15svh,210px) var(--dl-cs-side) clamp(47px,6vw,105px);
}
.dl-cs-hero__eyebrow,
.dl-cs-hero__kicker,
.dl-cs-story__label,
.dl-cs-nav__eyebrow,
.dl-cs-nav__next-label,
.dl-cs-nav__button {
    font-family:"Coolvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:clamp(11px,.8vw,13px);
    font-weight:500;
    letter-spacing:.15em;
    line-height:1.55;
    text-transform:uppercase;
}
.dl-cs-hero__eyebrow,.dl-cs-hero__kicker { color:var(--dl-cs-muted); }
.dl-cs-hero__title {
    color:var(--dl-cs-title);
    font-family:"Coolvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:var(--dl-cs-title-size);
    font-weight:400;
    line-height:.94;
    letter-spacing:-.048em;
    max-width:1680px;
    overflow-wrap:anywhere;
    margin:0;
    text-wrap:balance;
}
.dl-cs-hero__media {
    width:100%;
    height:var(--dl-cs-media-height);
    max-height:980px;
    background:var(--dl-cs-media-bg);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
}
.dl-cs-hero__image {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:var(--dl-cs-image-x,50%) var(--dl-cs-image-y,50%);
}
/* Mais específico que .elementor img para manter o preenchimento no modo cover. */
.dl-cs-hero__media > img.dl-cs-hero__image {
    width:100%;
    height:100%;
    max-width:100%;
}
.dl-cs-hero__media--contain .dl-cs-hero__image {
    object-fit:contain;
    width:100%;
    height:100%;
}

/* HISTÓRIA — conteúdo original do CPT, nenhum texto artificial. */
.dl-cs-story {
    --dl-cs-copy:#252321;
    --dl-cs-heading:#111;
    --dl-cs-muted:#6d6862;
    --dl-cs-side:clamp(22px,4.5vw,110px);
    --dl-cs-content-width:830px;
    --dl-cs-body-size:clamp(18px,1.65vw,26px);
    --dl-cs-vertical:clamp(76px,10vw,170px);
    background:#f2f0ea;
    color:var(--dl-cs-copy);
}
.dl-cs-story__inner {
    max-width:1920px;
    margin-inline:auto;
    padding:var(--dl-cs-vertical) var(--dl-cs-side);
    display:grid;
    grid-template-columns:minmax(150px,.32fr) minmax(0,.68fr);
    gap:clamp(30px,5vw,110px);
    align-items:start;
}
.dl-cs-story__label {
    color:var(--dl-cs-muted);
    margin:0;
    padding-top:.45em;
    font-size:12px;
    font-weight:500;
}
.dl-cs-story__content {
    color:var(--dl-cs-copy);
    width:100%;
    max-width:var(--dl-cs-content-width);
    min-width:0;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:var(--dl-cs-body-size);
    line-height:1.65;
    overflow-wrap:break-word;
}
.dl-cs-story__content p,
.dl-cs-story__content li,
.dl-cs-story__content blockquote {
    color:inherit;
    font:inherit;
    line-height:inherit;
}
.dl-cs-story__content p { margin:0 0 1.35em; }
.dl-cs-story__content > :last-child { margin-bottom:0; }
.dl-cs-story__content h2,
.dl-cs-story__content h3,
.dl-cs-story__content h4 {
    color:var(--dl-cs-heading);
    font-family:"Coolvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:clamp(32px,3.2vw,56px);
    font-weight:400;
    letter-spacing:-.025em;
    line-height:1.1;
    margin:1.45em 0 .65em;
}
.dl-cs-story__content h3 { font-size:clamp(25px,2.5vw,41px); }
.dl-cs-story__content a {
    color:var(--dl-cs-heading);
    text-decoration:underline;
    text-underline-offset:.18em;
}
.dl-cs-story__content a:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.dl-cs-story__content img { display:block; max-width:100%; height:auto; }
.dl-cs-story__content figure,
.dl-cs-story__content .wp-block-gallery,
.dl-cs-story__content .wp-block-image,
.dl-cs-story__content .wp-block-video,
.dl-cs-story__content .wp-block-embed {
    max-width:100%;
    margin:clamp(32px,5vw,70px) 0;
}
.dl-cs-story__content .wp-block-gallery { display:flex; flex-wrap:wrap; gap:12px; }
.dl-cs-story__content .wp-block-gallery figure { margin:0; }
.dl-cs-story__content video,
.dl-cs-story__content iframe { display:block; max-width:100%; }
.dl-cs-story__content iframe { width:100%; aspect-ratio:16/9; border:0; }
.dl-cs-story__content .wp-caption,
.dl-cs-story__content .wp-caption img { max-width:100%; }
.dl-cs-story__content figcaption,
.dl-cs-story__content .wp-caption-text {
    font-size:clamp(12px,.95vw,15px);
    color:var(--dl-cs-muted);
    line-height:1.45;
    margin-top:11px;
}
.dl-cs-story__content blockquote {
    margin:1.65em 0;
    padding-left:clamp(20px,2.7vw,44px);
    border-left:1px solid #96918a;
}
.dl-cs-story__content ul,
.dl-cs-story__content ol { padding-left:1.4em; margin:0 0 1.4em; }

/* NAVEGAÇÃO: próximo trabalho dinâmico + contato, sem repetir Footer. */
.dl-cs-nav {
    --dl-cs-title:#f2f0ea;
    --dl-cs-muted:#b8b5ae;
    --dl-cs-line:#777470;
    --dl-cs-side:clamp(22px,4.5vw,110px);
    --dl-cs-vertical:clamp(80px,10vw,180px);
    --dl-cs-next-size:clamp(40px,5vw,88px);
    --dl-cs-cta-size:clamp(52px,7vw,132px);
    background:#101010;
    color:var(--dl-cs-title);
}
.dl-cs-nav__inner {
    max-width:1920px;
    margin-inline:auto;
    padding:var(--dl-cs-vertical) var(--dl-cs-side);
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:clamp(36px,5vw,85px);
}
.dl-cs-nav__eyebrow,
.dl-cs-nav__next-label { color:var(--dl-cs-muted); }
.dl-cs-nav__next {
    display:flex;
    flex-direction:column;
    gap:clamp(18px,3vw,42px);
    width:100%;
    padding-bottom:clamp(55px,7vw,110px);
    border-bottom:1px solid var(--dl-cs-line);
}
.dl-cs-nav__next-link {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:clamp(22px,5vw,90px);
    width:100%;
    color:var(--dl-cs-title);
    text-decoration:none;
    outline-offset:8px;
}
.dl-cs-nav__next-title {
    color:inherit;
    font-family:"Coolvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:var(--dl-cs-next-size);
    font-weight:400;
    line-height:.99;
    letter-spacing:-.035em;
    max-width:1200px;
    overflow-wrap:anywhere;
}
.dl-cs-nav svg {
    display:block;
    fill:none;
    stroke:currentColor;
    stroke-width:1.55;
    stroke-linecap:round;
    stroke-linejoin:round;
    flex:0 0 auto;
    transition:transform .25s ease;
}
.dl-cs-nav__next-link svg { width:clamp(38px,5.5vw,85px); height:clamp(38px,5.5vw,85px); }
.dl-cs-nav__next-link:hover,
.dl-cs-nav__next-link:focus-visible { color:var(--dl-cs-title); }
.dl-cs-nav__next-link:hover svg,
.dl-cs-nav__next-link:focus-visible svg { transform:translate(5px,-5px); }
.dl-cs-nav__cta-title {
    color:var(--dl-cs-title);
    font-family:"Coolvetica","Helvetica Neue",Helvetica,Arial,sans-serif;
    font-size:var(--dl-cs-cta-size);
    font-weight:400;
    line-height:.97;
    letter-spacing:-.041em;
    max-width:1450px;
    overflow-wrap:anywhere;
    margin:0;
}
.dl-cs-nav__actions {
    display:flex;
    flex-wrap:wrap;
    gap:16px;
    width:100%;
}
.dl-cs-nav__button {
    display:inline-flex;
    align-items:center;
    justify-content:space-between;
    gap:clamp(16px,2vw,42px);
    min-width:210px;
    min-height:58px;
    padding:16px 18px 16px 20px;
    color:var(--dl-cs-title);
    border:1px solid var(--dl-cs-line);
    text-decoration:none;
    transition:border-color .25s ease;
}
.dl-cs-nav__button svg { width:24px; height:24px; }
.dl-cs-nav__button:hover,
.dl-cs-nav__button:focus-visible { border-color:var(--dl-cs-title); color:var(--dl-cs-title); }
.dl-cs-nav__button:hover svg,
.dl-cs-nav__button:focus-visible svg { transform:translate(3px,-3px); }
.dl-cs-nav a:focus-visible { outline:2px solid currentColor; outline-offset:5px; }

@media (min-width:1921px) {
    .dl-cs-hero__header,
    .dl-cs-story__inner,
    .dl-cs-nav__inner { max-width:2100px; }
}
@media (max-width:1024px) {
    .dl-cs-hero__header { padding-top:130px; }
    .dl-cs-story__inner { grid-template-columns:minmax(130px,.24fr) minmax(0,.76fr); gap:24px; }
}
@media (max-width:767px) {
    .dl-cs-hero { --dl-cs-title-size:58px; }
    .dl-cs-nav { --dl-cs-next-size:40px; --dl-cs-cta-size:55px; }
    .dl-cs-hero__header {
        padding:112px var(--dl-cs-side) 45px;
        gap:20px;
    }
    .dl-cs-hero__title {
        font-size:calc(var(--dl-cs-title-size) * .76);
        line-height:1.03;
        letter-spacing:-.035em;
        overflow-wrap:break-word;
    }
    .dl-cs-hero__media {
        height:var(--dl-cs-media-height);
        max-height:75svh;
    }
    /* Capas quadradas (PDP): a própria fotografia define a altura, sem faixas laterais. */
    .dl-cs-hero__media--contain {
        height:auto;
        max-height:none;
    }
    .dl-cs-hero__media--contain > img.dl-cs-hero__image {
        display:block;
        width:100%;
        height:auto;
        object-fit:contain;
    }
    .dl-cs-story__inner {
        display:flex;
        flex-direction:column;
        align-items:stretch;
        gap:30px;
        padding:var(--dl-cs-vertical) var(--dl-cs-side);
    }
    .dl-cs-story__content { font-size:var(--dl-cs-body-size); line-height:1.63; }
    .dl-cs-story__content figure,
    .dl-cs-story__content .wp-block-gallery { margin:28px 0; }
    .dl-cs-nav__inner { padding:var(--dl-cs-vertical) var(--dl-cs-side); gap:34px; }
    .dl-cs-nav__next { padding-bottom:55px; }
    .dl-cs-nav__next-title { font-size:calc(var(--dl-cs-next-size) * .85); line-height:1.05; }
    .dl-cs-nav__cta-title { font-size:calc(var(--dl-cs-cta-size) * .84); line-height:1.04; }
    .dl-cs-nav__next-link svg { width:34px; height:34px; }
    .dl-cs-nav__actions { flex-direction:column; align-items:stretch; }
    .dl-cs-nav__button { width:100%; }
}
@media(max-width:359px) {
    .dl-cs-hero__title { font-size:calc(var(--dl-cs-title-size) * .7); }
    .dl-cs-nav__next-title { font-size:calc(var(--dl-cs-next-size) * .78); }
    .dl-cs-nav__cta-title { font-size:calc(var(--dl-cs-cta-size) * .75); }
}
@media (prefers-reduced-motion:reduce) {
    .dl-cs-section, .dl-cs-section *,
    .dl-cs-section *::before, .dl-cs-section *::after {
        animation-duration:.01ms !important;
        transition-duration:.01ms !important;
        scroll-behavior:auto !important;
    }
}
