/* ----------------------------------
Page Container
---------------------------------- */

.companion-page{
max-width:1100px;
margin:auto;
padding:0px 20px 80px;
}


/* ----------------------------------
Breadcrumbs
---------------------------------- */

.agency-breadcrumbs{
margin-bottom:20px;
font-size:16px;
color:#777;
}

.agency-breadcrumbs a{
text-decoration:none;
}

.breadcrumb-sep{
margin:0 6px;
}

/* ----------------------------------
Hero
---------------------------------- */

.companion-hero{
display:grid;
grid-template-columns:420px 1fr;
gap:60px;
align-items:center;
margin-bottom:70px;
position:relative;
}

/* background accent behind image */

.hero-image{
position:relative;
padding:20px;
background:rgba(211,159,167,.12);
}

.hero-image img{
width:100%;
height:auto;
display:block;
max-height:80vh;
object-fit:cover;
}


/* title */

.companion-title{
font-size:54px;
line-height:1.1;
margin:0;
font-weight:700;
color:#844747;
font-family: sans-serif;
}

/* tagline */

.companion-tagline{
display:block;
margin-top:16px;
font-size:20px;
line-height:1.2;
opacity:.8;
font-weight:400;
font-family: sans-serif;
color: #000;
}

/* ----------------------------------
Sections
---------------------------------- */

.companion-section{
margin-top:60px;
padding:30px 40px;
background:#fff;
}

.section-title{
margin-bottom:22px;
font-size:34px;
font-weight:600;
position:relative;
padding-bottom:8px;
}

/* subtle accent underline */

.section-title:after{
content:"";
position:absolute;
left:0;
bottom:0;
width:40px;
height:2px;
background:#844747;
}


/* ----------------------------------
Profile Attributes
---------------------------------- */

.attributes-grid{
display:grid;
grid-template-columns:repeat(2,1fr);
gap:18px 60px;
margin-top:20px;
background:rgba(211,159,167,.10);
padding:30px 30px;
border-radius:6px;
}

.attribute-item{
display:flex;
justify-content:space-between;
border-bottom:1px solid rgba(0,0,0,.08);
padding:10px 0;
}

.attribute-item:last-child{
border-bottom:0;
}

.attribute-label{
font-weight:600;
}

.attribute-value{
opacity:.85;
}

/* ----------------------------------
Gallery
---------------------------------- */

.gallery-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:22px;
margin-top:25px;
}

/* frame for every image */

.gallery-grid a{
display:block;
aspect-ratio:3/4;
overflow:hidden;
}

/* image fills frame */

.gallery-grid img{
width:100%;
height:100%;
object-fit:cover;
display:block;
transition:transform .35s ease;
}

.gallery-grid a:hover img{
transform:scale(1.05);
}
/* ----------------------------------
Video Embeds
---------------------------------- */

.companion-section iframe{
width:100%;
max-width:720px;
margin-top:20px;
}


/* ----------------------------------
Lightbox
---------------------------------- */

.lb-overlay{
position:fixed;
top:0;
left:0;
width:100%;
height:100%;
background:rgba(0,0,0,.92);
display:flex;
align-items:center;
justify-content:center;
z-index:9999;
}

.lb-overlay img{
max-width:90%;
max-height:90%;
}

.lb-close,
.lb-prev,
.lb-next{
position:absolute;
background:none;
border:0;
color:#fff;
font-size:40px;
cursor:pointer;
}

.lb-close{
top:20px;
right:30px;
}

.lb-prev{
left:30px;
}

.lb-next{
right:30px;
}

/* tier layout */

.concierge-list{
display:flex;
flex-direction:column;
gap:30px;
}


/* tier card */

.tier-card{
position:relative;
background:#fff;
border:1px solid rgba(0,0,0,.06);
text-align:left;
transition:all .25s ease;
}

.tier-card:hover{
box-shadow:0 16px 40px rgba(0,0,0,.08);
transform:translateY(-4px);
}


/* accent borders */

.tier-gold{
border-left:5px solid #d39fa7;
}

.tier-diamond{
border-left:5px solid #844747;
}

.tier-platinum{
border-left:5px solid #000;
}


/* badge */

.tier-badge{
position:absolute;
top:-12px;
left:25px;
font-size:12px;
letter-spacing:1px;
text-transform:uppercase;
padding:6px 14px;
background:#000;
color:#fff;
}


/* inner */

.tier-inner{
padding:40px 40px;
}


/* header */

.tier-header h2{
margin:0 0 20px 0;
font-size:24px;
}


/* services */

.tier-services{
list-style:none;
padding:0;
margin:0;
}

.tier-services li{
display:flex;
justify-content:space-between;
padding:12px 0;
border-bottom:1px solid rgba(0,0,0,.05);
font-size:15px;
}

.tier-price{
font-weight:600;
}


/* ----------------------------------
Mobile
---------------------------------- */

@media (max-width:768px){

.companion-hero{
grid-template-columns:1fr;
gap:30px;
}

.hero-image img{
max-height:80vh;
}

.companion-title{
font-size:36px;
}

.companion-tagline{
font-size:20px;
}

.section-title{
font-size:26px;
}

.companion-section{
padding:25px 2px;
}

.attributes-grid{
grid-template-columns:1fr;
padding: 40px;
}

.gallery-grid{
grid-template-columns:repeat(2,1fr);
}
    .tier-card, .attributes-grid {
        width: 100vw;
        margin-left: calc(-50vw + 50%);
    }
}
@media (max-width:640px){
.hero-image {
        width: 100vw;
        margin-left: calc(-50vw + 50%);
    }
}