.rfl-contact{
    background:var(--rfl-paper);
    padding:140px 0 120px;
}

.rfl-contact__head{
    max-width:1100px;
    margin-bottom:80px;
}
.rfl-contact__head-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    flex-wrap:wrap;
    gap:20px;
    margin-bottom:30px;
}
.rfl-contact__today{
    display:inline-flex;
    align-items:center;
    gap:12px;
    padding:10px 20px;
    border-radius:999px;
    background:#fff;
    border:1px solid var(--rfl-line);
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--rfl-ink);
}
.rfl-contact__today-dot{
    width:9px;height:9px;
    border-radius:50%;
    background:#3aa663;
    box-shadow:0 0 0 0 rgba(58,166,99,.5);
    animation:rflPulseDot 1.8s ease-out infinite;
}
.rfl-contact__today.is-closed .rfl-contact__today-dot{
    background:#b14b4b;
    animation:none;
}
@keyframes rflPulseDot{
    0%{box-shadow:0 0 0 0 rgba(58,166,99,.55);}
    70%{box-shadow:0 0 0 12px rgba(58,166,99,0);}
    100%{box-shadow:0 0 0 0 rgba(58,166,99,0);}
}
.rfl-contact__title{
    margin-top:0;
}
.rfl-contact__title em{
    font-style:italic;
    color:var(--rfl-gold);
}

.rfl-contact__grid{
    display:grid;
    grid-template-columns:.85fr 1.15fr;
    gap:60px;
    align-items:stretch;
}

.rfl-contact__panel{
    background:#fff;
    border-radius:var(--rfl-radius-l);
    padding:50px 46px;
    box-shadow:0 30px 60px -40px rgba(0,0,0,.18);
    display:flex;
    flex-direction:column;
    gap:38px;
}
.rfl-contact__block{
    border-bottom:1px solid var(--rfl-line);
    padding-bottom:30px;
}
.rfl-contact__block:last-child{border-bottom:none;padding-bottom:0;}
.rfl-contact__block-title{
    font-family:var(--rfl-sans);
    font-size:11px;
    letter-spacing:.3em;
    text-transform:uppercase;
    color:var(--rfl-gold);
    font-weight:600;
    margin:0 0 14px;
}
.rfl-contact__block p{
    margin:0;
    font-family:var(--rfl-serif);
    font-size:22px;
    line-height:1.55;
    color:var(--rfl-ink);
    font-weight:400;
}
.rfl-contact__block a{
    color:var(--rfl-ink);
    text-decoration:none;
    border-bottom:1px solid transparent;
    transition:border-color .35s var(--rfl-ease),color .35s var(--rfl-ease);
}
.rfl-contact__block a:hover{color:var(--rfl-gold);border-color:var(--rfl-gold);}
.rfl-contact__muted{
    font-size:14px;
    color:var(--rfl-ink-60);
    font-family:var(--rfl-sans);
}
.rfl-contact__link{
    display:inline-flex;
    gap:10px;
    margin-top:14px;
    font-family:var(--rfl-sans);
    font-size:12px;
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--rfl-gold) !important;
    border-bottom:none !important;
}
.rfl-contact__link span{transition:transform .4s var(--rfl-ease);display:inline-block;}
.rfl-contact__link:hover span{transform:translateX(5px);}

.rfl-contact__hours{
    list-style:none;
    margin:0;padding:0;
}
.rfl-contact__hour{
    display:flex;
    justify-content:space-between;
    padding:10px 0;
    border-bottom:1px dashed rgba(0,0,0,.08);
    font-family:var(--rfl-sans);
    font-size:14px;
    color:var(--rfl-ink);
}
.rfl-contact__hour:last-child{border-bottom:none;}
.rfl-contact__hour span:first-child{
    font-weight:500;
}
.rfl-contact__hour span:last-child{
    color:var(--rfl-ink-60);
    font-variant-numeric:tabular-nums;
}
.rfl-contact__hour.is-closed span:last-child{
    color:#b14b4b;
    font-weight:500;
}
.rfl-contact__hour.is-today{
    background:rgba(200,163,90,.08);
    margin:0 -16px;
    padding-inline:16px;
    border-radius:8px;
    border-bottom-color:transparent;
}
.rfl-contact__hour.is-today span:first-child{color:var(--rfl-gold);font-weight:600;}

.rfl-contact__block--social{
    display:flex;
    gap:14px;
}
.rfl-contact__social{
    width:48px;height:48px;
    border-radius:50%;
    border:1px solid var(--rfl-line);
    color:var(--rfl-ink);
    display:grid;
    place-items:center;
    text-decoration:none;
    transition:all .4s var(--rfl-ease);
}
.rfl-contact__social svg{width:20px;height:20px;}
.rfl-contact__social:hover{
    background:var(--rfl-gold);
    color:#fff;
    border-color:var(--rfl-gold);
    transform:translateY(-3px);
}

.rfl-contact__map{
    position:relative;
    border-radius:var(--rfl-radius-l);
    overflow:hidden;
    background:#1c1c1c;
    min-height:560px;
    box-shadow:0 30px 60px -40px rgba(0,0,0,.4);
}
.rfl-contact__map-frame{
    position:absolute;
    inset:0;
    overflow:hidden;
    filter:grayscale(.6) contrast(1.05);
}
.rfl-contact__map-frame iframe{
    position:absolute;
    inset:-2%;
    width:104%;
    height:104%;
    border:0;
    pointer-events:auto;
}

.rfl-contact__map-pin{
    position:absolute;
    top:50%;left:50%;
    width:60px;height:60px;
    transform:translate(-50%,-100%);
    pointer-events:none;
    color:var(--rfl-gold);
}
.rfl-contact__pin-core{
    position:relative;
    z-index:2;
    display:grid;
    place-items:center;
    width:60px;height:60px;
    color:var(--rfl-gold);
    filter:drop-shadow(0 8px 14px rgba(0,0,0,.4));
    animation:rflPinDrop .9s var(--rfl-ease) both;
}
.rfl-contact__pin-core svg{width:60px;height:60px;}
.rfl-contact__pin-pulse{
    position:absolute;
    bottom:-6px;left:50%;
    width:18px;height:18px;
    background:var(--rfl-gold);
    border-radius:50%;
    transform:translateX(-50%);
    box-shadow:0 0 0 0 rgba(200,163,90,.55);
    animation:rflPinPulse 2s var(--rfl-ease) infinite;
}
@keyframes rflPinDrop{
    0%{transform:translateY(-30px);opacity:0;}
    100%{transform:translateY(0);opacity:1;}
}
@keyframes rflPinPulse{
    0%{box-shadow:0 0 0 0 rgba(200,163,90,.55);}
    70%{box-shadow:0 0 0 26px rgba(200,163,90,0);}
    100%{box-shadow:0 0 0 0 rgba(200,163,90,0);}
}

.rfl-contact__map-card{
    position:absolute;
    bottom:24px;left:24px;
    background:rgba(17,17,17,.92);
    color:#fff;
    padding:22px 26px;
    border-radius:var(--rfl-radius-m);
    backdrop-filter:blur(10px);
    display:flex;
    flex-direction:column;
    gap:6px;
    max-width:320px;
}
.rfl-contact__map-label{
    font-family:var(--rfl-serif);
    font-size:22px;
    font-weight:500;
}
.rfl-contact__map-coords{
    font-size:11px;
    letter-spacing:.22em;
    color:rgba(255,255,255,.55);
    text-transform:uppercase;
}
.rfl-contact__map-cta{
    margin-top:10px;
    font-size:12px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--rfl-gold);
    text-decoration:none;
    transition:color .35s var(--rfl-ease);
}
.rfl-contact__map-cta:hover{color:#fff;}

@media (max-width:1100px){
    .rfl-contact{padding:100px 0;}
    .rfl-contact__grid{grid-template-columns:1fr;gap:40px;}
    .rfl-contact__map{min-height:440px;}
}
@media (max-width:560px){
    .rfl-contact__panel{padding:36px 28px;}
    .rfl-contact__block p{font-size:18px;}
    .rfl-contact__map-card{left:14px;right:14px;bottom:14px;max-width:none;}
}
