/*
 * Sky Worth Holidays - Global Responsive & Spacing Polish v1
 * Loaded last so it safely normalizes spacing/responsiveness
 * without rewriting existing templates.
 */

html{
  overflow-x:hidden;
}

body{
  overflow-x:hidden;
}

img,
svg,
video,
iframe{
  max-width:100%;
}

input,
select,
textarea,
button{
  max-width:100%;
}

.container,
.swhp-wrap{
  width:min(1200px,calc(100% - 40px));
  margin-left:auto;
  margin-right:auto;
}

/* ---------------------------------------------------------
   Global vertical rhythm
--------------------------------------------------------- */
.section{
  padding:68px 0;
}

.swhp-section{
  padding:64px 0;
}

.section-head{
  gap:22px;
  margin-bottom:26px;
}

.section-title{
  margin-top:5px;
  margin-bottom:9px;
}

.section-subtitle{
  line-height:1.65;
}

.page-hero{
  padding:52px 0 34px;
}

.page-hero .section-title{
  margin-bottom:8px;
}

.content-box,
.guide-section{
  padding:23px;
  margin-bottom:18px;
}

.content-box:last-child,
.guide-section:last-child{
  margin-bottom:0;
}

/* avoid accidental giant gaps from empty paragraphs */
.entry-content > p:empty,
.swhp-richtext > p:empty,
.swhp-article-content > p:empty{
  display:none;
}

/* ---------------------------------------------------------
   Header / breadcrumbs
--------------------------------------------------------- */
.header-row{
  min-height:76px;
}

.site-brand .custom-logo{
  max-width:250px;
  max-height:58px;
  width:auto;
  height:auto;
}

.breadcrumbs{
  padding:9px 0;
}

.breadcrumbs ol{
  row-gap:4px;
}

/* ---------------------------------------------------------
   Homepage cards / generic cards
--------------------------------------------------------- */
.cards{
  gap:20px;
}

.package-card{
  height:100%;
  display:flex;
  flex-direction:column;
}

.package-body{
  padding:18px;
  flex:1;
  display:flex;
  flex-direction:column;
}

.package-card h3,
.package-card h2{
  margin:7px 0;
  line-height:1.28;
}

.package-card p{
  margin-bottom:13px;
  line-height:1.55;
}

.package-bottom{
  width:100%;
  margin-top:auto;
  padding-top:14px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:center;
}

.package-bottom .price{
  min-width:0;
}

.package-bottom .price strong{
  line-height:1.2;
  overflow-wrap:anywhere;
}

.package-bottom .btn{
  min-width:108px;
  min-height:42px;
  padding:0 17px;
  white-space:nowrap;
  flex:none;
}

.destination-grid{
  gap:16px;
}

.feature-cards,
.steps,
.blog-grid{
  gap:18px;
}

.feature-card,
.step{
  height:100%;
}

/* ---------------------------------------------------------
   Archive filters / pagination
--------------------------------------------------------- */
.archive-tools{
  gap:9px;
  margin-bottom:24px;
  padding:10px;
}

.archive-tools input,
.archive-tools select{
  min-width:170px;
}

.nav-links,
.swhp-pagination{
  margin-top:26px;
}

/* ---------------------------------------------------------
   Package detail
--------------------------------------------------------- */
.package-hero{
  padding:42px 0 32px;
}

.package-hero-grid{
  gap:25px;
}

.package-layout{
  gap:26px;
}

.cover{
  margin-bottom:18px;
}

.tabs-nav{
  margin-bottom:18px;
}

.basic-grid,
.destination-basic-info{
  min-width:0;
}

.two-col{
  gap:18px;
}

.gallery-grid{
  gap:9px;
}

.inquiry-card{
  padding:21px;
}

.form-grid{
  gap:9px;
}

.form-row{
  gap:8px;
}

/* ---------------------------------------------------------
   Destination detail
--------------------------------------------------------- */
.destination-detail-hero .container{
  padding-bottom:42px;
}

.destination-detail-layout{
  gap:26px;
}

.destination-gallery-featured{
  margin-bottom:18px;
}

.good-to-know{
  gap:9px;
}

.destination-info-grid{
  gap:15px;
}

/* ---------------------------------------------------------
   About / Content Pages
--------------------------------------------------------- */
.swhp-hero{
  min-height:330px;
}

.swhp-hero-inner{
  padding:58px 0 44px;
}

.swhp-heading{
  margin-bottom:24px;
}

.swhp-about-grid,
.swhp-story-grid{
  gap:48px;
}

.swhp-feature-grid{
  gap:14px;
}

.swhp-feature-card{
  padding:20px;
}

.swhp-stats-band{
  padding:34px 0;
}

.swhp-cta{
  padding:32px;
  gap:24px;
}

/* ---------------------------------------------------------
   Contact page
--------------------------------------------------------- */
.swhp-contact-layout{
  gap:38px;
}

.swhp-contact-cards{
  gap:10px;
  margin-top:21px;
}

.swhp-contact-card{
  min-width:0;
}

.swhp-contact-card strong{
  overflow-wrap:anywhere;
}

.swhp-contact-note{
  margin-top:15px;
}

.swhp-contact-form-card{
  padding:21px;
}

.swhp-link-grid{
  gap:13px;
}

/* ---------------------------------------------------------
   Travel Guides / Articles
--------------------------------------------------------- */
.swhp-guide-grid,
.swhp-guide-grid.compact{
  gap:20px;
}

.swhp-guide-card{
  height:100%;
  display:flex;
  flex-direction:column;
}

.swhp-guide-body{
  flex:1;
  display:flex;
  flex-direction:column;
  padding:17px;
}

.swhp-guide-body p{
  flex:1;
}

.swhp-read{
  margin-top:auto;
}

.swhp-article-header{
  padding:56px 0 42px;
}

.swhp-article-layout{
  gap:38px;
}

.swhp-article-featured{
  margin-bottom:25px;
}

.swhp-article-content{
  line-height:1.78;
}

.swhp-article-content h2{
  margin-top:30px;
  margin-bottom:12px;
}

.swhp-article-content h3{
  margin-top:24px;
  margin-bottom:10px;
}

/* ---------------------------------------------------------
   Footer / CTA / floating actions
--------------------------------------------------------- */
.site-footer{
  padding-top:52px;
}

.footer-grid{
  gap:28px;
}

.footer-bottom{
  margin-top:30px;
}

.cta{
  padding:38px;
  gap:22px;
}

.float-actions{
  right:16px;
  bottom:16px;
}

/* ---------------------------------------------------------
   Tablet
--------------------------------------------------------- */
@media (max-width:1060px){
  .section{
    padding:58px 0;
  }

  .swhp-section{
    padding:56px 0;
  }

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

  .package-layout,
  .package-hero-grid,
  .destination-detail-layout,
  .swhp-article-layout{
    grid-template-columns:1fr;
  }

  .inquiry-card,
  .destination-side,
  .swhp-contact-form-card,
  .swhp-article-side{
    position:static;
    top:auto;
  }

  .swhp-about-grid,
  .swhp-story-grid,
  .swhp-contact-layout{
    gap:30px;
  }

  .footer-grid{
    grid-template-columns:1.35fr 1fr 1fr;
  }

  .footer-grid > :last-child{
    grid-column:1/-1;
  }
}

/* ---------------------------------------------------------
   Small tablet / large mobile
--------------------------------------------------------- */
@media (max-width:780px){
  .container,
  .swhp-wrap{
    width:calc(100% - 30px);
  }

  .section{
    padding:50px 0;
  }

  .swhp-section{
    padding:48px 0;
  }

  .page-hero{
    padding:42px 0 28px;
  }

  .section-head{
    margin-bottom:21px;
  }

  .section-title{
    font-size:clamp(28px,7vw,38px);
  }

  .cards,
  .blog-grid,
  .swhp-guide-grid,
  .swhp-guide-grid.compact{
    grid-template-columns:1fr 1fr;
    gap:15px;
  }

  .destination-info-grid{
    grid-template-columns:1fr;
  }

  .archive-tools{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .archive-tools input{
    grid-column:1/-1;
    width:100%;
  }

  .archive-tools select,
  .archive-tools .btn{
    width:100%;
    min-width:0;
  }

  .swhp-contact-layout{
    grid-template-columns:1fr;
  }

  .swhp-contact-form-card{
    margin-top:2px;
  }

  .swhp-cta,
  .cta{
    padding:28px;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr;
    gap:24px;
  }

  .footer-grid > :last-child{
    grid-column:auto;
  }
}

/* ---------------------------------------------------------
   Mobile
--------------------------------------------------------- */
@media (max-width:650px){
  .container,
  .swhp-wrap{
    width:calc(100% - 26px);
  }

  .section{
    padding:44px 0;
  }

  .swhp-section{
    padding:43px 0;
  }

  .page-hero{
    padding:34px 0 23px;
  }

  .header-row{
    min-height:66px;
  }

  .site-brand .custom-logo{
    max-width:118px;
    max-height:42px;
  }

  .breadcrumbs{
    padding:7px 0;
  }

  .breadcrumbs ol{
    font-size:10px;
  }

  .section-head{
    gap:8px;
    margin-bottom:19px;
  }

  .section-title{
    margin-bottom:6px;
  }

  .cards,
  .blog-grid,
  .swhp-guide-grid,
  .swhp-guide-grid.compact{
    grid-template-columns:1fr;
    gap:14px;
  }

  .package-thumb{
    aspect-ratio:16/9.5;
  }

  .package-body{
    padding:16px;
  }

  .package-card h3,
  .package-card h2{
    font-size:19px;
  }

  .package-bottom{
    gap:10px;
  }

  .package-bottom .btn{
    min-width:100px;
    min-height:40px;
    padding:0 14px;
    font-size:12px;
  }

  .package-hero{
    padding:32px 0 24px;
  }

  .package-hero h1{
    font-size:clamp(32px,9vw,43px);
  }

  .package-layout,
  .package-hero-grid{
    gap:20px;
  }

  .content-box,
  .guide-section{
    padding:18px;
    margin-bottom:14px;
  }

  .content-box h2,
  .guide-section h2{
    font-size:22px;
  }

  .tabs-nav{
    gap:6px;
    margin-bottom:14px;
  }

  .tabs-nav a{
    padding:7px 10px;
    font-size:10px;
  }

  .two-col,
  .form-row,
  .basic-grid,
  .destination-basic-info,
  .destination-lists{
    grid-template-columns:1fr;
  }

  .gallery-grid{
    grid-template-columns:1fr 1fr;
  }

  .destination-gallery-featured{
    gap:7px;
  }

  .good-to-know{
    grid-template-columns:1fr 1fr;
    gap:7px;
  }

  .inquiry-card{
    padding:18px;
  }

  .swhp-hero{
    min-height:280px;
  }

  .swhp-hero-inner{
    padding:42px 0 31px;
  }

  .swhp-hero h1{
    font-size:clamp(33px,9vw,40px);
  }

  .swhp-about-grid,
  .swhp-story-grid{
    gap:24px;
  }

  .swhp-about-media,
  .swhp-about-media img,
  .swhp-about-placeholder{
    min-height:300px;
  }

  .swhp-feature-grid,
  .swhp-contact-cards,
  .swhp-link-grid{
    grid-template-columns:1fr;
    gap:10px;
  }

  .swhp-feature-card{
    padding:17px;
  }

  .swhp-stats-band{
    padding:27px 0;
  }

  .swhp-contact-form-card{
    padding:17px;
  }

  .swhp-guide-body{
    padding:15px;
  }

  .swhp-article-header{
    padding:39px 0 30px;
  }

  .swhp-article-header h1{
    font-size:clamp(31px,9vw,39px);
  }

  .swhp-article-featured{
    margin-bottom:20px;
    border-radius:17px;
  }

  .swhp-article-content{
    font-size:14px;
    line-height:1.72;
  }

  .swhp-article-content h2{
    font-size:23px;
    margin-top:25px;
  }

  .swhp-article-content h3{
    font-size:19px;
    margin-top:21px;
  }

  .swhp-cta,
  .cta{
    padding:23px;
    border-radius:19px;
  }

  .site-footer{
    padding-top:42px;
  }

  .footer-grid{
    grid-template-columns:1fr;
    gap:22px;
  }

  .footer-bottom{
    margin-top:24px;
  }

  .float-actions{
    right:12px;
    bottom:12px;
  }

  .float-actions a{
    width:46px;
    height:46px;
  }
}

/* ---------------------------------------------------------
   Narrow phones
--------------------------------------------------------- */
@media (max-width:430px){
  .archive-tools{
    grid-template-columns:1fr;
  }

  .archive-tools input{
    grid-column:auto;
  }

  .package-bottom{
    grid-template-columns:1fr;
    align-items:stretch;
  }

  .package-bottom .btn{
    width:100%;
    min-width:0;
  }

  .price{
    text-align:left;
  }

  .gallery-grid{
    gap:7px;
  }

  .good-to-know{
    grid-template-columns:1fr;
  }

  .swhp-stats-grid{
    grid-template-columns:1fr 1fr;
  }

  .swhp-cta-actions{
    width:100%;
  }

  .swhp-cta-actions .swhp-btn{
    width:100%;
  }
}
/* =========================================================
   Tour Packages archive - spacing + compact Book Now button
   ========================================================= */

body.post-type-archive-tour_package .page-hero{
  padding-top:38px;
  padding-bottom:18px;
}

body.post-type-archive-tour_package .page-hero + .section{
  padding-top:28px;
  padding-bottom:54px;
}

body.post-type-archive-tour_package .archive-tools{
  margin-bottom:18px;
}

body.post-type-archive-tour_package .cards{
  row-gap:18px;
}

body.post-type-archive-tour_package .package-body{
  padding:15px 15px 14px;
}

body.post-type-archive-tour_package .package-card h3,
body.post-type-archive-tour_package .package-card h2{
  margin:6px 0;
}

body.post-type-archive-tour_package .package-bottom{
  margin-top:auto;
  padding-top:11px;
  gap:10px;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:end;
}

body.post-type-archive-tour_package .package-bottom .btn{
  width:auto!important;
  min-width:84px!important;
  min-height:36px!important;
  height:36px;
  padding:0 13px!important;
  border-radius:999px;
  font-size:10.5px!important;
  line-height:1;
  white-space:nowrap;
}

body.post-type-archive-tour_package .package-bottom .price small{
  font-size:9px;
  line-height:1.2;
}

body.post-type-archive-tour_package .package-bottom .price strong{
  font-size:18px;
  line-height:1.1;
}

/* keep generic package buttons compact everywhere too */
.package-card .package-bottom .btn{
  width:auto;
  min-width:88px;
  min-height:38px;
  height:38px;
  padding:0 14px;
  font-size:11px;
  white-space:nowrap;
}

@media(max-width:900px){
  body.post-type-archive-tour_package .page-hero{
    padding-top:32px;
    padding-bottom:16px;
  }

  body.post-type-archive-tour_package .page-hero + .section{
    padding-top:24px;
    padding-bottom:46px;
  }

  body.post-type-archive-tour_package .package-bottom .btn{
    min-width:82px!important;
    min-height:36px!important;
    height:36px;
    padding:0 12px!important;
  }
}

@media(max-width:650px){
  body.post-type-archive-tour_package .page-hero{
    padding-top:26px;
    padding-bottom:14px;
  }

  body.post-type-archive-tour_package .page-hero + .section{
    padding-top:20px;
    padding-bottom:38px;
  }

  body.post-type-archive-tour_package .archive-tools{
    margin-bottom:14px;
  }

  body.post-type-archive-tour_package .package-body{
    padding:14px;
  }

  body.post-type-archive-tour_package .package-bottom{
    grid-template-columns:minmax(0,1fr) max-content!important;
    gap:8px;
  }

  body.post-type-archive-tour_package .package-bottom .btn,
  .package-card .package-bottom .btn{
    width:auto!important;
    min-width:78px!important;
    min-height:34px!important;
    height:34px!important;
    padding:0 11px!important;
    font-size:10px!important;
    justify-self:end;
  }

  body.post-type-archive-tour_package .package-bottom .price strong{
    font-size:17px;
  }
}

@media(max-width:360px){
  body.post-type-archive-tour_package .package-bottom{
    grid-template-columns:1fr;
  }

  body.post-type-archive-tour_package .package-bottom .btn{
    justify-self:start;
  }
}
