/* ============================================================
   Creative Agency X — Locations Core Page
   Route: /locations/
   Uses existing website width + typography theme tokens.
   ============================================================ */

.cax-locations-main{
    --locations-red:#F30101;
    --locations-black:#000;
    --locations-white:#fff;
    --locations-line:rgba(0,0,0,.24);
    --locations-line-dark:rgba(255,255,255,.27);
    background:#fff;
    color:#000;
    overflow:hidden;
}

.cax-locations-main,
.cax-locations-main *,
.cax-locations-main *::before,
.cax-locations-main *::after{
    box-sizing:border-box;
}

.cax-locations-shell{
    width:min(
        var(--site-width,1600px),
        calc(100% - (var(--site-gutter,24px) * 2))
    );
    margin-inline:auto;
}

.cax-locations-main h1,
.cax-locations-main h2,
.cax-locations-main h3,
.cax-locations-main strong{
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-weight:700;
}

.cax-locations-main h1{
    margin:12px 0 0;
    font-size:var(--type-h2);
    line-height:.94;
    letter-spacing:-.035em;
    text-transform:uppercase;
}

.cax-locations-main h2{
    margin:12px 0 0;
    font-size:var(--type-h3);
    line-height:.98;
    letter-spacing:-.026em;
    text-transform:uppercase;
}

.cax-locations-main h3{
    margin:0;
    font-size:var(--type-h5);
    line-height:1;
    letter-spacing:-.018em;
    text-transform:uppercase;
}

.cax-locations-main p,
.cax-locations-main li{
    font-family:var(--font-ui,"Epic Pro",Arial,Helvetica,sans-serif);
    font-size:var(--type-p);
    line-height:1.5;
}

.cax-locations-eyebrow{
    margin:0!important;
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif)!important;
    font-size:var(--type-ui)!important;
    font-weight:700;
    line-height:1!important;
    letter-spacing:.07em;
    text-transform:uppercase;
}

.cax-locations-dark{
    background:#000;
    color:#fff;
}

.cax-locations-red{
    background:#F30101;
    color:#fff;
}

.cax-locations-breadcrumb{
    min-height:38px;
    padding:10px 0;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:7px;
    border-bottom:1px solid #000;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    font-weight:700;
    line-height:1;
    text-transform:uppercase;
}

.cax-locations-breadcrumb a{
    color:#000;
    text-decoration:none;
}

.cax-locations-breadcrumb a:hover{
    color:#F30101;
}

.cax-locations-breadcrumb span[aria-current="page"]{
    color:#F30101;
}

/* Shared section heading */
.cax-locations-section-head{
    padding:clamp(40px,4.5vw,72px) 0 clamp(24px,2.6vw,40px);
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
    gap:clamp(36px,5vw,88px);
    align-items:end;
    border-bottom:1px solid #000;
}

.cax-locations-section-head>p{
    max-width:790px;
    margin:0;
}

.cax-locations-section-head--dark{
    border-color:var(--locations-line-dark);
}

.cax-locations-section-head--dark h2,
.cax-locations-section-head--dark>p{
    color:#fff;
}

.cax-locations-section-head--red{
    border-color:rgba(255,255,255,.62);
}

.cax-locations-section-head--red .cax-locations-eyebrow,
.cax-locations-section-head--red h2,
.cax-locations-section-head--red>p{
    color:#fff;
}

/* Buttons */
.cax-locations-actions{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:14px;
    margin-top:28px;
}

.cax-locations-action{
    min-height:48px;
    padding:12px 16px;
    display:inline-flex;
    justify-content:space-between;
    align-items:center;
    gap:30px;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui-lg);
    font-weight:700;
    line-height:1;
    text-decoration:none;
    text-transform:uppercase;
}

.cax-locations-action--primary{
    background:#000;
    color:#fff;
}

.cax-locations-action--primary:hover{
    background:#F30101;
}

.cax-locations-action--black{
    background:#000;
    color:#fff;
}

.cax-locations-action--black:hover{
    background:#fff;
    color:#000;
}

.cax-locations-action--text{
    padding-inline:0;
    color:#000;
    border-bottom:2px solid #F30101;
}

.cax-locations-action--text-light{
    padding-inline:0;
    color:#fff;
    border-bottom:2px solid #fff;
}

/* Internet images */
.cax-locations-image{
    margin:0;
    min-width:0;
}

.cax-locations-image img{
    display:block;
    width:100%;
    object-fit:cover;
    filter:grayscale(100%);
    border:1px solid #000;
}

.cax-locations-image figcaption{
    padding-top:8px;
    display:flex;
    justify-content:space-between;
    gap:14px;
    font-family:var(--font-ui,"Epic Pro",Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    line-height:1.32;
}

.cax-locations-image figcaption a{
    color:inherit;
    text-decoration-color:#F30101;
}

/* Hero */
.cax-locations-hero__grid{
    min-height:clamp(560px,72svh,760px);
    padding:clamp(38px,4.5vw,72px) 0;
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(400px,.92fr);
    gap:clamp(40px,6vw,104px);
    align-items:stretch;
    border-bottom:1px solid #000;
}

.cax-locations-hero__copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.cax-locations-hero__intro{
    max-width:900px;
    margin:24px 0 0;
}

.cax-locations-hero__image{
    display:grid;
    grid-template-rows:1fr auto;
}

.cax-locations-hero__image img{
    height:100%;
    min-height:390px;
}

.cax-locations-signal-grid{
    margin-top:auto;
    padding-top:24px;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    border-top:1px solid #000;
}

.cax-locations-signal-grid>div{
    min-width:0;
    padding:0 14px;
    border-right:1px solid var(--locations-line);
}

.cax-locations-signal-grid>div:first-child{
    padding-left:0;
}

.cax-locations-signal-grid>div:last-child{
    border-right:0;
}

.cax-locations-signal-grid span{
    display:block;
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    font-weight:700;
    text-transform:uppercase;
}

.cax-locations-signal-grid strong{
    display:block;
    margin-top:6px;
    font-size:var(--type-ui-lg);
    line-height:1.05;
    text-transform:uppercase;
}

/* Location cards */
.cax-locations-pages{
    padding-bottom:clamp(56px,6vw,104px);
}

.cax-location-card-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border-left:1px solid #000;
    border-top:1px solid #000;
}

.cax-location-card{
    min-width:0;
    padding:clamp(22px,2.5vw,40px);
    border-right:1px solid #000;
    border-bottom:1px solid #000;
}

.cax-location-card__top{
    padding-bottom:15px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    font-weight:700;
    text-transform:uppercase;
}

.cax-location-card__top span:first-child{
    color:#F30101;
}

.cax-location-card__image{
    margin-bottom:24px;
}

.cax-location-card__image img{
    aspect-ratio:16/9;
}

.cax-location-card__copy h3{
    font-size:var(--type-h4);
}

.cax-location-card__intent{
    margin:18px 0 0;
    padding:14px 0;
    border-top:1px solid #000;
    border-bottom:1px solid var(--locations-line);
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif)!important;
    font-size:var(--type-ui-lg)!important;
    font-weight:700;
    line-height:1.2!important;
    text-transform:uppercase;
}

.cax-location-card__copy>p:not(.cax-location-card__intent){
    margin:18px 0 0;
}

.cax-location-card__copy ul{
    margin:18px 0 0;
    padding:0;
    list-style:none;
}

.cax-location-card__copy li{
    padding:9px 0 9px 24px;
    position:relative;
    border-bottom:1px solid var(--locations-line);
}

.cax-location-card__copy li::before{
    content:"→";
    position:absolute;
    left:0;
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-weight:700;
}

.cax-location-card__cta{
    margin-top:22px;
    display:inline-flex;
    align-items:center;
    gap:26px;
    color:#000;
    border-bottom:2px solid #F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui-lg);
    font-weight:700;
    text-decoration:none;
    text-transform:uppercase;
}

/* How to choose */
.cax-locations-choose{
    padding-bottom:clamp(54px,5vw,90px);
}

.cax-locations-row-list{
    margin:0;
    padding:0;
    list-style:none;
}

.cax-locations-row-list li{
    display:grid;
    grid-template-columns:76px minmax(300px,.78fr) minmax(0,1.22fr);
    gap:24px;
    padding:24px 0;
    border-bottom:1px solid var(--locations-line-dark);
}

.cax-locations-row-list li>span{
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-h5);
    font-weight:700;
}

.cax-locations-row-list h3{
    color:#fff;
}

.cax-locations-row-list p{
    margin:0;
    color:rgba(255,255,255,.78);
}

/* Services */
.cax-locations-services{
    padding-bottom:clamp(56px,6vw,98px);
}

.cax-locations-service-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-left:1px solid #000;
    border-top:1px solid #000;
}

.cax-locations-service-grid article{
    min-width:0;
    min-height:290px;
    padding:clamp(22px,2.4vw,36px);
    display:flex;
    flex-direction:column;
    border-right:1px solid #000;
    border-bottom:1px solid #000;
}

.cax-locations-service-grid article>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    font-weight:700;
    text-transform:uppercase;
}

.cax-locations-service-grid h3{
    margin-top:28px;
}

.cax-locations-service-grid p{
    margin:14px 0 0;
}

.cax-locations-service-grid a{
    margin-top:auto;
    padding-top:28px;
    display:inline-flex;
    justify-content:space-between;
    gap:24px;
    color:#000;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui-lg);
    font-weight:700;
    text-decoration:none;
    text-transform:uppercase;
}

.cax-locations-service-grid a:hover{
    color:#F30101;
}

/* Strategy */
.cax-locations-strategy{
    padding-bottom:clamp(54px,5vw,92px);
}

.cax-locations-strategy-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border:1px solid rgba(255,255,255,.65);
    border-top:0;
}

.cax-locations-strategy-column{
    padding:clamp(24px,3vw,46px);
}

.cax-locations-strategy-column+ .cax-locations-strategy-column{
    border-left:1px solid rgba(255,255,255,.65);
    background:#000;
}

.cax-locations-strategy-label{
    display:block;
    margin-bottom:20px;
    color:#fff;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui);
    font-weight:700;
    text-transform:uppercase;
}

.cax-locations-strategy-column article{
    padding:20px 0;
    border-top:1px solid rgba(255,255,255,.5);
}

.cax-locations-strategy-column h3,
.cax-locations-strategy-column p{
    color:#fff;
}

.cax-locations-strategy-column p{
    margin:12px 0 0;
    color:rgba(255,255,255,.86);
}

/* Delivery */
.cax-locations-delivery{
    padding-bottom:clamp(54px,5vw,92px);
}

.cax-locations-step-grid{
    margin:0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    border-left:1px solid var(--locations-line-dark);
    border-top:1px solid var(--locations-line-dark);
}

.cax-locations-step-grid li{
    min-width:0;
    padding:clamp(22px,2.4vw,38px);
    border-right:1px solid var(--locations-line-dark);
    border-bottom:1px solid var(--locations-line-dark);
}

.cax-locations-step-grid li>span{
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-h5);
    font-weight:700;
}

.cax-locations-step-grid h3{
    margin-top:26px;
    color:#fff;
}

.cax-locations-step-grid p{
    margin:14px 0 0;
    color:rgba(255,255,255,.76);
}

/* FAQ */
.cax-locations-faq{
    padding-bottom:clamp(56px,6vw,96px);
}

.cax-locations-faq-list{
    border-top:1px solid #000;
}

.cax-locations-faq-list details{
    border-bottom:1px solid #000;
}

.cax-locations-faq-list summary{
    padding:20px 0;
    display:grid;
    grid-template-columns:64px minmax(0,1fr) 36px;
    gap:18px;
    align-items:center;
    cursor:pointer;
    list-style:none;
}

.cax-locations-faq-list summary::-webkit-details-marker{
    display:none;
}

.cax-locations-faq-list summary>span:first-child{
    color:#F30101;
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-ui-lg);
    font-weight:700;
}

.cax-locations-faq-list summary strong{
    font-size:var(--type-h6);
    line-height:1.15;
    text-transform:uppercase;
}

.cax-locations-faq-list summary>span:last-child{
    font-family:var(--font-impact,Arial,Helvetica,sans-serif);
    font-size:var(--type-h5);
    text-align:right;
}

.cax-locations-faq-list details[open] summary>span:last-child{
    transform:rotate(45deg);
}

.cax-locations-faq-list details>p{
    max-width:980px;
    margin:0 0 22px 82px;
}

/* Final */
.cax-locations-final__grid{
    padding:clamp(54px,6vw,100px) 0;
    display:grid;
    grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);
    gap:clamp(40px,6vw,100px);
    align-items:end;
}

.cax-locations-final .cax-locations-eyebrow,
.cax-locations-final h2{
    color:#fff;
}

.cax-locations-final__grid>div:last-child>p{
    max-width:780px;
    margin:0;
    color:rgba(255,255,255,.9);
}

/* Responsive */
@media (max-width:1180px){
    .cax-locations-signal-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .cax-locations-signal-grid>div{
        padding:12px;
        border-bottom:1px solid var(--locations-line);
    }

    .cax-locations-signal-grid>div:nth-child(2){
        border-right:0;
    }

    .cax-locations-service-grid,
    .cax-locations-step-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media (max-width:980px){
    .cax-locations-main h1{
        font-size:var(--type-h3);
    }

    .cax-locations-main h2{
        font-size:var(--type-h4);
    }

    .cax-locations-main h3{
        font-size:var(--type-h6);
    }

    .cax-locations-hero__grid,
    .cax-locations-section-head,
    .cax-locations-strategy-grid,
    .cax-locations-final__grid{
        grid-template-columns:1fr;
    }

    .cax-locations-hero__grid{
        min-height:0;
    }

    .cax-locations-hero__image img{
        min-height:0;
        aspect-ratio:16/10;
    }

    .cax-locations-section-head{
        gap:24px;
        align-items:start;
    }

    .cax-location-card-grid{
        grid-template-columns:1fr;
    }

    .cax-locations-row-list li{
        grid-template-columns:60px 1fr;
    }

    .cax-locations-row-list p{
        grid-column:2;
    }

    .cax-locations-strategy-column+ .cax-locations-strategy-column{
        border-left:0;
        border-top:1px solid rgba(255,255,255,.65);
    }
}

@media (max-width:720px){
    .cax-locations-signal-grid,
    .cax-locations-service-grid,
    .cax-locations-step-grid{
        grid-template-columns:1fr;
    }

    .cax-locations-signal-grid>div{
        border-right:0;
    }

    .cax-locations-row-list li{
        grid-template-columns:1fr;
        gap:10px;
    }

    .cax-locations-row-list p{
        grid-column:auto;
    }

    .cax-locations-faq-list summary{
        grid-template-columns:44px minmax(0,1fr) 28px;
    }

    .cax-locations-faq-list details>p{
        margin-left:0;
    }

    .cax-locations-actions{
        flex-direction:column;
        align-items:stretch;
    }

    .cax-locations-action{
        width:100%;
    }

    .cax-locations-image figcaption{
        flex-direction:column;
        gap:6px;
    }
}

@media (prefers-reduced-motion:reduce){
    .cax-locations-main *,
    .cax-locations-main *::before,
    .cax-locations-main *::after{
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important;
    }
}
