/* Things To Do - Grid Module */
.cms-things-to-do-grid-wrap { margin: 3.125rem 0; }
.cms-things-to-do-grid-wrap [class^=col] { margin-bottom: 1.875rem; }
.thing-to-do-wrap { overflow: hidden; display: block; position: relative; padding-bottom: 100%; background: hsl(var(--black)); border-radius: var(--borderRadiusCheckbox); box-shadow: var(--dropShadow); }
.thing-to-do-img { opacity: 0.85; width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; transition: all ease-in-out 0.4s; }
.thing-to-do-wrap:hover .thing-to-do-img { opacity: 0.5; }
.thing-to-do-link { width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 2; font-family: var(--siteFont2); }
.thing-to-do-link .title { text-align: center; position: absolute; right: 0; bottom: 1.25rem; left: 0; margin: 0; padding: 0.3125rem 0.625rem; font-size: 2rem; color: hsl(var(--white)); line-height: 1.2; font-weight: var(--wBold); font-style: italic; text-align: center; text-transform: capitalize; text-shadow: 0.0625rem 0.0625rem 0.1875rem hsla(0, 0%, 0%, 50%); transition: all ease-in-out 0.4s; transition-delay: 0.4s; }
.thing-to-do-wrap:hover .title { bottom: 50%; transition-delay: 0s; }
.thing-to-do-link .view { opacity: 0; visibility: hidden; position: absolute; bottom: 30%; left: 50%; transform: translate(-50%,-30%); padding: 0.625rem 3rem; background-color: hsla(var(--white), 90%); border: 0.0625rem hsla(var(--siteColor1), 25%) solid; border-radius: var(--borderRadiusPill); color: hsl(var(--bodyFontColor)); font-weight: 400; transition: all ease-in-out 0.4s; transition-delay: 0.4s; }
.thing-to-do-link .view:hover { background: hsla(var(--white), 1); box-shadow: 0 0 0 0.125rem hsla(var(--white), 25%); transition-delay: 0s; }
.thing-to-do-wrap:hover .thing-to-do-link .view { opacity: 1; visibility: visible; }

/* Things To Do - Category grid page */
.things-to-do-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; margin-bottom: 0.5rem; font-size: 1.125rem; text-transform: capitalize; }
.things-to-do-breadcrumbs .link { padding: 0.5rem 0; color: hsl(var(--siteColor1)); text-decoration: none; }
.things-to-do-breadcrumbs .link:hover { color: hsl(var(--siteColor2)); }
.things-to-do-breadcrumbs .spacer { width: auto; padding: 0.5rem; }
.things-to-do-breadcrumbs span { padding: 0.5rem 0; }
.things-to-do-quick-nav { margin: 2rem 0 3rem; }
.things-to-do-quick-nav .btn { margin: 0 0.25rem 0.5rem 0; background: hsl(0, 0%, 95%); box-shadow: 0 0 0 0.125rem hsl(0, 0%, 90%); color: hsl(var(--bodyFontColor)); transition: all ease-in-out 0.4s; }
.things-to-do-quick-nav .btn.active { pointer-events: none; cursor: none; background-color: hsl(var(--siteColor1)); box-shadow: 0 0 0 0.125rem hsl(var(--siteColor1)); color: hsl(var(--white)); }
.things-to-do-quick-nav .btn:hover { background: hsl(var(--siteColor1)); box-shadow: 0 0 0 0.125rem hsl(var(--siteColor1)); color: hsl(var(--white)); }
.things-to-do-category-grid [class^=col] { display: flex; margin-bottom: 1.875rem; }
.things-to-do-category-grid .card { overflow: hidden; width: 100%; position: relative; border: none; border-radius: var(--borderRadius); box-shadow: var(--dropShadow); }
.things-to-do-category-grid .card:hover { box-shadow: var(--dropShadow), var(--dropShadow); }
.things-to-do-category-grid .card-img-wrap { overflow: hidden; display: block; background: hsl(var(--black)); }
.things-to-do-category-grid .card-img-top { opacity: 0.85; width: 100%; height: 15.625rem; object-fit: cover; transform: scale(1); transition: all ease-in-out 0.4s; }
.things-to-do-category-grid .card:hover .card-img-top { opacity: 1; transform: scale(1.2); }
.things-to-do-category-grid .card-body { display: flex; flex-direction: inherit; justify-content: space-between; padding: 1rem 1.25rem; background-color: hsl(var(--white)); }
.things-to-do-category-grid .card-text { margin: 0; }
.things-to-do-category-grid .card-title { font-weight: var(--wMedium); }
.things-to-do-category-grid .btn { display: block; margin-top: 0.9375rem; background-color: hsl(var(--siteColor1)); border-radius: 0; color: hsl(var(--white)); font-weight: var(--wRegular); transition: all ease-in-out 0.4s; }
.things-to-do-category-grid .btn:hover { background-color: hsl(var(--siteColor2)); }
.things-to-do-category-grid .btn .icon { width: 1rem; height: 1rem; }

/* Things To Do - Collapsible Module */
.cms-things-to-do-collapse-wrap { margin: 1.5625rem 0; }
.cms-things-to-do-collapse-wrap .category { margin: 0 0 1.875rem; }
.cms-things-to-do-collapse-wrap .category .h2 { margin-bottom: 0.625rem; }
.cms-things-to-do-collapse-wrap .card-title { font-size: 1.75rem; }

/* Things To Do - Detail page */
.cms-things-to-do-detail-wrap { margin: 3.125rem 0; }
.cms-things-to-do-detail-wrap .card-img-wrap { overflow: hidden; width: 100%; max-width: 18.75rem; min-height: 18.75rem; margin: 0 auto 0.9375rem; padding-bottom: 65%; position: relative; border-radius: var(--borderRadius); box-shadow: var(--dropShadow); }
.cms-things-to-do-detail-wrap .card-img-wrap:before { content: ""; width: 100%; height: 100%; position: absolute; top: 0; left: 0; z-index: 1; background-image: linear-gradient(-45deg, hsla(0, 0%, 100%, 90%), hsla(0, 0%, 100%, 15%) 50%, hsla(0, 0%, 100%, 0) 60%); box-shadow: inset 0 0 0 0.0625rem hsla(0, 0%, 100%, 20%); border-radius: var(--borderRadius); }
.cms-things-to-do-detail-wrap .card-img-left { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; }
@media(min-width:578px){
  .cms-things-to-do-detail-wrap .card-img-wrap { max-width: 100%; min-height: 0; padding-bottom: 100%; }
}

.page-ttd .hero-img-wrap { display: flex; justify-content: center; align-items: center; }
.page-ttd .ttd-hero-section p.title { font-size: 50px; font-family: var(--siteFont1); font-weight: bold; color: hsl(var(--white)); text-shadow: 1px 1px 16px hsl(var(--black)); text-transform: uppercase; }
.page-ttd .ttd-hero-section p.subtitle { color: hsl(var(--white)); margin-bottom: 0; }
.page-ttd-categories .hero-quick-search-wrap.int,
.page-ttd-categories .hero-wrap.int,
.page-ttd .hero-quick-search-wrap.int { display: none; }
.page-ttd .i-content.int { padding-bottom: 0 !important; color: hsl(var(--siteColor1)); }
.page-ttd .hero-wrap.int .hero-img-wrap,
.page-ttd .hero-wrap .hero-img { height: 90vh; }
.page-ttd img.icons-ttd { width: 20px; margin-right: 5px; height: 15px; object-fit: contain; }
.page-ttd .icons-ttd.copper{ filter: invert(51%) sepia(24%) saturate(1181%) hue-rotate(337deg) brightness(93%) contrast(91%); }
.page-ttd .ttd-acc-btn:hover .icons-ttd.copper{ filter: invert(51%) sepia(24%) saturate(1181%) hue-rotate(337deg) brightness(100%) contrast(95%); }
.page-ttd .i-content.int { background: #CADED1; }
.page-ttd p.title-ttd { font-size: 2rem; font-family: var(--siteFont1); font-weight: 500; }
.page-ttd #ttd-accordion span.ttd-acc-title { color: hsl(var(--siteColor1)); }
.page-ttd #ttd-accordion .card .collapse { border-top: none; }
.page-ttd #ttd-accordion .card,
.page-ttd #ttd-accordion .card .card-header,
.page-ttd #ttd-accordion .card .card-header button { background: transparent !important; border-left: 0 !important; border-right: 0 !important; border-radius: 0 !important; border-bottom: 0 !important; }
.page-ttd #ttd-accordion .card .card-header button { padding: 0.9375rem 0; }
.page-ttd #ttd-accordion .card .card-header button:after { right: 0; }
.page-ttd .ttd-info:before { content: ''; background: url(/images/layout/Cabo-Luxury-TTD-BG.png); width: 100%; height: 100%; bottom: 0; position: absolute; z-index: 0; background-size: contain; background-repeat: no-repeat; opacity: 0.3; }
.page-ttd-categories .i-content.int > .container,
.page-ttd .i-content.int > .container { max-width: 100%; }
.page-ttd-categories .i-content.int > .container .col,
.page-ttd .i-content.int > .container .col { padding: 0; }
.page-ttd-categories .i-content.int { padding-bottom: 0; }
.page-ttd span.ttd-acc-left { display: flex; align-items: center; gap: 0.2rem; }

.page-ttd #services-grid { background: hsl(var(--white)); margin-top: 2rem; padding: 5rem 0; }
.page-ttd #services-grid .section-title{ font-weight: 600; text-transform: capitalize; }
.page-ttd #services-grid .svc-card{ position: relative; display: block; overflow: hidden; border-radius: 0; height: 440px; background: hsl(var(--black)); }
.page-ttd #services-grid .svc-card img{ position: absolute; inset: 0; width: 100%; height: 440px; object-fit: cover; transform: scale(1.02); transition: transform .45s ease, filter .45s ease; filter: brightness(0.9); }
.page-ttd #services-grid .svc-overlay{ position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.45) 0%, rgba(0,0,0,.15) 55%, rgba(0,0,0,0) 100%); pointer-events: none; }
.page-ttd #services-grid .svc-title{ position: absolute; font-family: var(--siteFont1); left: 16px; bottom: 14px; color: hsl(var(--white)); font-size: 1.05rem; font-weight: 500; text-shadow: 0 1px 2px rgba(0,0,0,.35); padding-right: 26px; }
.page-ttd #services-grid .svc-title::after{ content:"\2192"; margin-left: 1rem; font-size:1rem; line-height:1; color:hsl(var(--white)); opacity:.95; transform:translateX(0);transition:transform .35s ease, opacity .35s ease; }
.page-ttd #services-grid .svc-arrow{ position: absolute; right: 14px; bottom: 14px; color: hsl(var(--white)); font-size: 1rem; transition: transform .35s ease; }
.page-ttd #services-grid .svc-card:hover img{ transform: scale(1.08); filter: brightness(1); }
.page-ttd #services-grid .svc-card:hover .svc-arrow{ transform: translateX(4px); }

@media (min-width: 576px){
.page-ttd #services-grid .no-gutters-md > [class*="col-"]{ padding-left: 10px; padding-right: 10px; }
.page-ttd #services-grid .no-gutters-md{ margin-left: -10px; margin-right: -10px; }
}

@media (max-width: 400px){
.page-ttd #services-grid .svc-title{ font-size: .98rem; }
}

.page-ttd #svcxx .svcxx-panel{ background: #E3DDCF; color:hsl(var(--siteColor1)); padding:3rem 1.5rem; }
@media (min-width: 992px){
  .page-ttd #svcxx .svcxx-panel{ padding:5rem 3rem; }
}
.page-ttd #svcxx .svcxx-title{ font-weight:600; line-height:1.15; letter-spacing:.4px; text-transform: capitalize; font-size: 3rem; }
.page-ttd #svcxx .svcxx-intro{ color: hsl(var(--siteColor1)); max-width:60ch; }
.page-ttd #svcxx .svcxx-btn{ background: #c8744d; color:hsl(var(--white)); border-radius:0; font-family: var(--siteFont1); }
.page-ttd #svcxx .svcxx-btn:hover,
.page-ttd #svcxx .svcxx-btn:focus{ color:hsl(var(--siteColor1)); opacity:.95; }
.page-ttd #svcxx .svcxx-image-wrap{ width:100%; height:100%; background: hsl(var(--siteColor1)); }
.page-ttd #svcxx .svcxx-image{ width:100%; height:100%; object-fit:cover; display:block; }

@media (max-width: 991.98px){
  .page-ttd #svcxx .svcxx-image{ max-height:440px; }
}

.page-ttd-categories .title { font-size: 2.5rem; font-family: var(--siteFont1); }
.page-ttd-categories .subtitle { font-size: 1.3rem; font-family: var(--siteFont2); text-transform: initial;  }
.page-ttd-categories p { font-family: var(--siteFont3); }
.page-ttd-categories .i-header { position: relative; }
.page-ttd-categories h1.site-color-1 { display: none; }
.page-ttd-categories .hero-wrap.int .hero-img-wrap { height: auto; }

.dw-horizontal-tabs{ color:hsl(var(--white)); position:relative; padding:24px 0 5rem; background: url(/images/layout/Cabo-Luxury-TTD-Category-BG-Crafted.png), hsl(var(--siteColor1)); }
.dw-horizontal-tabs .dw-tabs-nav{border-bottom:0;margin-bottom:0; padding:0}
.dw-horizontal-tabs .dw-tabs-nav .nav-item{ flex: 1 0 auto; margin-right: 0px; text-align: center; }
.dw-horizontal-tabs .dw-tabs-nav .nav-link{border: 0.2px solid #E3DDCF; border-radius:0;padding:10px 18px;color:hsl(var(--siteColor5));background:hsl(var(--siteColor1)); font-family: var(--siteFont1);}
.dw-horizontal-tabs .dw-tabs-nav .nav-link:hover{background:rgba(255,255,255,.12);color:hsl(var(--white))}
.dw-horizontal-tabs .dw-tabs-nav .nav-link.active{background:hsl(var(--siteColor5));color:hsl(var(--white))}
.dw-horizontal-tabs .tab-content { padding: 2rem; border: 1px solid; margin-top: 0; }

.dw-horizontal-tabs .dw-title{font-size:2rem;line-height:1.2;margin:6px 0 6px;color:hsl(var(--white))}
.dw-horizontal-tabs .dw-subtitle{color:var(--white); margin:0 0 18px; font-family: var(--siteFont3); }
.dw-horizontal-tabs .dw-cta.btn{background:hsl(var(--siteColor5));color:hsl(var(--white));border:0;padding:10px 18px;border-radius:0px;font-weight:600; font-family: var(--siteFont1); letter-spacing:.5px}
.dw-horizontal-tabs .dw-cta.btn:hover{filter:brightness(.95)}

.dw-horizontal-tabs .dw-card{background:hsl(var(--white));border:0;box-shadow:0 10px 24px rgba(0,0,0,.25)}
.dw-horizontal-tabs .dw-card-img img{width:100%;height:240px;object-fit:cover;display:block}
.dw-horizontal-tabs .dw-card-body{ background:#E3DDCF; padding:18px 20px 22px; color:hsl(var(--siteColor1)); min-height: 30vh; }
.dw-horizontal-tabs .dw-card-title{ margin-bottom: 8px; color: hsl(var(--siteColor1)); font-family: var(--siteFont2); }
.dw-horizontal-tabs .dw-card-text{font-size:.92rem;color:#333;line-height:1.45}

@media (max-width:991.98px){.dw-horizontal-tabs .dw-title{font-size:1.75rem}}
@media (max-width:575.98px){.dw-horizontal-tabs .dw-card-img img{height:200px}}

.dw-vertical-tabs p.title { color: hsl(var(--siteColor1)); }
.dw-vertical-tabs .dv-intro-title{ color:hsl(var(--siteColor1)); font-size:2rem; font-weight:600; margin-bottom:.25rem; }
.dw-vertical-tabs .dv-intro-title em{font-weight:400;font-style:italic}
.dw-vertical-tabs .dv-intro-text{ color: hsl(var(--siteColor1)); }
.dw-vertical-tabs .dv-vtabs-wrap{ padding-right:18px}
.dw-vertical-tabs .dv-tabs-nav{ border:0}
.dw-vertical-tabs .dv-tabs-nav .nav-link{ border:0; border-radius:0; padding:.4rem 0; margin:.15rem 0; color:hsl(var(--siteColor5)); text-transform:uppercase; letter-spacing:.04em; background:transparent; }
.dw-vertical-tabs .dv-tabs-nav .nav-link:hover{ opacity:.8}
.dw-vertical-tabs .dv-tabs-nav .nav-link.active{ color:hsl(var(--siteColor5)); text-decoration: underline; }
.dw-vertical-tabs .dv-indicator{ position:absolute; right:0; width:3px; height:30px; background:hsl(var(--siteColor5)); border-radius:3px; top:0; transition:top .25s ease; }
.dw-vertical-tabs .dv-pane-title{color:hsl(var(--siteColor1)); font-size:2rem; margin-bottom:.35rem}
.dw-vertical-tabs .dv-pane-text{color:hsl(var(--siteColor1)); max-width:60ch}
.dw-vertical-tabs .dv-cta.btn{ background:hsl(var(--siteColor1)); color:hsl(var(--white)); border:0; padding:.55rem 1.1rem; border-radius: 0; font-family: var(--siteFont1); text-transform: capitalize; margin-bottom: 3rem; } 
.dw-vertical-tabs .dv-cta.btn:hover{filter:brightness(.95)}
.dw-vertical-tabs .dv-card{ background:#e8e2d6; border:0; box-shadow:0 12px 28px rgba(0,0,0,.15)}
.dw-vertical-tabs .dv-card-img img{width:100%; height:260px; object-fit:cover; display:block}
.dw-vertical-tabs .dv-card-body{background:#e8e2d6; padding:16px 18px}
.dw-vertical-tabs .dv-card-title{font-size:.95rem; letter-spacing:.06em; font-weight:700; color: hsl(var(--siteColor1)); margin-bottom:6px; font-family: var(--siteFont2);}
.dw-vertical-tabs .dv-card-text{font-size:.95rem; color: hsl(var(--siteColor1)); margin:0}
.hero-wrap.int { height: auto; }
.dw-culinary-swiper .swiper-slide { height: auto; }
.dw-culinary-swiper .swiper-slide > a { display: block; height: 100%; }
.dw-culinary-swiper .dw-card { height: 100%; }
.dv-things-swiper .swiper-slide { height: auto; }
.dv-things-swiper .swiper-slide > a { display: block; height: 100%; }
.dv-things-swiper .dv-card { height: 100%; }
.dw-horizontal-tabs .swiper-button-prev, .dw-horizontal-tabs .swiper-button-next { top: 22%; }
@media (max-width: 1024px){
  .page-ttd .ttd-hero-section p.title { font-size: 30px; }
  .dw-vertical-tabs .dv-tabs-nav { flex-direction: row !important; }
  .dv-vtabs-wrap li.nav-item { flex: 1 0 auto; text-align: center; }
  .dw-vertical-tabs .dv-tabs-nav .nav-link { border: 0.2px solid #E3DDCF; padding: 10px 18px; }
  .dw-vertical-tabs .dv-indicator { display: none; }
  .dw-vertical-tabs .dv-cta.btn { margin-bottom: 1rem; }
  .dw-horizontal-tabs p.w-50 { width: 100% !important; }
  .page-ttd .hero-wrap.int .hero-img-wrap, .page-ttd .hero-wrap .hero-img,
  .hero-wrap.int { height: 55vh !important; }
}

@media (max-width: 991.98px){
  .dw-vertical-tabs .dv-pane-title{font-size:1.75rem}
}
@media (max-width: 767.98px){
  .dw-vertical-tabs .dv-card-img img{height:220px}
}

.dw-concierge-cta .dv-left-img{ height:100%; min-height:260px; position: relative; overflow: hidden; }
.dw-concierge-cta .dv-left-img img{ width:100%; height:100%; object-fit: cover; object-position: center; display:block; }
.dw-concierge-cta .dv-right{ background: var(--dv-bg); height: 100%; display:flex; align-items:center; padding: 28px 0; }
.dw-concierge-cta .dv-inner{ position: relative; z-index: 2; }
.dw-concierge-cta .dv-cta{ background: hsl(var(--siteColor1)); color:hsl(var(--white)); border:0; border-radius:2px; padding: .6rem 1.25rem; font-family: var(--siteFont1); }
.dw-concierge-cta .dv-cta:hover{ filter: brightness(.95); color:hsl(var(--white)); }
.dw-concierge-cta .dv-right{ padding: 42px 0; background: url(/images/layout/Cabo-Luxury-TTD-Category-CTA-BG.png), #CADED1; background-size: contain; background-repeat: no-repeat; background-position: right; }
.dw-concierge-cta .dv-dashed-box{ padding: 28px 28px 30px; }

.ttd-categories-intro video { object-fit: cover; }

.dw-horizontal-tabs .tab-content > .tab-pane,
.dw-vertical-tabs .tab-content > .tab-pane { display: none; }

.dw-horizontal-tabs .tab-content > .tab-pane.active,
.dw-vertical-tabs .tab-content > .tab-pane.active { display: block; }