/* =============================================================================
   custom-locations.css — location pages only (body.locations-page)
   - locations.html, location-jyvaskyla.html, location-turku.html
   - Polished typography, cards, dropdown, map section
   ============================================================================= */

/* Location pages only — typography, cards, dropdown, map */

body.locations-page{
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    font-weight:400;
    letter-spacing:-.01em;
    text-rendering:optimizeLegibility;
    -webkit-font-smoothing:antialiased;
    background-color:#b78752;
}

body.locations-page h1,
body.locations-page h2,
body.locations-page h3,
body.locations-page .location-name,
body.locations-page .navbar-brand{
    font-family:'Cormorant Garamond', Georgia, serif;
}

body.locations-page .navbar-brand{
    font-weight:700;
    letter-spacing:.015em;
}

body.locations-page .navbar .nav-link{
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    font-size:.95rem;
    font-weight:700;
    letter-spacing:.01em;
}

body.locations-page .navbar .dropdown-menu{
    min-width:15.5rem;
    margin-top:.7rem;
    padding:.55rem;
    border:1px solid rgba(255,255,255,.13);
    border-radius:18px;
    background:rgba(13,18,28,.96);
    box-shadow:0 22px 52px rgba(0,0,0,.38), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter:blur(14px);
}

body.locations-page .navbar .dropdown-item{
    display:flex;
    align-items:center;
    min-height:2.7rem;
    padding:.72rem .95rem;
    border-radius:13px;
    color:rgba(255,255,255,.84);
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    font-size:.9rem;
    font-weight:600;
    letter-spacing:.005em;
    line-height:1.2;
    transition:background-color .18s ease, color .18s ease, transform .18s ease;
}

body.locations-page .navbar .dropdown-item:hover,
body.locations-page .navbar .dropdown-item:focus,
body.locations-page .navbar .dropdown-item.active{
    color:#fff;
    background:linear-gradient(135deg, rgba(246,196,107,.22), rgba(234,122,26,.20));
    transform:translateX(2px);
}

body.locations-page .navbar .dropdown-divider{
    border-color:rgba(255,255,255,.10);
    margin:.35rem .55rem;
}

body.locations-page .dropdown-toggle::after{
    vertical-align:.12em;
    margin-left:.38rem;
    opacity:.85;
}

body.locations-page .locations-section,
body.locations-page .location-detail-hero{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 18% 8%, rgba(255,226,173,.16), transparent 28%),
        radial-gradient(circle at 85% 15%, rgba(255,255,255,.09), transparent 22%),
        linear-gradient(135deg, #3f2e2c 0%, #7d574c 38%, #b57d47 72%, #bc6c25 100%);
}

body.locations-page .locations-section::before,
body.locations-page .location-detail-hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.03));
    pointer-events:none;
}

body.locations-page .locations-section .container,
body.locations-page .location-detail-hero .container{
    position:relative;
    z-index:1;
}

body.locations-page .locations-section em,
body.locations-page .location-detail-hero .location-city{
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

body.locations-page .locations-section h1,
body.locations-page .location-detail-hero h1{
    font-weight:700;
    letter-spacing:.025em;
    line-height:.98;
    text-shadow:0 14px 34px rgba(0,0,0,.34);
}

body.locations-page .locations-section h1{
    font-size:clamp(2.45rem, 5vw, 4rem);
}

body.locations-page .locations-section p,
body.locations-page .location-detail-hero p{
    font-size:clamp(.96rem, 1.15vw, 1.05rem);
    line-height:1.8;
}

body.locations-page .location-detail-hero .location-city{
    margin-bottom:.75rem;
}

body.locations-page .location-detail-hero h1{
    font-size:clamp(2rem, 4vw, 2.75rem);
}

body.locations-page .location-detail-hero .lead{
    font-size:1.05rem;
    opacity:.92;
}

body.locations-page .location-card{
    position:relative;
    overflow:hidden;
    height:100%;
    padding:2rem 1.85rem;
    border-radius:26px;
    background:linear-gradient(145deg, rgba(15,23,42,.60), rgba(15,23,42,.30));
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 24px 60px rgba(2,6,23,.28), inset 0 1px 0 rgba(255,255,255,.10);
    backdrop-filter:blur(10px);
    transition:border-color .2s ease, transform .2s ease;
}

body.locations-page .location-card::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at top right, rgba(246,196,107,.18), transparent 35%);
    pointer-events:none;
}

body.locations-page .location-card > *{
    position:relative;
    z-index:1;
}

body.locations-page .location-card:hover{
    border-color:rgba(246,196,107,.48);
    transform:translateY(-4px);
}

body.locations-page .location-card-branch{
    background:linear-gradient(145deg, rgba(15,23,42,.68), rgba(188,108,37,.32));
}

body.locations-page .location-card-header{
    margin-bottom:1.15rem;
    padding-bottom:1rem;
    border-bottom:1px solid rgba(255,255,255,.14);
}

body.locations-page .location-city{
    display:inline-block;
    padding:.28rem .75rem;
    border:1px solid rgba(246,196,107,.28);
    border-radius:999px;
    background:rgba(246,196,107,.14);
    color:#ffe0a3;
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
}

body.locations-page .location-name{
    margin-top:.45rem;
    color:#fff;
    font-size:clamp(1.75rem, 2.5vw, 2.25rem);
    font-weight:700;
    letter-spacing:.02em;
}

body.locations-page .location-tagline{
    color:rgba(255,255,255,.70) !important;
    font-size:.93rem;
    line-height:1.7;
}

body.locations-page .location-details{
    list-style:none;
    display:grid;
    row-gap:.7rem;
    padding:0;
    margin:0 0 1.35rem;
}

body.locations-page .location-details li{
    display:flex;
    align-items:flex-start;
    gap:.7rem;
    margin:0;
    color:rgba(255,255,255,.90);
    font-size:.94rem;
    line-height:1.65;
}

body.locations-page .location-details .bi{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:1.55rem;
    height:1.55rem;
    margin-top:.03rem;
    border-radius:999px;
    background:rgba(246,196,107,.13);
    color:#ffd88b;
    font-size:.88rem;
}

body.locations-page .location-details a{
    color:#fff;
    font-weight:600;
    text-decoration:none;
}

body.locations-page .location-details a:hover{
    color:#ffd88b;
    text-decoration:none;
}

body.locations-page .location-details-note .bi{
    color:#ffd88b;
}

body.locations-page .location-card .btn,
body.locations-page .location-detail-hero .btn{
    border-radius:999px;
    font-weight:800;
    letter-spacing:.01em;
    box-shadow:0 12px 26px rgba(0,0,0,.18);
}

body.locations-page .location-detail-map{
    background-color:var(--section-bg-color, #b78752);
}

body.locations-page .location-detail-map h3{
    font-family:'Cormorant Garamond', Georgia, serif;
    font-size:clamp(2rem, 4vw, 3rem);
    font-weight:700;
    letter-spacing:.025em;
}

body.locations-page .location-map-frame{
    border-radius:26px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 24px 60px rgba(2,6,23,.30);
}

body.locations-page .footer-location-block,
body.locations-page .footer-hours-block{
    padding:.2rem 0;
}

body.locations-page .footer-location-block strong,
body.locations-page .footer-hours-block strong{
    font-family:'Plus Jakarta Sans', Arial, sans-serif;
    letter-spacing:.02em;
}

body.locations-page .footer-location-block p,
body.locations-page .footer-location-block a,
body.locations-page .footer-hours-block li{
    font-size:.9rem;
    line-height:1.65;
}

@media (min-width: 992px){
    body.locations-page .navbar .dropdown:hover > .dropdown-menu{
        display:block;
    }
}

@media (max-width: 991.98px){
    body.locations-page .navbar .dropdown-menu{
        margin-top:.3rem;
        background:rgba(13,18,28,.72);
        box-shadow:none;
    }

    body.locations-page .location-card{
        padding:1.55rem 1.35rem;
        border-radius:22px;
    }
}

@media (max-width: 575.98px){
    body.locations-page .locations-section,
    body.locations-page .location-detail-hero{
        padding-top:145px !important;
    }

    body.locations-page .locations-section h1{
        font-size:2.4rem;
    }

    body.locations-page .location-details li{
        font-size:.9rem;
    }
}
