/* =========================================================
   AST Design – Clean Additional CSS (Final)
   ========================================================= */

/* =========================
   2) CORE AST CONTENT
   ========================= */

.ast-section {
  margin: 2.5em 0;
  padding: 0 1em;
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.ast-section h2 {
  margin: 0 0 0.75em;
  border-bottom: 2px solid #ddd;
  padding-bottom: 0.45em;
}

.ast-section h3 {
  margin-top: 1.6rem;
}

.ast-section > h2:first-child,
.ast-section > h3:first-child {
  margin-top: 0;
}


/* =========================
   3) OVERVIEW / CARD GRID
   ========================= */

.overview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1em;
  align-items: stretch;
  margin-top: 1rem;
}

.app-card {
  display: block;
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 15px;
  background: #fff;
  text-decoration: none;
  transition: all 0.2s ease;
}

.app-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.08);
}


/* =========================
   4) TABLE FIX
   ========================= */

.table-wrapper {
  overflow-x: auto;
  margin: 1.5em 0;
}

.fit-table {
  width: 100%;
  border-collapse: collapse;
  min-width: 600px;
}

.fit-table th,
.fit-table td {
  padding: 10px;
  border: 1px solid #ddd;
  text-align: left;
}

.fit-table th {
  background-color: #f5f5f5;
}


/* =========================
   5) RUPERT BOX
   ========================= */

.rupert-box {
  border: 2px solid #ccc;
  border-radius: 12px;
  padding: 20px;
  margin: 20px 0;
  background-color: #fafafa;
  box-shadow: 0 2px 6px rgba(0,0,0,0.08);
}

/* Centre heading */

.rupert-box h2 {
  text-align: center;
}

/* Header layout */

.rupert-box .rupert-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  margin-bottom: 15px;
}

/* Desktop image size */

.rupert-box .rupert-header img,
.rupert-box .rupert-image {
  max-height: 175px;
  width: auto;
  height: auto;
  display: block;
  margin: 0 auto;
}

/* Mobile image size */

@media (max-width: 768px) {

  .rupert-box .rupert-header img,
  .rupert-box .rupert-image {
    max-height: 175px;
  }
}

/* List styling */

.rupert-box .rupert-list {
  list-style-type: disc;
  padding-left: 20px;
}


/* =========================
   6) LINKS
   ========================= */

/* Sitewide link styling */

a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

a:hover {
  text-decoration: underline;
  text-decoration-thickness: 2px;
}


/* =========================
   7) IMAGES
   ========================= */

.ast-section img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}


/* =========================
   8) MOBILE IMPROVEMENTS
   ========================= */

@media (max-width: 768px) {

  .ast-section {
    padding: 0 0.8em;
  }

  .fit-table {
    min-width: 500px;
  }
}


/* =========================
   9) HIDE SIDEBAR ON MOBILE
   ========================= */

@media (max-width: 768px) {

  #secondary,
  .sidebar-main,
  .ast-right-sidebar,
  .widget-area {
    display: none !important;
  }

  #primary,
.content-area,
.site-content {
    width: auto !important;
    max-width: 100% !important;
    box-sizing: border-box;
}
}

/* =========================
   10) SOCIAL ICONS
   ========================= */

.ast-header-icons {
    display: flex;
    align-items: center;
    gap: 18px;
}

.ast-header-icons a,
.ast-header-icons button {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    padding: 0;
    margin: 0;
    cursor: pointer;
    text-decoration: none;
}

.ast-header-icons img {
    width: 40px;
    height: 40px;
    display: block;
}
/* =========================
   11) Hide Category Tags
   ========================= */
/* Hide category badges sitewide */
.post-categories,
.cat-links,
.entry-categories,
.entry-category,
.entry-cats,
.category-links,
a[rel="category tag"] {
    display: none !important;
}


/* =========================
   12) Direct Ferries Mobile Widget Fix
   ========================= */
/* Increase Direct Ferries widget height on mobile devices
   to prevent search buttons and extra passenger/vehicle
   fields from being cut off */

@media (max-width: 768px) {

    iframe#dealFinder,
    iframe[src*="wiz.directferries.com/partners/deal_finder_iframe.aspx"] {
        width: 100% !important;
        max-width: 100% !important;
        height: 750px !important;
        min-height: 750px !important;
    }

}

/* =========================
   13) Alps2Alps Box
   ========================= */

.ast-plan-route-box {
  margin: 32px 0;
  padding: 22px;
  border: 2px solid #d7e5f7;
  border-radius: 14px;
  background: #f8fbff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.ast-plan-route-inner {
  max-width: 900px;
  margin: 0 auto;
}

.ast-plan-route-box h2 {
  margin-top: 0;
}

.ast-alps2alps-widget {
  margin-top: 18px;
  overflow: visible;
}



.main-navigation ul li a {
    font-size: 15px;
    padding-left: 10px;
    padding-right: 10px;
}

/* =========================
   Dynamic CTA Box For Tags
   ========================= */
.ast-tag-cta-box {
    margin: 40px 0;
    padding: 28px;
    border-radius: 18px;
    background: linear-gradient(135deg, #f7fbff 0%, #eef6ff 100%);
    border: 1px solid #d7e7f7;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
}

.ast-tag-cta-kicker {
    margin: 0 0 6px;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #2563eb;
}

.ast-tag-cta-box h2 {
    margin: 0 0 8px;
    font-size: 24px;
}

.ast-tag-cta-box p {
    margin: 0 0 18px;
}

.ast-tag-cta-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ast-tag-cta-button {
    display: inline-block;
    padding: 11px 17px;
    border-radius: 999px;
    background: #142033;
    color: #fff !important;
    text-decoration: none;
    font-weight: 700;
    box-shadow: 0 4px 10px rgba(20, 32, 51, 0.18);
}

.ast-tag-cta-button:hover {
    transform: translateY(-1px);
    opacity: 0.92;
}

/* =====================================================
   AST Travel Guide Desktop Styling
   ===================================================== */

/* Improve paragraph rhythm */
    .single-post .entry-content p {
        margin-bottom: 1.45em;
    }

    /* Stronger editorial section headings */
    .single-post .entry-content h2 {
        position: relative;
        margin-top: 2.8em;
        margin-bottom: 0.8em;
        padding: 15px 18px 15px 24px;
        font-size: 32px;
        line-height: 1.22;
        letter-spacing: -0.4px;
        background: #f7f7f7;
        border-left: 5px solid #222;
        border-radius: 0 8px 8px 0;
    }

    /* Keep the opening editorial heading slightly cleaner */
    .single-post .entry-content h2:first-child {
        margin-top: 0;
        background: transparent;
        border-left: 0;
        border-bottom: 3px solid #222;
        border-radius: 0;
        padding: 0 0 14px 0;
    }

    /* Replace weak short dividers with a wider subtle rule */
    .single-post .entry-content hr {
        width: 90%;
        height: 1px;
        border: 0;
        margin: 45px 0;
        background: linear-gradient(
            to right,
            transparent,
            #bcbcbc 12%,
            #bcbcbc 88%,
            transparent
        );
    }

    /* Make bold text feel intentional without becoming too heavy */
    .single-post .entry-content strong {
        font-weight: 700;
        color: #181818;
    }

    /* Improve links inside article copy */
    .single-post .entry-content a {
        text-decoration-thickness: 2px;
        text-underline-offset: 3px;
    }

    .single-post .entry-content th {
        padding: 14px 16px;
        text-align: left;
        background: #222;
        color: #fff;
    }

    .single-post .entry-content td {
        padding: 13px 16px;
        border-top: 1px solid #e6e6e6;
    }

    .single-post .entry-content tr:nth-child(even) td {
        background: #fafafa;
    }

body,
button,
input,
select,
textarea,
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Roboto", sans-serif !important;
}

/*
=========================================================
AST SIDEBAR ARCHIVE CTA
=========================================================

Compact sidebar version of the AppSavvyTraveller
dynamic archive box.

Features:
• Compact layout
• Two buttons per row
• Responsive
• One button per row only on ultra-small screens
=========================================================
*/

.ast-sidebar-archive-cta {
    width:100%;
    max-width:100%;
    margin:0 0 22px;
    clear:both;
    box-sizing:border-box;
    font-family:inherit;
}

.ast-sidebar-archive-box{
    position:relative;
    overflow:hidden;
    padding:18px 14px 16px;
    border:1px solid rgba(37,99,235,.18);
    border-radius:16px;
    background:
        radial-gradient(circle at top right,
        rgba(37,99,235,.13),
        transparent 30%),
        linear-gradient(
        145deg,
        #fff 0%,
        #f7faff 55%,
        #eef5ff 100%);
    box-shadow:
        0 10px 24px rgba(15,23,42,.09),
        0 2px 6px rgba(15,23,42,.04);
}

.ast-sidebar-archive-content{
    position:relative;
    z-index:2;
    text-align:center;
}

/* Decorative circles */

.ast-sidebar-decoration{
    position:absolute;
    border-radius:999px;
    pointer-events:none;
}

.ast-sidebar-decoration-one{
    width:105px;
    height:105px;
    top:-62px;
    right:-38px;
    background:rgba(37,99,235,.08);
}

.ast-sidebar-decoration-two{
    display:none;
}

/* Branding */

.ast-sidebar-archive-icon{
    margin:0 auto 8px;
    text-align:center;
}

.ast-sidebar-archive-icon img{
    width:38px;
    height:38px;
    border-radius:9px;
    display:inline-block;
    box-shadow:0 6px 14px rgba(37,99,235,.16);
}

.ast-sidebar-archive-brand{
    margin:0 0 5px!important;
    color:#142033;
    font-size:21px;
    line-height:1.1;
    font-weight:900;
    letter-spacing:-.03em;
    text-align:center!important;
}

.ast-sidebar-archive-brand span{
    color:#2563eb;
}

.ast-sidebar-archive-kicker{
    margin:0 0 12px!important;
    color:#2563eb;
    font-size:16px;
    line-height:1.2;
    font-weight:900;
    text-align:center!important;
}

/* Hide description */

.ast-sidebar-archive-description{
    display:none;
}

/* Groups */

.ast-sidebar-archive-group{
    margin-top:12px;
}

.ast-sidebar-category-group{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid rgba(20,32,51,.10);
}

.ast-sidebar-archive-group-label{
    margin:0 0 8px!important;
    color:#738096;
    font-size:9px;
    line-height:1.3;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    text-align:center!important;
}

/* TWO BUTTONS PER ROW */

.ast-sidebar-archive-buttons{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
}

.ast-sidebar-archive-button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    min-height:40px;
    width:100%;
    padding:9px 8px;
    box-sizing:border-box;
    border-radius:11px;
    font-size:12px;
    line-height:1.25;
    font-weight:700;
    text-align:center;
    text-decoration:none!important;
    word-break:break-word;
    overflow-wrap:anywhere;
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.ast-sidebar-tag-button{
    color:#1748b8!important;
    background:#fff;
    border:1px solid rgba(37,99,235,.22);
    box-shadow:0 3px 8px rgba(37,99,235,.07);
}

.ast-sidebar-category-button{
    color:#fff!important;
    background:linear-gradient(135deg,#172238,#0f172a);
    border:1px solid #172238;
    box-shadow:0 4px 10px rgba(15,23,42,.15);
}

.ast-sidebar-archive-arrow{
    font-size:13px;
    line-height:1;
    flex:0 0 auto;
}

.ast-sidebar-archive-button:hover{
    transform:translateY(-2px);
}

.ast-sidebar-tag-button:hover{
    color:#fff!important;
    background:#2563eb;
    border-color:#2563eb;
}

.ast-sidebar-category-button:hover{
    color:#fff!important;
    background:linear-gradient(135deg,#2563eb,#1748b8);
    border-color:#2563eb;
}

/* Only switch to one column on very tiny screens */

@media (max-width:320px){

    .ast-sidebar-archive-buttons{
        grid-template-columns:1fr;
    }

}


.ast-about-guide-box {
    margin: 35px 0 25px;
    padding: 20px 22px;
    border: 1px solid #d6d6d6;
    border-radius: 12px;
    background: #fafafa;
    box-shadow: 0 2px 6px rgba(0,0,0,0.06);
    font-size: 0.95em;
    line-height: 1.6;
}

.ast-about-guide-title {
    margin: 0 0 14px;
    font-size: 1.2em;
    font-weight: 700;
}

.ast-about-guide-box p {
    margin: 0 0 10px;
}

.ast-about-guide-box p:last-child {
    margin-bottom: 0;
}

.ast-about-guide-meta {
    margin-bottom: 14px;
}

.ast-about-guide-meta p {
    margin: 0 0 3px;
}

.ast-about-guide-box a {
    font-weight: 600;
}

.ast-about-guide-correction {
    padding-top: 10px;
    margin-top: 12px !important;
    border-top: 1px solid #e1e1e1;
}