/* RF BEACH DETAIL V2 */

.rf-beach{
    max-width:1240px;
    margin:28px auto 60px;
    padding:0 18px;
}

.rf-beach-card{
    margin-top:18px;
    padding:28px 30px;
    border:1px solid rgba(255,255,255,.10);
    border-radius:22px;
    background:#111213;
    box-shadow:0 14px 36px rgba(0,0,0,.18);
}

.rf-beach-card h2{
    margin:0 0 22px;
    color:#fff;
    font-size:25px;
    line-height:1.2;
    font-weight:800;
}

/* HERO */

.rf-beach-hero{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);
    gap:30px;
    margin-top:0;
}

.rf-beach-hero__media{
    min-height:420px;
    overflow:hidden;
    border-radius:16px;
    background:#191a1b;
}

.rf-beach-hero__image{
    display:block;
    width:100%;
    height:100%;
    min-height:420px;
    object-fit:cover;
}

.rf-beach-hero__content{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.rf-beach-crumbs{
    margin-bottom:9px;
    color:#969b9e;
    font-size:13px;
}

.rf-beach-hero h1{
    margin:0 0 10px;
    color:#fff;
    font-size:40px;
    line-height:1.08;
    font-weight:850;
}

.rf-beach-location{
    margin-bottom:22px;
    color:#d9dcdd;
    font-size:15px;
}

.rf-beach-intro{
    color:#d5d8da;
    font-size:16px;
    line-height:1.65;
}

.rf-beach-quick{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
    margin-top:auto;
    padding-top:26px;
}

.rf-beach-quick span,
.rf-beach-details__grid span{
    display:block;
    margin-bottom:7px;
    color:#91aaa5;
    font-size:13px;
}

.rf-beach-quick strong,
.rf-beach-details__grid strong{
    display:block;
    color:#fff;
    font-size:15px;
    line-height:1.45;
    font-weight:500;
}

.rf-beach-actions{
    display:flex;
    gap:12px;
    margin-top:25px;
}

.rf-beach-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 22px;
    border:1px solid #e75d00;
    border-radius:10px;
    background:transparent;
    color:#ff6c0a;
    font-size:14px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.rf-beach-btn--primary{
    background:#f86900;
    color:#fff;
}

/* ABOUT */

.rf-beach-prose{
    max-width:970px;
    color:#d8dada;
    font-size:16px;
    line-height:1.75;
}

/* DETAILS + MAP */

.rf-beach-two-col{
    display:grid;
    grid-template-columns:1.12fr .88fr;
    gap:18px;
}

.rf-beach-details__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:42px;
}

.rf-beach-details__grid > div{
    min-height:88px;
    padding:17px 0;
    border-bottom:1px solid rgba(255,255,255,.10);
}

.rf-beach-details__wide{
    grid-column:1 / -1;
}

.rf-beach-map__canvas{
    min-height:310px;
    border-radius:15px;
    background:
        linear-gradient(135deg,rgba(122,196,205,.25),rgba(146,207,177,.12)),
        #1a2425;
}

.rf-beach-map__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-top:18px;
}

.rf-beach-map__footer strong,
.rf-beach-map__footer span{
    display:block;
}

.rf-beach-map__footer span{
    margin-top:5px;
    color:#8e999c;
    font-size:13px;
}

/* DIRECTIONS */

.rf-beach-directions{
    line-height:1.7;
}

/* SUNSEEKERS */

.rf-beach-sunseekers{
    border-color:rgba(248,105,0,.45);
}

.rf-beach-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px;
}

.rf-beach-section-head h2{
    margin:0;
}

.rf-beach-section-head > a{
    color:#ff6b08;
    font-weight:800;
    text-decoration:none;
}

.rf-beach-sunseekers-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.rf-beach-sunseeker{
    display:grid;
    grid-template-columns:205px minmax(0,1fr);
    min-height:250px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.09);
    border-radius:16px;
    background:#17191a;
    transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

.rf-beach-sunseeker:hover{
    transform:translateY(-3px);
    border-color:rgba(248,105,0,.60);
    background:#1b1d1e;
}

.rf-beach-sunseeker__image-link{
    display:block;
    min-height:250px;
    overflow:hidden;
}

.rf-beach-sunseeker__image{
    display:block;
    width:100%;
    height:100%;
    min-height:250px;
    object-fit:cover;
    object-position:center top;
}

.rf-beach-sunseeker__body{
    display:flex;
    flex-direction:column;
    padding:22px;
}

.rf-beach-sunseeker__name{
    margin:0 0 8px;
    color:#fff;
    font-size:25px;
    font-weight:800;
}

.rf-beach-sunseeker__meta{
    color:#9da5a7;
    font-size:13px;
}

.rf-beach-sunseeker__intent{
    margin-top:22px;
    color:#ef6b8b;
    font-size:14px;
    font-weight:800;
}

.rf-beach-sunseeker__cta{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    margin-top:auto;
    padding:0 18px;
    border-radius:10px;
    background:#f86900;
    color:#fff !important;
    font-size:15px;
    font-weight:850;
    text-decoration:none !important;
}

.rf-beach-sunseeker__cta:hover{
    background:#ff761b;
}

/* COMMUNITY */

.rf-beach-community__top{
    margin-bottom:18px;
}

.rf-beach-community-featured{
    padding:22px;
    border:1px solid rgba(125,201,178,.22);
    border-radius:16px;
    background:#151819;
}

/* RELATED */

.rf-beach-related{
    margin-bottom:0;
}

/* MOBILE */

@media screen and (max-width:900px){
    .rf-beach-hero,
    .rf-beach-two-col{
        grid-template-columns:1fr;
    }

    .rf-beach-sunseeker{
        grid-template-columns:160px minmax(0,1fr);
    }
}

@media screen and (max-width:700px){
    .rf-beach{
        padding:0 10px;
    }

    .rf-beach-card{
        padding:20px 18px;
        border-radius:17px;
    }

    .rf-beach-hero h1{
        font-size:30px;
    }

    .rf-beach-hero__media,
    .rf-beach-hero__image{
        min-height:280px;
    }

    .rf-beach-quick{
        grid-template-columns:1fr 1fr;
    }

    .rf-beach-details__grid{
        grid-template-columns:1fr;
    }

    .rf-beach-details__wide{
        grid-column:auto;
    }

    .rf-beach-sunseekers-grid{
        grid-template-columns:1fr;
    }

    .rf-beach-sunseeker{
        grid-template-columns:135px minmax(0,1fr);
        min-height:205px;
    }

    .rf-beach-sunseeker__image,
    .rf-beach-sunseeker__image-link{
        min-height:205px;
    }

    .rf-beach-section-head,
    .rf-beach-map__footer{
        align-items:flex-start;
        flex-direction:column;
    }
}


/* =========================================================
   RF BEACH V2 — SECONDARY CONTENT
   ========================================================= */

.rf-beach-secondary{
    margin-top:0;
}

.rf-beach-section-kicker{
    margin-bottom:7px;
    color:#87aaa5;
    font-size:11px;
    line-height:1;
    font-weight:900;
    letter-spacing:.13em;
}

.rf-beach-section-head p{
    max-width:650px;
    margin:8px 0 0;
    color:#92999c;
    font-size:14px;
    line-height:1.55;
}

.rf-beach-sunseekers{
    padding:32px;
    border-color:rgba(248,105,0,.32);
    background:
        linear-gradient(
            135deg,
            rgba(248,105,0,.055),
            transparent 45%
        ),
        #111213;
}

.rf-beach-sunseeker__eyebrow{
    margin-bottom:7px;
    color:#8da6a1;
    font-size:10px;
    line-height:1;
    font-weight:900;
    letter-spacing:.12em;
}

.rf-beach-sunseeker__name a{
    color:#fff;
    text-decoration:none;
}

.rf-beach-sunseeker__name a:hover{
    color:#ff7218;
}


/* FEATURED COMMENT */

.rf-beach-featured-comment{
    position:relative;
    padding:25px 27px;
    border:1px solid rgba(116,181,165,.27);
    border-radius:17px;
    background:#16191a;
}

.rf-beach-featured-comment__badge{
    display:inline-flex;
    margin-bottom:19px;
    padding:7px 10px;
    border-radius:7px;
    background:rgba(104,172,157,.11);
    color:#8db6ab;
    font-size:10px;
    font-weight:900;
    letter-spacing:.11em;
}

.rf-beach-featured-comment__head{
    display:flex;
    align-items:center;
    gap:13px;
}

.rf-beach-featured-comment__avatar{
    width:52px;
    height:52px;
    overflow:hidden;
    flex:0 0 52px;
    border-radius:50%;
    background:#232627;
}

.rf-beach-featured-comment__avatar img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.rf-beach-featured-comment__head strong{
    display:block;
    color:#fff;
    font-size:15px;
}

.rf-beach-featured-comment__head span{
    display:block;
    margin-top:4px;
    color:#848c8f;
    font-size:12px;
}

.rf-beach-featured-comment__text{
    max-width:900px;
    margin-top:18px;
    color:#d7d9da;
    font-size:16px;
    line-height:1.68;
}

.rf-beach-featured-comment__rating{
    margin-top:16px;
    color:#87aaa5;
    font-size:12px;
    font-weight:800;
}


/* EXISTING KVS COMMENTS INSIDE BEACH CARD */

.rf-beach-community__comments{
    margin-top:25px;
    padding-top:24px;
    border-top:1px solid rgba(255,255,255,.08);
}

.rf-beach-comments > .container,
.rf-beach-community .post-comments-box{
    width:auto !important;
    max-width:none !important;
    margin:0 !important;
}

.rf-beach-comments > .container{
    padding:0 !important;
}

.rf-beach-community .post-comments-box{
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
}

.rf-beach-community .comments__item{
    padding:18px 0;
    border-bottom:1px solid rgba(255,255,255,.07);
}


/* RELATED KVS LIST INSIDE BEACH CARD */

.rf-beach-related > .container,
.rf-beach-related .container{
    width:auto;
    max-width:none;
    padding-left:0;
    padding-right:0;
}


/* MAP */

.rf-beach-map__canvas{
    position:relative;
    overflow:hidden;
}

.rf-beach-map__canvas iframe{
    display:block;
    width:100%;
    height:310px;
    border:0;
}


/* MOBILE */

@media screen and (max-width:700px){

    .rf-beach-sunseekers{
        padding:20px 18px;
    }

    .rf-beach-featured-comment{
        padding:20px;
    }

}

/* =========================================================
   RF BEACH SAFE VISUAL PATCH V1
   ========================================================= */

/* common card language */

.rf-beach-card,
.rf-beach-secondary .rf-beach-card {
    background:#111213;
    border:1px solid #2b2d2f;
    border-radius:28px;
    box-shadow:none;
}

.rf-beach-card h2,
.rf-beach-card-title {
    color:#fff;
    font-weight:800;
}

.rf-beach-heading-symbol {
    display:inline-block;
    width:28px;
    margin-right:7px;
    color:#91aaa5;
    font-size:29px;
    font-weight:400;
    line-height:1;
    vertical-align:-1px;
}


/* BEACH DETAILS */

.rf-beach-details {
    padding:38px 40px;
}

.rf-beach-details .rf-beach-card-title {
    margin:0 0 26px;
    font-size:28px;
}

.rf-beach-details__grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:54px;
}

.rf-beach-detail-item {
    display:grid;
    grid-template-columns:27px minmax(0,1fr);
    gap:14px;
    align-items:start;
    min-height:122px;
    padding:20px 0 22px;
    border-bottom:1px solid #2b2d2f;
}

.rf-beach-detail-icon {
    position:relative;
    display:block;
    width:24px;
    height:24px;
    margin-top:2px;
    color:#91aaa5;
    font-size:23px;
    line-height:24px;
    text-align:center;
    overflow:hidden;
}

.rf-beach-detail-icon:before {
    display:block;
    width:24px;
    height:24px;
    line-height:24px;
    font-weight:400;
}


/* constrained line-like glyphs */

.rf-icon-country:before {
    content:"⊕";
    font-size:25px;
}

.rf-icon-region:before {
    content:"⌖";
    font-size:25px;
}

.rf-icon-status:before {
    content:"◇";
    font-size:29px;
}

.rf-icon-surface:before {
    content:"≋";
    font-size:28px;
}

.rf-icon-crowd:before {
    content:"♙";
    font-size:25px;
}

.rf-icon-facilities:before {
    content:"⚑";
    font-size:22px;
}

.rf-icon-season:before {
    content:"☼";
    font-size:26px;
}


.rf-beach-detail-label {
    display:block;
    margin:0 0 14px;
    color:#aab9b6;
    font-size:16px;
    font-weight:400;
}

.rf-beach-detail-item strong {
    display:block;
    color:#fff;
    font-size:20px;
    line-height:1.45;
    font-weight:500;
}


/* MONTH LINE */

.rf-beach-detail-season {
    grid-column:1 / -1;
    grid-template-columns:27px 350px minmax(0,1fr);
    align-items:end;
    min-height:123px;
}

.rf-beach-season-copy {
    align-self:center;
}

.rf-beach-months {
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    gap:5px;
    align-self:end;
    padding-bottom:1px;
}

.rf-beach-months span {
    display:flex;
    height:48px;
    align-items:center;
    justify-content:center;
    border-bottom:3px solid #353a39;
    color:#d0e4df;
    font-size:13px;
    font-weight:500;
}

.rf-beach-months span.is-active {
    background:rgba(111,156,145,.17);
    border-bottom-color:#a2c5bc;
    color:#e1fff8;
}


/* SAME LANGUAGE FOR OTHER BEACH CARDS */

.rf-beach-about,
.rf-beach-directions,
.rf-beach-map,
.rf-beach-sunseekers,
.rf-beach-community,
.rf-beach-related {
    border-color:#2b2d2f;
    background:#111213;
}

.rf-beach-sunseekers {
    border-color:#2b2d2f !important;
    background:#111213 !important;
}


/* responsive */

@media screen and (max-width:1000px) {
    .rf-beach-detail-season {
        grid-template-columns:27px minmax(0,1fr);
    }

    .rf-beach-months {
        grid-column:1 / -1;
        margin-top:12px;
    }
}

@media screen and (max-width:700px) {
    .rf-beach-details {
        padding:24px 20px;
    }

    .rf-beach-details__grid {
        grid-template-columns:1fr;
    }

    .rf-beach-detail-season {
        grid-column:auto;
    }

    .rf-beach-detail-item {
        min-height:96px;
    }

    .rf-beach-months {
        gap:2px;
    }

    .rf-beach-months span {
        height:39px;
        font-size:10px;
    }
}


/* =========================================================
   RUDEFLY BEACH STRICT DIRECTORY DESIGN V1
   ========================================================= */


/* ---------- PAGE RHYTHM ---------- */

.rf-beach {
    --rf-bg:#0d0e0f;
    --rf-card:#121314;
    --rf-card-2:#151617;
    --rf-border:#292c2f;
    --rf-border-soft:#222527;

    --rf-text:#f2f4f4;
    --rf-muted:#90999d;
    --rf-meta:#91aaa5;

    --rf-action:#f36b21;

    --rf-radius:16px;
    --rf-radius-small:10px;
}

.rf-beach,
.rf-beach-secondary {
    color:var(--rf-text);
}

.rf-beach-card,
.rf-beach-secondary .rf-beach-card {
    background:var(--rf-card) !important;
    border:1px solid var(--rf-border) !important;
    border-radius:var(--rf-radius) !important;
    box-shadow:none !important;
}

.rf-beach-card {
    margin-bottom:22px;
}


/* ---------- HEADINGS ---------- */

.rf-beach-heading-symbol {
    display:none !important;
}

.rf-beach-card-title,
.rf-beach-card h2 {
    margin-top:0;
    color:var(--rf-text);
    font-size:27px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:-0.02em;
}

.rf-beach-card h3 {
    color:var(--rf-text);
    font-weight:650;
}

.rf-beach-card p {
    color:#d1d5d6;
    line-height:1.72;
}

.rf-beach-card-title::after {
    content:"";
    display:block;
    width:42px;
    height:2px;
    margin-top:15px;
    background:#718f89;
}


/* ---------- ABOUT ---------- */

.rf-beach-about {
    padding:32px 34px !important;
}

.rf-beach-about p,
.rf-beach-about .text,
.rf-beach-about [class*="description"] {
    max-width:1100px;
    font-size:17px;
}


/* =========================================================
   SUNSEEKERS — HIGH INTERNAL NAVIGATION BLOCK
   ========================================================= */

.rf-beach-sunseekers {
    position:relative;
    margin:22px 0 !important;
    padding:30px 32px !important;

    background:var(--rf-card) !important;
    border:1px solid var(--rf-border) !important;
    border-radius:var(--rf-radius) !important;

    box-shadow:none !important;
}

.rf-beach-sunseekers::before {
    content:"RUDEFLY";
    display:block;
    margin-bottom:7px;

    color:var(--rf-meta);
    font-size:11px;
    font-weight:700;
    letter-spacing:.14em;
}

.rf-beach-sunseekers h2 {
    margin-bottom:8px !important;
    font-size:26px !important;
}

.rf-beach-sunseekers img {
    border-radius:var(--rf-radius-small) !important;
}

.rf-beach-sunseekers a {
    text-decoration:none;
}

.rf-beach-sunseekers a:hover {
    text-decoration:none;
}

.rf-beach-sunseekers [class*="card"] {
    border-color:var(--rf-border) !important;
    border-radius:12px !important;
    box-shadow:none !important;
}


/* =========================================================
   DETAILS
   ========================================================= */

.rf-beach-details {
    padding:32px 34px !important;
}

.rf-beach-details__grid {
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    column-gap:48px !important;
}

.rf-beach-detail-item {
    display:grid !important;
    grid-template-columns:25px minmax(0,1fr) !important;
    gap:13px !important;

    min-height:100px !important;
    padding:18px 0 !important;

    border-bottom:1px solid var(--rf-border-soft) !important;
}

.rf-beach-detail-label {
    margin-bottom:8px !important;

    color:var(--rf-meta) !important;
    font-size:13px !important;
    line-height:1.3;
    font-weight:500 !important;

    text-transform:uppercase;
    letter-spacing:.045em;
}

.rf-beach-detail-item strong {
    color:var(--rf-text) !important;
    font-size:17px !important;
    line-height:1.45 !important;
    font-weight:550 !important;
}


/* strict constrained icons */

.rf-beach-detail-icon {
    position:relative !important;

    display:block !important;

    width:22px !important;
    height:22px !important;

    min-width:22px !important;
    max-width:22px !important;
    min-height:22px !important;
    max-height:22px !important;

    margin-top:1px !important;

    overflow:hidden !important;

    color:#79938d !important;

    font-size:20px !important;
    line-height:22px !important;
    text-align:center !important;
}


/* ---------- BEST SEASON ---------- */

.rf-beach-detail-season {
    grid-column:1 / -1 !important;

    display:grid !important;

    grid-template-columns:
        25px
        minmax(190px,260px)
        minmax(0,1fr) !important;

    gap:13px !important;

    align-items:center !important;

    min-height:108px !important;
}

.rf-beach-season-copy {
    align-self:center !important;
}

.rf-beach-months {
    display:grid !important;
    grid-template-columns:repeat(12,minmax(0,1fr)) !important;

    gap:4px !important;

    width:100% !important;
    margin:0 !important;
    padding:0 !important;

    align-self:center !important;
}

.rf-beach-months span {
    display:flex !important;

    align-items:center !important;
    justify-content:center !important;

    width:auto !important;
    height:38px !important;

    margin:0 !important;
    padding:0 !important;

    background:transparent !important;

    border:0 !important;
    border-bottom:2px solid #34393a !important;

    color:#778486 !important;

    font-size:11px !important;
    line-height:1 !important;
    font-weight:600 !important;
}

.rf-beach-months span.is-active {
    background:#192321 !important;
    border-bottom-color:#829f98 !important;
    color:#dce9e6 !important;
}


/* =========================================================
   MAP
   ========================================================= */

.rf-beach-map {
    padding:32px 34px !important;
}

.rf-beach-map iframe,
.rf-beach-map img,
.rf-beach-map .map {
    border-radius:10px !important;
}

.rf-beach-map a,
.rf-beach-map button {
    border-radius:9px !important;
}


/* =========================================================
   DIRECTIONS
   ========================================================= */

.rf-beach-directions {
    padding:32px 34px !important;
}

.rf-beach-directions p {
    max-width:1150px;
}


/* =========================================================
   COMMUNITY
   ========================================================= */

.rf-beach-community {
    padding:32px 34px !important;
}

.rf-beach-featured-comment {
    padding:24px !important;

    background:#151718 !important;
    border:1px solid var(--rf-border) !important;
    border-radius:12px !important;
}

.rf-beach-featured-comment__badge {
    margin-bottom:18px;

    color:var(--rf-meta) !important;

    font-size:11px !important;
    font-weight:700 !important;

    letter-spacing:.09em;
    text-transform:uppercase;
}


/* =========================================================
   RELATED / NEARBY BEACHES
   ========================================================= */

.rf-beach-related {
    padding:32px 34px !important;
}

.rf-beach-related [class*="card"] {
    border-radius:12px !important;
    box-shadow:none !important;
}


/* =========================================================
   CTA
   Orange only for actions
   ========================================================= */

.rf-beach a[class*="button"],
.rf-beach a[class*="btn"],
.rf-beach button[class*="button"],
.rf-beach button[class*="btn"],
.rf-beach .rf-beach-cta {
    border-radius:9px !important;
}

.rf-beach a[class*="button"]:hover,
.rf-beach a[class*="btn"]:hover,
.rf-beach button:hover {
    transform:none !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width:900px) {

    .rf-beach-details__grid {
        grid-template-columns:1fr !important;
    }

    .rf-beach-detail-season {
        grid-column:auto !important;

        grid-template-columns:
            25px
            minmax(0,1fr) !important;
    }

    .rf-beach-months {
        grid-column:1 / -1 !important;
        margin-top:12px !important;
    }

}


@media screen and (max-width:600px) {

    .rf-beach-card,
    .rf-beach-sunseekers {
        border-radius:12px !important;
    }

    .rf-beach-about,
    .rf-beach-details,
    .rf-beach-map,
    .rf-beach-directions,
    .rf-beach-community,
    .rf-beach-related,
    .rf-beach-sunseekers {
        padding:22px 20px !important;
    }

    .rf-beach-card-title,
    .rf-beach-card h2,
    .rf-beach-sunseekers h2 {
        font-size:23px !important;
    }

    .rf-beach-months {
        gap:2px !important;
    }

    .rf-beach-months span {
        height:32px !important;
        font-size:9px !important;
    }

}


/* =========================================================
   RF STRICT SUNSEEKERS V2
   ========================================================= */

#rf-beach-sunseekers-slot {
    display:none;
}

.rf-beach-sunseekers {
    margin:22px 0 !important;
    padding:30px 34px !important;
}

.rf-beach-sunseekers-label {
    margin-bottom:7px;

    color:#819b95;

    font-size:11px;
    line-height:1;
    font-weight:700;

    text-transform:uppercase;
    letter-spacing:.13em;
}

.rf-beach-sunseekers .rf-beach-section-head {
    margin-bottom:22px;
}

.rf-beach-sunseekers .rf-beach-section-head h2 {
    margin:0 0 7px !important;

    color:#f2f4f4;

    font-size:25px !important;
    line-height:1.25;
    font-weight:700;
}

.rf-beach-sunseekers .rf-beach-section-head p {
    margin:0 !important;

    color:#929a9d;

    font-size:14px;
    line-height:1.5;
}


/* No decorative underline on Sunseekers heading */
.rf-beach-sunseekers h2::after {
    display:none !important;
}


/* Remove remaining playful heading decoration */
.rf-beach-about .rf-beach-card-title::before,
.rf-beach-map .rf-beach-card-title::before {
    display:none !important;
}


/* RF SUNSEEKERS POSITION V3 */

#rf-beach-sunseekers-block {
    grid-column:1 / -1 !important;
    width:100% !important;
    box-sizing:border-box !important;
    margin-top:22px !important;
    margin-bottom:22px !important;
}

/* More compact / marketing-oriented heading */
.rf-beach-sunseekers .rf-beach-section-head {
    margin-bottom:20px !important;
}

.rf-beach-sunseekers .rf-beach-section-head h2 {
    margin:0 0 6px !important;
    font-size:26px !important;
    line-height:1.2 !important;
}

.rf-beach-sunseekers .rf-beach-section-head p {
    margin:0 !important;
    color:#a5abad !important;
    font-size:14px !important;
    line-height:1.45 !important;
}



/* =========================================================
   RF BEACH HERO INTERACTIVE V1
   ========================================================= */


/* ---------- MINI SUNSEEKERS ---------- */

.rf-beach-hero-sunseekers {
    display:flex;
    align-items:center;
    gap:16px;

    margin:0 0 18px;
    padding:15px 0;

    border-top:1px solid #292c2f;
    border-bottom:1px solid #292c2f;
}

.rf-beach-hero-sunseekers__label {
    color:#d5d9da;
    font-size:14px;
    line-height:1.3;
    font-weight:600;
}

.rf-beach-hero-sunseekers__people {
    display:flex;
    align-items:center;
    margin-left:auto;
}

.rf-beach-hero-sunseekers__person {
    position:relative;
    display:block;

    width:52px;
    height:52px;

    margin-left:-8px;

    border:2px solid #121314;
    border-radius:10px;

    overflow:hidden;

    transition:
        transform .15s ease,
        border-color .15s ease;
}

.rf-beach-hero-sunseekers__person:first-child {
    margin-left:0;
}

.rf-beach-hero-sunseekers__person:hover {
    z-index:2;
    transform:translateY(-2px);
    border-color:#718f89;
}

.rf-beach-hero-sunseekers__person img {
    display:block;

    width:100% !important;
    height:100% !important;

    object-fit:cover !important;

    border-radius:0 !important;
}


/* ---------- SAVE ---------- */

.rf-beach-hero .is-saved {
    background:#22302c !important;
    border-color:#66877f !important;
    color:#eef8f5 !important;
}


/* =========================================================
   HERO CAROUSEL
   ========================================================= */

.rf-beach-carousel-stage {
    position:relative !important;
    overflow:hidden !important;

    touch-action:pan-y;
    user-select:none;
}

.rf-beach-carousel-image {
    display:block !important;

    width:100% !important;
    height:100% !important;

    object-fit:cover !important;

    transition:opacity .12s ease;
}

.rf-beach-carousel-nav {
    position:absolute;
    z-index:5;

    top:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    width:42px;
    height:54px;

    padding:0 !important;

    transform:translateY(-50%);

    background:rgba(11,12,13,.70) !important;

    border:1px solid rgba(255,255,255,.16) !important;
    border-radius:9px !important;

    color:#fff !important;

    font-family:Arial,sans-serif;
    font-size:36px !important;
    font-weight:300 !important;
    line-height:1 !important;

    cursor:pointer;

    backdrop-filter:blur(4px);
}

.rf-beach-carousel-nav:hover {
    background:rgba(11,12,13,.90) !important;
}

.rf-beach-carousel-prev {
    left:14px;
}

.rf-beach-carousel-next {
    right:14px;
}


.rf-beach-carousel-counter {
    position:absolute;
    z-index:5;

    top:14px;
    right:14px;

    padding:6px 9px;

    background:rgba(11,12,13,.70);

    border:1px solid rgba(255,255,255,.13);
    border-radius:7px;

    color:#fff;

    font-size:11px;
    line-height:1;

    backdrop-filter:blur(4px);
}


/* 5 visible thumbnails */

.rf-beach-carousel-thumbs {
    position:absolute;
    z-index:5;

    left:50%;
    bottom:14px;

    display:flex;
    gap:6px;

    max-width:calc(100% - 120px);

    padding:6px;

    transform:translateX(-50%);

    background:rgba(9,10,11,.72);

    border:1px solid rgba(255,255,255,.12);
    border-radius:10px;

    backdrop-filter:blur(5px);
}

.rf-beach-carousel-thumb {
    display:block;

    width:68px;
    height:46px;

    margin:0 !important;
    padding:0 !important;

    overflow:hidden;

    background:#111 !important;

    border:1px solid transparent !important;
    border-radius:6px !important;

    opacity:.70;

    cursor:pointer;
}

.rf-beach-carousel-thumb:hover {
    opacity:1;
}

.rf-beach-carousel-thumb.is-active {
    border-color:#e5efec !important;
    opacity:1;
}

.rf-beach-carousel-thumb img {
    display:block;

    width:100% !important;
    height:100% !important;

    object-fit:cover !important;

    border-radius:0 !important;
}


/* ---------- MOBILE ---------- */

@media screen and (max-width:700px) {

    .rf-beach-hero-sunseekers {
        gap:10px;
        margin-bottom:15px;
        padding:12px 0;
    }

    .rf-beach-hero-sunseekers__label {
        font-size:13px;
    }

    .rf-beach-hero-sunseekers__person {
        width:44px;
        height:44px;
    }

    .rf-beach-carousel-nav {
        width:36px;
        height:48px;
        font-size:31px !important;
    }

    .rf-beach-carousel-prev {
        left:8px;
    }

    .rf-beach-carousel-next {
        right:8px;
    }

    .rf-beach-carousel-thumbs {
        bottom:8px;
        gap:4px;

        max-width:calc(100% - 80px);

        padding:4px;
    }

    .rf-beach-carousel-thumb {
        width:48px;
        height:34px;
    }

    .rf-beach-carousel-counter {
        top:8px;
        right:8px;
    }

}



/* =========================================================
   RF BEACH OPTIONS V1
   ========================================================= */

.rf-beach-facilities,
.rf-beach-rules,
.rf-beach-directions,
.rf-beach-faq {
    padding:32px 34px !important;
}


/* ---------- section heads ---------- */

.rf-beach-option-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;

    margin-bottom:25px;
}

.rf-beach-option-head h2 {
    margin:4px 0 0 !important;

    color:#f2f4f4;
    font-size:26px !important;
    line-height:1.2;
    font-weight:700;
}

.rf-beach-option-head h2::after {
    display:none !important;
}

.rf-beach-option-kicker {
    display:block;

    color:#809a94;

    font-size:10px;
    line-height:1;
    font-weight:700;

    letter-spacing:.13em;
    text-transform:uppercase;
}


/* =========================================================
   FACILITIES
   ========================================================= */

.rf-beach-facilities-grid {
    display:grid;

    grid-template-columns:
        repeat(4,minmax(0,1fr));

    gap:10px;
}

.rf-beach-facility {
    display:flex;
    align-items:center;
    gap:11px;

    min-height:55px;

    padding:13px 15px;

    background:#151718;

    border:1px solid #292c2f;
    border-radius:9px;

    color:#dce0e1;

    font-size:14px;
    line-height:1.35;
    font-weight:500;
}

.rf-beach-facility-check {
    display:flex;
    align-items:center;
    justify-content:center;

    flex:0 0 auto;

    width:20px;
    height:20px;

    border:1px solid #688a82;
    border-radius:50%;

    color:#9fbab4;

    font-size:11px;
    line-height:1;
    font-weight:700;
}

.rf-beach-facilities-fallback {
    color:#dce0e1;
}


/* =========================================================
   NATURIST STATUS
   ========================================================= */

.rf-beach-rule-row {
    display:flex;
    align-items:center;
    gap:15px;

    padding:18px 0;

    border-top:1px solid #25282a;
    border-bottom:1px solid #25282a;
}

.rf-beach-rule-icon {
    display:flex;
    align-items:center;
    justify-content:center;

    width:38px;
    height:38px;

    flex:0 0 auto;

    border:1px solid #516863;
    border-radius:8px;

    color:#9bb4ae;

    font-size:14px;
    font-weight:700;
}

.rf-beach-rule-content span {
    display:block;

    margin-bottom:4px;

    color:#809a94;

    font-size:11px;
    font-weight:600;

    text-transform:uppercase;
    letter-spacing:.05em;
}

.rf-beach-rule-content strong {
    display:block;

    color:#f2f4f4;

    font-size:17px;
    line-height:1.4;
    font-weight:600;
}

.rf-beach-rule-note {
    margin-top:14px;

    color:#7f898d;

    font-size:12px;
    line-height:1.5;
}


/* =========================================================
   GETTING THERE
   ========================================================= */

.rf-beach-directions-copy {
    max-width:1180px;

    color:#d1d5d6;

    font-size:16px;
    line-height:1.75;
}

.rf-beach-text-action {
    flex:0 0 auto;

    color:#f36b21 !important;

    font-size:13px;
    line-height:1;
    font-weight:650;

    text-decoration:none !important;
}

.rf-beach-text-action:hover {
    text-decoration:underline !important;
}

.rf-beach-coordinate-line {
    display:flex;
    align-items:center;
    gap:13px;

    margin-top:22px;
    padding-top:17px;

    border-top:1px solid #292c2f;
}

.rf-beach-coordinate-line span {
    color:#809a94;

    font-size:10px;
    font-weight:700;

    letter-spacing:.1em;
}

.rf-beach-coordinate-line strong {
    color:#b7bec0;

    font-size:13px;
    font-weight:500;
}


/* =========================================================
   FAQ
   ========================================================= */

.rf-beach-faq-item {
    border-top:1px solid #292c2f;
}

.rf-beach-faq-item:last-child {
    border-bottom:1px solid #292c2f;
}

.rf-beach-faq-item summary {
    position:relative;

    padding:19px 40px 19px 0;

    color:#e7eaeb;

    font-size:15px;
    line-height:1.45;
    font-weight:600;

    cursor:pointer;

    list-style:none;
}

.rf-beach-faq-item summary::-webkit-details-marker {
    display:none;
}

.rf-beach-faq-item summary::after {
    content:"+";

    position:absolute;

    top:50%;
    right:4px;

    transform:translateY(-50%);

    color:#869590;

    font-size:22px;
    line-height:1;
    font-weight:300;
}

.rf-beach-faq-item[open] summary::after {
    content:"−";
}

.rf-beach-faq-item > div {
    max-width:1100px;

    padding:0 40px 20px 0;

    color:#aeb5b7;

    font-size:14px;
    line-height:1.7;
}


/* Prepared slots have zero visual footprint */
#rf-beach-visitors-slot:empty,
#rf-beach-video-slot:empty {
    display:none;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media screen and (max-width:1000px) {

    .rf-beach-facilities-grid {
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}

@media screen and (max-width:600px) {

    .rf-beach-facilities,
    .rf-beach-rules,
    .rf-beach-directions,
    .rf-beach-faq {
        padding:22px 20px !important;
    }

    .rf-beach-option-head {
        align-items:flex-start;
        margin-bottom:20px;
    }

    .rf-beach-option-head h2 {
        font-size:22px !important;
    }

    .rf-beach-facilities-grid {
        grid-template-columns:1fr;
    }

    .rf-beach-facility {
        min-height:50px;
    }

}

/* =========================================================
   RF BEACH HERO SUNSEEKERS V2
   ========================================================= */

.rf-beach-hero {
    align-items:stretch;
}

.rf-beach-hero__topline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:12px;
}

.rf-beach-hero__topline .rf-beach-crumbs {
    min-width:0;
    margin:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.rf-beach-hero__topline .rf-beach-actions {
    flex:0 0 auto;
    margin:0;
    gap:7px;
}

.rf-beach-hero__topline .rf-beach-btn {
    min-height:36px;
    padding:0 13px;
    border-color:#3a3d40;
    background:#191b1e;
    color:#e8e8e8;
    font-size:12px;
    font-weight:700;
}

.rf-beach-hero__topline .rf-beach-btn--primary {
    border-color:#74401f;
    background:#191b1e;
    color:#ff7417;
}

.rf-beach-hero .rf-beach-intro {
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}

.rf-beach-hero .rf-beach-quick {
    margin-top:16px;
    padding-top:0;
}

.rf-beach-hero-sunseekers {
    display:grid;
    grid-template-columns:minmax(150px,1fr) auto;
    align-items:center;
    gap:16px;

    min-height:138px;
    max-height:150px;
    margin:auto 0 0;
    padding:13px 15px;

    overflow:hidden;

    background:
        linear-gradient(
            108deg,
            #251b16 0%,
            #17191b 72%
        );

    border:0;
    border-left:3px solid #f86900;
    border-radius:11px;
}

.rf-beach-hero-sunseekers__intro {
    min-width:0;
}

.rf-beach-hero-sunseekers__kicker {
    position:relative;

    margin:0 0 6px;
    padding-left:13px;

    color:#ff761b;

    font-size:9px;
    line-height:1;
    font-weight:700;

    letter-spacing:.11em;
    text-transform:uppercase;
}

.rf-beach-hero-sunseekers__kicker::before {
    content:"";

    position:absolute;
    top:50%;
    left:0;

    width:6px;
    height:6px;

    transform:translateY(-50%);

    background:#f86900;
    border-radius:50%;

    box-shadow:0 0 0 4px rgba(248,105,0,.12);
}

.rf-beach-hero-sunseekers__label {
    margin:0 0 5px !important;

    color:#f2f4f4 !important;

    font-size:18px !important;
    line-height:1.2 !important;
    font-weight:750 !important;
}

.rf-beach-hero-sunseekers__copy {
    margin:0 !important;

    color:#aeb4b6;

    font-size:11px;
    line-height:1.4;
}

.rf-beach-hero-sunseekers__more {
    display:inline-block;

    margin-top:8px;

    color:#ff761b !important;

    font-size:11px;
    line-height:1;
    font-weight:700;

    text-decoration:none !important;
}

.rf-beach-hero-sunseekers__more:hover {
    text-decoration:underline !important;
}

.rf-beach-hero-sunseekers__people {
    display:flex;
    align-items:center;
    gap:8px;
    height:114px;
    margin:0;
}

.rf-beach-hero-sunseekers__person {
    position:relative;

    display:block;

    width:86px;
    height:114px;
    margin:0;

    overflow:hidden;

    background:#202224;

    border:1px solid #393c3f;
    border-radius:9px;

    box-shadow:0 7px 16px rgba(0,0,0,.30);

    transition:
        transform .15s ease,
        border-color .15s ease;
}

.rf-beach-hero-sunseekers__person:hover {
    z-index:2;

    transform:translateY(-3px);

    border-color:#f86900;
}

.rf-beach-hero-sunseekers__person img {
    display:block;

    width:100% !important;
    height:100% !important;

    object-fit:cover !important;

    border-radius:0 !important;
}

@media screen and (max-width:1100px) {

    .rf-beach-hero-sunseekers__person {
        width:78px;
        height:103px;
    }

    .rf-beach-hero-sunseekers__people {
        height:103px;
    }
}

@media screen and (max-width:900px) {

    .rf-beach-hero-sunseekers {
        min-height:132px;
        max-height:none;
    }
}

@media screen and (max-width:700px) {

    .rf-beach-hero__topline {
        align-items:flex-start;
        flex-direction:column-reverse;
    }

    .rf-beach-hero__topline .rf-beach-actions {
        width:100%;
    }

    .rf-beach-hero-sunseekers {
        grid-template-columns:minmax(0,1fr) auto;
        gap:10px;
        padding:12px;
    }

    .rf-beach-hero-sunseekers__copy {
        display:none;
    }

    .rf-beach-hero-sunseekers__person {
        width:68px;
        height:90px;
    }

    .rf-beach-hero-sunseekers__people {
        height:90px;
    }
}



/* RF BEACH HERO STRICT V3 */

.rf-beach-hero {
    border-color:#292c2f !important;
    border-radius:16px !important;
    background:#121314 !important;
    box-shadow:none !important;
}

.rf-beach-quick {
    display:none !important;
}

.rf-beach-hero__content {
    min-height:420px;
}

.rf-beach-hero__topline {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:12px;
}

.rf-beach-hero__topline .rf-beach-crumbs {
    min-width:0;
    margin:0;
    overflow:hidden;
    color:#8f9698;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.rf-beach-hero__topline .rf-beach-actions {
    flex:0 0 auto;
    gap:7px;
    margin:0;
}

.rf-beach-hero__topline .rf-beach-btn {
    min-height:34px;
    padding:0 11px;
    border-color:#3a3e40;
    border-radius:7px;
    color:#d9dcdd;
    background:transparent;
    font-size:12px;
    font-weight:600;
}

.rf-beach-hero__topline .rf-beach-btn--primary {
    border-color:#684127;
    color:#ed762d;
}

.rf-beach-hero h1 {
    font-weight:650 !important;
    letter-spacing:-.025em;
}

.rf-beach-intro {
    display:-webkit-box;
    max-height:158px;
    overflow:hidden;
    color:#bdc2c4;
    font-size:15px;
    line-height:1.65;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:6;
}

.rf-beach-hero-sunseekers {
    display:grid !important;
    grid-template-columns:minmax(150px,1fr) auto;
    align-items:center;
    gap:18px;
    margin:auto 0 0 !important;
    padding:15px 0 0 !important;
    border:0 !important;
    border-top:1px solid #303335 !important;
    background:transparent !important;
    box-shadow:none !important;
}

.rf-beach-hero-sunseekers__label {
    margin:0 0 7px !important;
    color:#eef0f0 !important;
    font-size:17px !important;
    line-height:1.2 !important;
    font-weight:600 !important;
}

.rf-beach-hero-sunseekers__copy {
    margin:0;
    color:#899295;
    font-size:11px;
    line-height:1.45;
}

.rf-beach-hero-sunseekers__explore {
    display:inline-block;
    margin-top:7px;
    color:#c8cecd !important;
    font-size:11px;
    font-weight:600;
    text-decoration:none !important;
}

.rf-beach-hero-sunseekers__explore:hover {
    color:#fff !important;
}

.rf-beach-hero-sunseekers__people {
    display:flex;
    align-items:stretch;
    gap:8px;
    height:112px;
    margin:0 !important;
}

.rf-beach-hero-sunseekers__person {
    position:relative;
    display:block;
    width:auto;
    height:100%;
    aspect-ratio:288 / 380;
    margin:0 !important;
    overflow:hidden;
    border:1px solid #3a3e40 !important;
    border-radius:7px !important;
    background:#181a1b;
}

.rf-beach-hero-sunseekers__person:hover {
    transform:none !important;
    border-color:#697173 !important;
}

.rf-beach-hero-sunseekers__person img {
    display:block;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    border-radius:0 !important;
}

.rf-beach-hero-sunseekers__person span {
    position:absolute;
    inset:auto 0 0;
    padding:18px 5px 6px;
    color:#e8ebeb;
    background:linear-gradient(transparent,rgba(8,10,11,.9));
    font-size:9px;
    font-weight:600;
    line-height:1;
    text-align:center;
}

@media screen and (max-width:900px) {
    .rf-beach-hero__content {
        min-height:0;
    }

    .rf-beach-intro {
        max-height:none;
        -webkit-line-clamp:unset;
    }
}

@media screen and (max-width:700px) {
    .rf-beach-hero__topline {
        align-items:flex-start;
    }

    .rf-beach-hero__topline .rf-beach-btn {
        min-height:32px;
        padding:0 9px;
        font-size:11px;
    }

    .rf-beach-hero-sunseekers {
        grid-template-columns:minmax(0,1fr) auto;
        gap:10px;
        margin-top:20px !important;
    }

    .rf-beach-hero-sunseekers__copy {
        display:none;
    }

    .rf-beach-hero-sunseekers__people {
        height:92px;
    }

    .rf-beach-hero-sunseekers__person:nth-child(2) {
        display:none;
    }
}
