/* Locations Section */
.locations-section {
    background: var(--locations-bg, #fff);
    color: var(--locations-text, #303030);
    padding: var(--locations-pad-top, 90px) 22px var(--locations-pad-bottom, 90px);
    overflow: hidden;
}
.locations-wrap {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 520px);
    gap: clamp(36px, 7vw, 86px);
    align-items: center;
}
.locations-title-row {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 12px;
}
.locations-title-line {
    width: 58px;
    height: 1px;
    background: var(--locations-text, #303030);
    opacity: .35;
    flex: 0 0 auto;
}
.locations-eyebrow {
    color: var(--locations-muted, #737373);
    font-family: "Satoshi", Arial, sans-serif;
    font-size: 13px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.locations-heading {
    margin: 0 0 30px;
    font-family: var(--lumana-header-font, Georgia, 'Times New Roman', serif);
    font-size: clamp(42px, 5.6vw, 76px);
    line-height: .96;
    font-weight: 300;
    letter-spacing: -.04em;
    text-transform: uppercase;
}
.locations-heading span { display: block; }
.locations-intro {
    max-width: 520px;
    margin: -14px 0 26px;
    color: var(--locations-muted, #737373);
    font-family: "Satoshi", Arial, sans-serif;
    line-height: 1.7;
    font-size: 15px;
}
.locations-accordion {
    max-width: 520px;
    border-top: 1px solid var(--locations-divider, #e8e3da);
}
.locations-item {
    border-bottom: 1px solid var(--locations-divider, #e8e3da);
}
.locations-question {
    width: 100%;
    border: 0;
    background: transparent;
    color: var(--locations-text, #303030);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 0;
    cursor: pointer;
    text-align: left;
    font-family: var(--lumana-header-font, Georgia, 'Times New Roman', serif);
    font-size: 18px;
    letter-spacing: -.015em;
    text-transform: uppercase;
}
.locations-plus {
    width: 18px;
    height: 18px;
    position: relative;
    flex: 0 0 auto;
}
.locations-plus::before,
.locations-plus::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 1px;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform .25s ease, opacity .25s ease;
}
.locations-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.locations-item.is-open .locations-plus::after { opacity: 0; transform: translate(-50%, -50%) rotate(0deg); }
.locations-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .34s ease;
}
.locations-answer > div { padding: 0 34px 22px 0; }
.locations-answer p {
    margin: 0;
    color: var(--locations-muted, #737373);
    font-family: "Satoshi", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.72;
}
.locations-map-link {
    display: inline-block;
    margin-top: 11px;
    color: var(--locations-accent, #b89b5e);
    font-family: "Satoshi", Arial, sans-serif;
    font-size: 12px;
    letter-spacing: .12em;
    text-decoration: none;
    text-transform: uppercase;
    border-bottom: 1px solid currentColor;
    padding-bottom: 3px;
}
.locations-card {
    background: var(--locations-card-bg, #fff);
    padding: clamp(18px, 2.8vw, 28px);
    box-shadow: 0 20px 48px var(--locations-card-shadow, rgba(0,0,0,.12));
    border: 1px solid rgba(0,0,0,.04);
}
.locations-card h3 {
    margin: 0 0 14px;
    color: var(--locations-text, #303030);
    font-family: "Satoshi", Arial, sans-serif;
    font-size: 16px;
    font-weight: 800;
}
.locations-map-frame {
    position: relative;
    width: 100%;
    min-height: 245px;
    background: #f4f1ec;
    overflow: hidden;
}
.locations-map-frame iframe,
.locations-map-frame img {
    width: 100%;
    height: 245px;
    display: block;
    border: 0;
    object-fit: cover;
}
.locations-map-placeholder {
    height: 245px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #f7f4ee, #e9e3d9);
    color: var(--locations-muted, #737373);
    font-family: "Satoshi", Arial, sans-serif;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: 12px;
}
.locations-open-map {
    position: absolute;
    left: 12px;
    top: 12px;
    background: rgba(255,255,255,.92);
    color: #3265a8;
    text-decoration: none;
    font: 700 12px/1 "Satoshi", Arial, sans-serif;
    padding: 9px 12px;
    box-shadow: 0 10px 26px rgba(0,0,0,.12);
}
.locations-contact-list {
    display: grid;
    gap: 10px;
    padding-top: 14px;
}
.locations-contact-list a,
.locations-address {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 9px;
    align-items: start;
    color: var(--locations-text, #303030);
    text-decoration: none;
    font-family: "Satoshi", Arial, sans-serif;
    font-size: 13px;
    line-height: 1.45;
}
.locations-contact-list span,
.locations-address span { color: var(--locations-accent, #b89b5e); }
.locations-contact-list strong { font-weight: 650; word-break: break-word; }
.locations-contact-list small {
    display: block;
    color: var(--locations-muted, #737373);
    font-size: 11px;
    margin-top: 2px;
}
.locations-address p { margin: 0; color: var(--locations-muted, #737373); }
@media (max-width: 900px) {
    .locations-wrap { grid-template-columns: 1fr; gap: 34px; }
    .locations-card { max-width: 620px; width: 100%; box-sizing: border-box; }
    .locations-accordion { max-width: none; }
}
@media (max-width: 560px) {
    .locations-section { padding-left: 18px; padding-right: 18px; }
    .locations-title-line { width: 38px; }
    .locations-heading { font-size: clamp(38px, 14vw, 58px); }
    .locations-question { font-size: 16px; padding: 18px 0; }
    .locations-map-frame iframe,
    .locations-map-frame img,
    .locations-map-placeholder { height: 210px; }
    .locations-card { padding: 16px; }
}
