/* Reviews page extends the homepage design system in css/style.css */
*{
    user-select: none;
}
.reviews-page .nav-links a.active::after{
    width:100%
}
.reviews-page .mobile-menu a.active{
    color:var(--gold-soft)
}
.reviews-hero{
    min-height:88svh;
    padding:150px 0 105px;
    position:relative;
    overflow:hidden;
    background:var(--burgundy-deep);
    color:var(--ivory)
}
.reviews-hero::before{
    content:"";
    position:absolute;
    inset:0;
    opacity:.08;
    background-image:
        linear-gradient(
            90deg,
            transparent 49.8%,
            #fff 50%,
            transparent 50.2%
        ),
        linear-gradient(
            0deg,
            transparent 49.8%,
            #fff 50%,
            transparent 50.2%
        );
    background-size:160px 160px
}
.reviews-hero-grid{
    position:absolute;
    inset:0;
    background:
        radial-gradient(
            circle at 76% 45%,
            rgba(201,163,74,.22),
            transparent 24%
        ),
        linear-gradient(
            125deg,
            rgba(66,17,20,.4),
            transparent 58%
        )
}
.reviews-hero-noise{
    position:absolute;
    inset:0;
    opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E")
}
.reviews-hero-inner{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1.02fr .98fr;
    gap:8%;
    align-items:center;
    min-height:630px
}
.reviews-hero-copy{
    max-width:680px
}
.review-hero-eyebrow{
    color:var(--gold-soft)
}
.reviews-hero h1{
    font-size:clamp(4rem,7vw,7.4rem);
    margin:0 0 30px
}
.reviews-hero h1 em{
    color:var(--gold-soft)
}
.reviews-hero-lead{
    color:rgba(255,253,247,.7);
    font-size:17px;
    line-height:1.8;
    max-width:570px
}
.reviews-hero-actions{
    display:flex;
    gap:12px;
    margin-top:34px;
    flex-wrap:wrap
}
.review-hero-ghost{
    border-color:rgba(255,255,255,.35)
}
.review-hero-ghost:hover{
    border-color:var(--gold);
    color:var(--gold-soft)
}
.hero-testimonial-stage{
    min-height:560px;
    position:relative
}
.hero-orbit-review{
    position:absolute;
    border:1px solid rgba(201,163,74,.14);
    border-radius:50%
}
.orbit-review-one{
    width:570px;
    height:570px;
    right:-150px;
    top:0
}
.orbit-review-two{
    width:700px;
    height:700px;
    right:-220px;
    top:-75px
}
.floating-review{
    position:absolute;
    background:rgba(255,253,247,.97);
    color:var(--ink);
    box-shadow:0 28px 80px rgba(0,0,0,.24)
}
.floating-review-main{
    width:min(440px,82%);
    right:5%;
    top:18%;
    padding:28px 30px 29px;
    z-index:3
}
.review-card-topline{
    display:flex;
    align-items:center;
    justify-content:space-between;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase
}
.floating-review-main blockquote{
    margin:34px 0 38px;
    font:500 clamp(1.6rem,2.7vw,2.6rem)/1.18 var(--serif);
    letter-spacing:-.025em
}
.floating-review-main footer{
    border-top:1px solid var(--line);
    padding-top:15px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.12em
}
.floating-review-main footer span{
    color:var(--muted)
}
.floating-review-small{
    width:185px;
    padding:17px 18px;
    z-index:4
}
.review-small-a{
    left:0;
    top:12%;
    transform:rotate(-2.5deg)
}
.review-small-b{
    left:6%;
    bottom:12%;
    transform:rotate(2deg)
}
.mini-stars{
    display:block;
    color:var(--gold);
    letter-spacing:.12em;
    font-size:10px;
    margin-bottom:10px
}
.floating-review-small strong{
    display:block;
    font-size:12px;
    margin-bottom:3px
}
.floating-review-small small{
    color:var(--muted);
    font-size:9px;
    line-height:1.45;
    display:block
}
.review-seal{
    position:absolute;
    right:-3%;
    bottom:4%;
    z-index:4;
    width:104px;
    height:104px;
    border:1px solid rgba(201,163,74,.6);
    border-radius:50%;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    color:var(--gold-soft);
    font-size:7px;
    letter-spacing:.18em;
    line-height:1.5;
    transform:rotate(8deg)
}
.review-seal strong{
    font-size:17px;
    letter-spacing:.08em;
    margin:3px 0
}
.review-stats{
    background:var(--ivory);
    border-bottom:1px solid var(--line)
}
.review-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr)
}
.review-stat{
    min-height:160px;
    padding:30px 20px 30px 0;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid var(--line)
}
.review-stat+.review-stat{
    padding-left:28px
}
.review-stat:last-child{
    border-right:0
}
.review-stat strong{
    font-size:clamp(1.2rem,2.1vw,2.4rem);
    letter-spacing:-.04em;
    color:var(--burgundy)
}
.review-stat span{
    margin-top:5px;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.15em
}
.featured-review{
    background:var(--cream)
}
.featured-review-grid{
    display:grid;
    grid-template-columns:.75fr 1.1fr;
    gap:12%;
    align-items:center
}
.featured-review-intro h2{
    margin-bottom:22px
}
.featured-review-intro>p:not(.eyebrow){
    color:var(--muted);
    max-width:450px
}
.feature-note{
    display:inline-block;
    color:var(--gold);
    font-size:9px;
    letter-spacing:.18em;
    font-weight:800;
    margin-top:36px
}
.featured-quote{
    position:relative;
    background:var(--burgundy);
    color:var(--ivory);
    padding:60px 64px 54px;
    overflow:hidden;
    box-shadow:0 24px 60px rgba(66,17,20,.12)
}
.featured-quote::after{
    content:"";
    width:270px;
    height:270px;
    border:1px solid rgba(224,199,125,.18);
    border-radius:50%;
    position:absolute;
    right:-100px;
    bottom:-90px
}
.quote-mark{
    position:absolute;
    top:20px;
    right:30px;
    font:600 120px/1 var(--serif);
    color:rgba(255,253,247,.08)
}
.featured-review-stars{
    color:var(--gold-soft);
    letter-spacing:.18em;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase
}
.featured-quote blockquote{
    position:relative;
    z-index:1;
    margin:36px 0 46px;
    max-width:760px;
    font:500 clamp(2rem,3.5vw,3.6rem)/1.12 var(--serif);
    letter-spacing:-.03em
}
.featured-quote footer{
    border-top:1px solid rgba(255,255,255,.17);
    padding-top:15px;
    display:flex;
    justify-content:space-between;
    gap:20px;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:9px
}
.featured-quote footer span{
    color:rgba(255,255,255,.5)
}
.review-library{
    background:#f0ebdf
}
.review-library-head{
    display:grid;
    grid-template-columns:1fr .5fr;
    gap:10%;
    align-items:end
}
.review-library-head h2{
    margin:0
}
.review-library-head>p{
    color:var(--muted);
    font-size:14px;
    max-width:340px;
    margin:0
}
.review-controls{
    margin-top:65px;
    padding-top:23px;
    border-top:1px solid var(--line)
}
.review-filters{
    display:flex;
    gap:7px;
    flex-wrap:wrap
}
.filter-button{
    border:1px solid rgba(32,32,32,.16);
    background:transparent;
    color:var(--ink);
    padding:9px 13px;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    transition:all .3s var(--ease)
}
.filter-button:hover,
.filter-button.active{
    background:var(--burgundy);
    color:var(--ivory);
    border-color:var(--burgundy)
}
.review-search{
    display:flex;
    align-items:center;
    gap:14px;
    max-width:430px;
    border-bottom:1px solid #a9a296;
    margin-top:20px;
    padding:3px 0 7px
}
.review-search span{
    font-size:8px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    white-space:nowrap
}
.review-search input{
    border:0;
    background:transparent;
    outline:none;
    width:100%;
    color:var(--ink)
}
.review-search input::placeholder{
    color:#a59e95
}
.review-search b{
    color:var(--burgundy);
    font-size:18px;
    font-weight:400
}
.review-results-meta{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin:30px 0 18px;
    color:var(--muted);
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.12em
}
.clear-search{
    border:0;
    background:transparent;
    color:var(--burgundy);
    padding:5px 0;
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase
}
.review-masonry{
    columns:2 420px;
    column-gap:22px
}
.review-tile{
    break-inside:avoid;
    background:var(--ivory);
    border:1px solid rgba(32,32,32,.12);
    padding:30px;
    margin:0 0 22px;
    position:relative;
    transition:
        transform .45s var(--ease),
        box-shadow .45s,
        border-color .45s
}
.review-tile:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 45px rgba(32,32,32,.07);
    border-color:rgba(100,25,27,.28);
}
.review-tile::before{
    content:"“";
    position:absolute;
    right:18px;
    top:5px;
    color:rgba(100,25,27,.07);
    font:600 100px/1 var(--serif)
}
.review-tile.large{
    padding:38px
}
.review-tile .tile-top{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:15px;
    margin-bottom:25px
}
.review-tile .tile-stars{
    color:var(--gold);
    letter-spacing:.08em;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase
}
.review-tile .tile-tag{
    color:var(--burgundy);
    font-size:8px;
    text-transform:uppercase;
    letter-spacing:.14em;
    font-weight:800;
    text-align:right;
    max-width:70%
}
.review-tile blockquote{
    margin:0 0 28px;
    font:500 1.45rem/1.34 var(--serif);
    letter-spacing:-.018em;
    white-space:pre-line
}
.review-tile.large blockquote{
    font-size:clamp(1.7rem,2.5vw,2.5rem);
    line-height:1.22
}
.review-tile footer{
    border-top:1px solid var(--line);
    padding-top:13px;
    display:flex;
    justify-content:space-between;
    gap:15px;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.11em
}
.review-tile footer span{
    color:var(--muted);
    text-align:right;
    max-width:65%;
    overflow-wrap:anywhere;
    line-height:1.5
}
.rating-only{
    background:rgba(255,253,247,.7)
}
.rating-only blockquote{
    font-family:"DM Sans",sans-serif;
    font-size:14px;
    line-height:1.7;
    color:var(--muted);
    letter-spacing:0
}
.no-reviews{
    border:1px dashed rgba(32,32,32,.25);
    padding:70px 20px;
    text-align:center;
    color:var(--muted);
    margin-top:10px
}
.rating-section{
    background:#e9e1d2
}
.rating-grid{
    display:grid;
    grid-template-columns:.65fr 1fr;
    gap:14%;
    align-items:center
}
.rating-number{
    font-size:clamp(5rem,9vw,10rem);
    line-height:.9;
    letter-spacing:-.08em;
    color:var(--burgundy)
}
.rating-stars{
    color:var(--gold);
    font-size:12px;
    font-weight:800;
    letter-spacing:.15em;
    margin-top:22px
}
.rating-intro>p:not(.eyebrow){
    color:var(--muted);
    max-width:420px;
    margin-top:22px;
    font-size:13px
}
.rating-bars{
    border-top:1px solid var(--line)
}
.rating-row{
    padding:18px 0 16px;
    border-bottom:1px solid var(--line)
}
.rating-row>div{
    display:flex;
    justify-content:space-between;
    gap:20px;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.12em
}
.rating-row>div strong{
    color:var(--burgundy)
}
.rating-row>i{
    display:block;
    height:4px;
    background:rgba(32,32,32,.12);
    margin-top:10px
}
.rating-row>i b{
    display:block;
    height:100%;
    background:var(--gold)
}
.rating-note{
    color:var(--muted);
    font-size:10px;
    margin:18px 0 0;
    max-width:520px
}
.why-review{
    background:var(--ivory)
}
.why-review-grid{
    margin-top:80px;
    border-top:1px solid var(--line);
    display:grid;
    grid-template-columns:1fr 1fr
}
.review-value{
    display:grid;
    grid-template-columns:48px 1fr;
    gap:20px;
    padding:35px 30px 35px 0;
    border-bottom:1px solid var(--line)
}
.review-value:nth-child(odd){
    border-right:1px solid var(--line);
    padding-right:35px
}
.review-value:nth-child(even){
    padding-left:35px
}
.review-value>span{
    color:var(--gold);
    font-size:10px;
    font-weight:800
}
.review-value h3{
    margin:0 0 8px;
    font-size:24px
}
.review-value p{
    color:var(--muted);
    margin:0;
    font-size:13px;
    max-width:440px
}
.review-cta{
    padding:105px 0;
    background:var(--burgundy);
    color:var(--ivory);
    position:relative;
    overflow:hidden
}
.review-cta::before,
.review-cta::after{
    content:"";
    position:absolute;
    border:1px solid rgba(201,163,74,.12);
    border-radius:50%;
    pointer-events:none
}
.review-cta::before{
    width:600px;
    height:600px;
    right:-150px;
    top:-250px
}
.review-cta::after{
    width:900px;
    height:900px;
    right:-300px;
    top:-400px
}
.review-cta-lines{
    position:absolute;
    inset:0;
    opacity:.06;
    background-image:
        linear-gradient(
            90deg,
            transparent 49.8%,
            #fff 50%,
            transparent 50.2%
        );
    background-size:170px 100%
}
.review-cta-inner{
    position:relative;
    z-index:2;
    display:grid;
    grid-template-columns:1fr .42fr;
    gap:12%;
    align-items:center
}
.review-cta h2{
    margin:0 0 20px
}
.review-cta p:not(.eyebrow){
    color:rgba(255,255,255,.62);
    max-width:560px
}
.review-cta-actions{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:11px
}
.review-cta-outline{
    border-color:rgba(255,255,255,.36);
    color:var(--ivory)
}
.review-cta-outline:hover{
    border-color:var(--gold-soft);
    color:var(--gold-soft)
}

/* FIX:
   Keep reveal elements visible by default.
   JavaScript/GSAP handles the optional reveal animation.
   This prevents sections from remaining permanently hidden
   when an external animation library loads late. */
.reveal-review{
    opacity:1;
    transform:none;
}

@media(max-width:1000px){
    .reviews-hero-inner,
    .featured-review-grid,
    .rating-grid,
    .review-cta-inner{
        grid-template-columns:1fr;
        gap:60px
    }
    .hero-testimonial-stage{
        min-height:500px
    }
    .review-stat-grid{
        grid-template-columns:1fr 1fr
    }
    .review-stat{
        border-bottom:1px solid var(--line)
    }
    .review-stat:nth-child(2){
        border-right:0
    }
    .review-library-head{
        grid-template-columns:1fr
    }
    .why-review-grid{
        grid-template-columns:1fr
    }
    .review-value:nth-child(odd),
    .review-value:nth-child(even){
        border-right:0;
        padding-left:0;
        padding-right:0
    }
}
@media(max-width:700px){
    .reviews-page .nav{
        display:flex !important;
        align-items:center;
        justify-content:space-between;
        width:100%;
    }
    .reviews-page .nav .brand{
        display:flex;
        align-items:center;
        flex:0 0 auto;
        min-width:0;
    }
    .reviews-page .nav .nav-links,
    .reviews-page .nav .nav-cta{
        display:none;
    }
    .reviews-page .nav .menu-toggle{
        display:flex;
        flex:0 0 auto;
        margin-left:auto !important;
        margin-right:0 !important;
        align-items:center;
        justify-content:center;
    }
    .reviews-hero{
        padding-top:120px;
        min-height:100svh
    }
    .reviews-hero h1{
        font-size:clamp(3.25rem,15vw,5.2rem)
    }
    .reviews-hero-lead{
        font-size:14px
    }
    .hero-testimonial-stage{
        min-height:410px
    }
    .floating-review-main{
        width:75%;
        right:0;
        top:14%;
        padding:22px
    }
    .floating-review-main blockquote{
        font-size:1.45rem;
        margin:25px 0 30px
    }
    .floating-review-main footer{
        flex-direction:column;
        gap:4px
    }
    .floating-review-small{
        width:150px
    }
    .review-small-a{
        left:0;
        top:8%
    }
    .review-small-b{
        left:3%;
        bottom:4%
    }
    .review-seal{
        right:-1%;
        bottom:0;
        width:82px;
        height:82px
    }
    .review-stat-grid{
        grid-template-columns:1fr
    }
    .review-stat,
    .review-stat+.review-stat{
        border-right:0;
        padding-left:0;
        min-height:110px
    }
    .review-stat:last-child{
        border-bottom:0
    }
    .featured-quote{
        padding:42px 25px 35px
    }
    .featured-quote blockquote{
        font-size:1.9rem
    }
    .review-results-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:8px
    }
    .review-masonry{
        columns:1
    }
    .review-tile.large,
    .review-tile{
        padding:25px
    }
    .review-tile.large blockquote{
        font-size:1.55rem
    }
    .review-filters{
        flex-wrap:nowrap;
        overflow-x:auto;
        scrollbar-width:none;
        padding-bottom:5px
    }
    .review-filters::-webkit-scrollbar{
        display:none
    }
    .filter-button{
        flex:0 0 auto
    }
    .review-cta-actions{
        flex-direction:row;
        flex-wrap:wrap
    }
    .review-tile footer{
        flex-direction:column;
        align-items:flex-start;
        gap:7px
    }
    .review-tile footer span{
        max-width:100%;
        text-align:left
    }
}
@media(prefers-reduced-motion:reduce){
    .reveal-review{
        opacity:1;
        transform:none
    }
}

/* =========================================================
   S.E.M REVIEWS — PROFESSIONAL ACTION ICONS
   ========================================================= */
.nav-cta,
.button,
.mobile-menu-cta,
.back-top {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.nav-cta .action-icon,
.button .action-icon,
.mobile-menu-cta .action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    margin-left: 0.7rem;
    font-size: 0.78em;
    line-height: 1;
    flex: 0 0 auto;
    transform: translate(0, 0);
    transition:
        transform 0.3s ease,
        opacity 0.3s ease;
}
.nav-cta:hover .action-icon,
.button:hover .action-icon,
.mobile-menu-cta:hover .action-icon {
    transform: translate(2px, -2px);
}
.review-search .search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    font-size: 0.85rem;
    line-height: 1;
    opacity: 0.72;
}
.back-top {
    border-radius: 50%;
    line-height: 1;
}
.back-top i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    line-height: 1;
    transition: transform 0.3s ease;
}
.back-top:hover i {
    transform: translateY(-2px);
}
@media (max-width: 700px) {
    .nav-cta .action-icon,
    .button .action-icon,
    .mobile-menu-cta .action-icon {
        margin-left: 0.55rem;
        font-size: 0.75em;
    }
}

/* =========================================================
   PERFORMANCE + PROFESSIONAL ICONS
   ========================================================= */
.reviews-page .review-masonry {
    contain: layout paint;
}
.reviews-page .review-tile,
.reviews-page .custom-review-card {
    content-visibility: auto;
    contain-intrinsic-size: 320px;
}
.reviews-page .review-masonry .review-tile {
    opacity: 0;
    transform: translateY(8px);
}
.reviews-page .review-masonry.is-rendering .review-tile {
    opacity: 1;
    transform: translateY(0);
    transition:
        opacity .28s ease,
        transform .35s var(--ease),
        box-shadow .45s,
        border-color .45s;
}
.nav-cta,
.button,
.mobile-menu-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.nav-cta .action-icon,
.button .action-icon,
.mobile-menu-cta .action-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    margin-left: .7rem;
    font-size: .78em;
    line-height: 1;
    flex: 0 0 auto;
    transition: transform .3s ease;
}
.nav-cta:hover .action-icon,
.button:hover .action-icon,
.mobile-menu-cta:hover .action-icon {
    transform: translate(2px, -2px);
}
.review-search .search-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    font-size: .85rem;
    line-height: 1;
    opacity: .72;
}
.back-top {
    border-radius: 50%;
    line-height: 1;
}
.back-top i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    line-height: 1;
    transition: transform .3s ease;
}
.back-top:hover i {
    transform: translateY(-2px);
}
.custom-review-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 30px;
    background: var(--ivory, #fffdf7);
    border: 1px solid rgba(32, 32, 32, .11);
    box-shadow: 0 18px 45px rgba(32, 32, 32, .07);
    break-inside: avoid;
}
.custom-review-card .custom-review-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}
.custom-review-stars {
    color: var(--gold, #c9a34a);
    letter-spacing: .12em;
    font-size: 12px;
}
.custom-review-badge {
    color: var(--burgundy, #64191b);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.custom-review-card blockquote {
    margin: 0;
    color: var(--ink, #202020);
    font: 500 1.18rem / 1.65 var(--serif, Georgia, serif);
    letter-spacing: -.01em;
    white-space: pre-line;
}
.custom-review-card .custom-review-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid rgba(32, 32, 32, .1);
}
.custom-review-tag {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    padding: 0 9px;
    border: 1px solid rgba(100, 25, 27, .14);
    color: var(--muted, #6e6963);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.custom-review-price {
    color: var(--burgundy, #64191b);
}
@media (max-width: 700px) {
    .nav-cta .action-icon,
    .button .action-icon,
    .mobile-menu-cta .action-icon {
        margin-left: .55rem;
        font-size: .75em;
    }
    .custom-review-card {
        padding: 24px;
    }
    .custom-review-card blockquote {
        font-size: 1.08rem;
    }
}