/* Aventureando — design tokens + component styles */
:root{
  --avt-bg:#F6F1E7;
  --avt-surface:#FFFFFF;
  --avt-ink:#22201B;
  --avt-ink-soft:#5B564C;
  --avt-accent:#C1633B;
  --avt-accent-dark:#A24E2C;
  --avt-brand:#1F4E4A;
  --avt-brand-dark:#163B38;
  --avt-line:#DDD3C0;
  --avt-sand-deep:#EDE4D3;
  --avt-radius:14px;
  --avt-radius-pill:999px;
  --avt-font-heading:'Fraunces', serif;
  --avt-font-body:'Work Sans', sans-serif;
}

/* Reset the bits GeneratePress/Elementor leave behind, scoped to our templates */
.avt{color:var(--avt-ink); font-family:var(--avt-font-body); background:var(--avt-bg);}
.avt :where(h1,h2,h3){font-family:var(--avt-font-heading); font-weight:600; margin:0; line-height:1.15;}
.avt :where(p){margin:0 0 16px; line-height:1.7;}
.avt :where(a){text-decoration:none; color:inherit;}
.avt :where(ul){margin:0; padding:0; list-style:none;}
.avt :where(button,input){font-family:var(--avt-font-body);}
.avt img{max-width:100%; display:block;}

.avt-wrap{max-width:1312px; margin:0 auto; padding:0 64px; box-sizing:border-box;}
.avt-wrap-narrow{max-width:960px; margin:0 auto; padding:0 24px; box-sizing:border-box;}
.avt-wrap-copy{max-width:760px; margin:0 auto; padding:0 24px; box-sizing:border-box;}

.avt-eyebrow{font-size:13px; font-weight:600; letter-spacing:0.06em; text-transform:uppercase; color:var(--avt-accent);}
.avt-section-head h2{font-size:30px; margin:6px 0 8px;}
.avt-section-head p{font-size:15px; color:var(--avt-ink-soft); max-width:640px;}

/* Placeholder photo block — shown until a real featured image is set */
.avt-ph{
  background:repeating-linear-gradient(135deg,#E4DCC8 0 12px,#ECE4D2 12px 24px);
  display:flex; align-items:center; justify-content:center;
  color:#8C8370; font-size:13px; text-align:center; padding:12px;
  border-radius:var(--avt-radius); box-sizing:border-box;
}

/* Header */
.avt-header{position:relative; z-index:20; width:100%; box-sizing:border-box;}
.avt-header--solid{background:var(--avt-bg); border-bottom:1px solid var(--avt-line);}
.avt-header--overlay{position:absolute; top:0; left:0; background:transparent; color:#fff;}
.avt-header-inner{display:flex; align-items:center; justify-content:space-between; height:88px; padding:0 64px; max-width:1400px; margin:0 auto; box-sizing:border-box;}
.avt-logo{display:flex; align-items:center; gap:10px;}
.avt-logo span{font-family:var(--avt-font-heading); font-weight:600; font-size:22px;}
.avt-header--overlay .avt-logo span,
.avt-header--overlay .avt-nav a{color:#fff;}
.avt-nav{display:flex; align-items:center; gap:32px;}
.avt-nav a{font-size:15px; font-weight:500; padding:8px 2px; border-bottom:2px solid transparent;}
.avt-nav a.is-active{border-color:currentColor;}
.avt-header-actions{display:flex; align-items:center; gap:16px;}
.avt-icon-btn{width:38px; height:38px; border-radius:50%; background:var(--avt-sand-deep); border:none; display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--avt-ink);}
/* Inside a flex container, Chrome/Safari ignore an inline <svg>'s width/height
   XML attributes when sizing it as a flex item and collapse it to 0px wide —
   a known SVG-in-flexbox quirk. That's why the search/menu icons rendered as
   fully empty circles (not a color or cache issue). Forcing the size via CSS
   and flex-shrink:0 makes the icon actually take up space and paint. */
.avt-icon-btn svg{width:20px; height:20px; flex-shrink:0;}
.avt-header--overlay .avt-icon-btn{background:rgba(255,255,255,0.16); color:#fff;}
/* GeneratePress's own `button{color:#fff}` reset was winning (equal specificity,
   declared later) over .avt-icon-btn's color above, and a stray `background:none`
   here was also winning over .avt-icon-btn's background — together they made the
   hamburger button fully transparent AND white-on-white: an invisible, unguessable
   tap target. Dropped both so it renders like its sibling search button. */
.avt-nav-toggle{display:none; border:none; cursor:pointer;}

.avt-nav-dropdown{position:relative; display:flex; align-items:center;}
.avt-nav-dropdown::after{content:''; position:absolute; top:100%; left:0; right:0; height:16px;}
.avt-nav-dropdown-toggle{background:none; border:none; cursor:pointer; padding:8px 4px; margin-left:-2px; display:flex; align-items:center; color:inherit;}
.avt-nav-caret{width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); display:inline-block; transition:transform .15s ease;}
.avt-nav-dropdown:hover .avt-nav-caret, .avt-nav-dropdown.is-open .avt-nav-caret{transform:rotate(-135deg);}
.avt-nav-submenu{display:none; position:absolute; top:100%; left:0; margin-top:16px; background:#fff; color:var(--avt-ink); border-radius:14px; box-shadow:0 18px 40px rgba(20,18,14,.18); padding:16px; grid-template-columns:repeat(3, 1fr); gap:2px 24px; z-index:60; min-width:580px;}
.avt-nav-submenu a{display:block; color:var(--avt-ink); font-size:14px; font-weight:400; padding:7px 10px; border-radius:8px; border:none; white-space:nowrap;}
.avt-header--overlay .avt-nav-submenu a{color:var(--avt-ink);}
.avt-nav-submenu a:hover{background:var(--avt-sand-deep); color:var(--avt-accent);}
.avt-nav-dropdown:hover .avt-nav-submenu, .avt-nav-dropdown.is-open .avt-nav-submenu{display:grid;}

@media (max-width: 900px){
  .avt-nav{display:none;}
  .avt-nav-toggle{display:flex;}
  .avt-header-inner{padding:0 24px;}
  .avt-nav-dropdown{display:block;}
  .avt-nav-dropdown:hover .avt-nav-submenu{display:none;}
  .avt-nav-submenu{position:static; box-shadow:none; background:transparent; padding:2px 0 6px 14px; margin-top:2px; grid-template-columns:1fr 1fr; min-width:0;}
  .avt-nav-dropdown.is-open .avt-nav-submenu{display:grid;}
  /* The open mobile flyout always gets a solid white background from JS,
     regardless of header variant — so its text must always be dark, even
     when the overlay header (transparent, white text) is what opened it. */
  .avt-header--overlay .avt-nav{color:var(--avt-ink);}
  .avt-header--overlay .avt-nav a{color:var(--avt-ink);}
  /* The caret button was a ~16x24px hit target, far below the ~44px minimum
     touch target, so taps meant for it routinely missed and either hit the
     "Hoteles" link instead (navigating away) or nothing at all. */
  .avt-nav-dropdown-toggle{min-width:44px; min-height:44px; justify-content:center; padding:8px;}
}

/* Buttons */
.avt-btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; border:none; cursor:pointer; font-weight:600; font-size:14px; padding:12px 24px; border-radius:var(--avt-radius-pill); white-space:nowrap;}
.avt-btn--primary{background:var(--avt-accent); color:#fff;}
.avt-btn--primary:hover{background:var(--avt-accent-dark);}
.avt-btn--outline{background:var(--avt-surface); color:var(--avt-ink); border:1px solid var(--avt-line);}
.avt-pill{font-size:13px; color:var(--avt-ink-soft); background:var(--avt-surface); border:1px solid var(--avt-line); padding:8px 16px; border-radius:var(--avt-radius-pill); display:inline-block;}
a.avt-pill:hover{color:var(--avt-accent); border-color:var(--avt-accent);}

/* Hero */
.avt-hero{position:relative; min-height:640px; overflow:hidden; display:flex; align-items:center;}
.avt-hero .avt-ph{position:absolute; inset:0; border-radius:0; font-size:14px;}
.avt-hero-scrim{position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,18,14,.62) 0%, rgba(20,18,14,.28) 55%, rgba(20,18,14,.12) 100%);}
.avt-hero-content{position:relative; padding:120px 64px 0; max-width:620px; color:#fff;}
.avt-hero-content .avt-eyebrow{color:#F4D9C7;}
.avt-hero-content h1{font-size:48px; color:#fff; margin:14px 0 16px;}
.avt-hero-content p{color:#EDE6D8; font-size:17px;}

.avt-searchbar{position:relative; z-index:5; max-width:1160px; margin:-56px auto 56px; background:#fff; border-radius:16px; box-shadow:0 18px 40px rgba(20,18,14,.18); display:flex; padding:16px 20px; gap:12px; box-sizing:border-box;}
/* Variante para cuando el buscador va justo bajo un avt-banner (mas bajo que el avt-hero de Home): el solape de -56px es demasiado en un banner corto y se come el texto, asi que aqui se reduce. */
.avt-searchbar.avt-searchbar--banner{margin-top:-30px;}
.avt-searchbar .field{flex:1; display:flex; flex-direction:column; gap:6px; padding:4px 16px; border-right:1px solid var(--avt-line);}
.avt-searchbar .field:last-of-type{border-right:none;}
.avt-searchbar label{font-size:12px; font-weight:600; color:var(--avt-ink-soft);}
.avt-searchbar input{border:none; outline:none; font-size:15px; background:transparent; color:var(--avt-ink);}

.avt-soon-strip{background:var(--avt-sand-deep); border-bottom:1px solid var(--avt-line); padding:16px 24px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; font-size:13px; color:var(--avt-ink-soft);}
.avt-soon-strip strong{text-transform:uppercase; letter-spacing:.05em; font-size:12px;}

/* USPs */
.avt-usps{display:flex; flex-wrap:wrap; gap:32px; justify-content:space-between; padding:48px 64px;}
.avt-usp{display:flex; align-items:center; gap:14px; max-width:280px;}
.avt-usp-icon{width:44px; height:44px; border-radius:50%; background:var(--avt-sand-deep); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.avt-usp strong{display:block; font-size:15px; font-weight:600;}
.avt-usp span{font-size:13px; color:var(--avt-ink-soft);}

/* Generic section */
.avt-section{padding:88px 64px;}
.avt-section--avt-surface{background:var(--avt-surface);}
.avt-section-top{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.avt-grid{display:grid; gap:24px; margin-top:28px;}
.avt-grid--3{grid-template-columns:repeat(3, minmax(0,1fr));}
.avt-grid--4{grid-template-columns:repeat(4, minmax(0,1fr));}
.avt-grid--6{grid-template-columns:repeat(6, minmax(0,1fr));}
@media (max-width: 1100px){ .avt-grid--3,.avt-grid--4,.avt-grid--6{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width: 640px){ .avt-grid--3,.avt-grid--4,.avt-grid--6{grid-template-columns:1fr;} .avt-section{padding:56px 24px;} .avt-wrap{padding:0 24px;} }

/* Cards */
.avt-card{background:var(--avt-surface); border:1px solid var(--avt-line); border-radius:var(--avt-radius); overflow:hidden;}
.avt-card-badge{position:absolute; top:12px; left:12px; background:rgba(34,32,27,.72); color:#fff; font-size:11px; font-weight:600; padding:5px 10px; border-radius:var(--avt-radius-pill);}
.avt-card-rank{position:absolute; top:14px; right:14px; background:var(--avt-accent); color:#fff; font-size:13px; font-weight:700; width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;}

.avt-hotel-card .avt-ph{height:210px; border-radius:0;}
.avt-hotel-card-body{padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px;}
.avt-hotel-card h3{font-size:17px;}
.avt-hotel-card .loc{display:flex; align-items:center; gap:5px; font-size:13px; color:var(--avt-ink-soft);}
.avt-hotel-card hr{border:none; border-top:1px solid var(--avt-line); margin:4px 0;}
.avt-hotel-card .row{display:flex; align-items:center; justify-content:space-between;}
.avt-hotel-card .price{font-size:12px; color:var(--avt-ink-soft);}
.avt-hotel-card .price strong{color:var(--avt-ink); font-size:14px;}
.avt-hotel-card .cta-link{font-size:13px; font-weight:600; color:var(--avt-brand); margin-top:2px; display:inline-block;}

.avt-hotel-list-card{position:relative; display:flex; min-height:268px;}
.avt-hotel-list-card .avt-ph{width:320px; flex-shrink:0; border-radius:0;}
.avt-hotel-list-card-body{flex-grow:1; padding:24px 28px; display:flex; flex-direction:column; gap:10px;}
.avt-hotel-list-card h3{font-size:20px;}
.avt-hotel-list-card .loc{display:flex; align-items:center; gap:5px; font-size:13px; color:var(--avt-ink-soft);}
.avt-hotel-list-card .desc{font-size:14px; color:var(--avt-ink-soft); line-height:1.55;}
.avt-hotel-list-card .amenities{display:flex; gap:8px; flex-wrap:wrap;}
.avt-hotel-list-card .amenities span{font-size:12px; color:var(--avt-ink-soft); background:var(--avt-sand-deep); padding:5px 11px; border-radius:var(--avt-radius-pill);}
.avt-hotel-list-card .foot{margin-top:auto; display:flex; align-items:center; justify-content:space-between;}
.avt-hotel-list-card .rating{display:flex; align-items:center; gap:6px; font-size:14px;}
.avt-hotel-list-card .price-cta{display:flex; align-items:center; gap:14px;}
.avt-hotel-list-card .price-cta .price{font-family:var(--avt-font-heading); font-weight:600; font-size:20px;}

.avt-destino-card{position:relative; height:340px; border-radius:var(--avt-radius); overflow:hidden; display:block;}
.avt-destino-card .avt-ph{position:absolute; inset:0; border-radius:0;}
.avt-destino-scrim{position:absolute; inset:0; background:linear-gradient(to top, rgba(20,18,14,.78), rgba(20,18,14,0) 55%);}
.avt-destino-info{position:absolute; left:20px; right:20px; bottom:18px; color:#fff;}
.avt-destino-info .city{font-family:var(--avt-font-heading); font-weight:600; font-size:20px;}
.avt-destino-info .meta{font-size:13px; color:#E9E2D3;}

.avt-hubdest-card{display:flex; flex-direction:column; height:300px;}
.avt-hubdest-card .avt-ph{height:168px; border-radius:0; flex-shrink:0;}
.avt-hubdest-card-body{padding:16px 18px; display:flex; flex-direction:column; gap:6px; flex-grow:1;}
.avt-hubdest-card .city{font-family:var(--avt-font-heading); font-weight:600; font-size:19px;}
.avt-hubdest-card .meta{font-size:13px; color:var(--avt-ink-soft);}
.avt-hubdest-card .cta-link{margin-top:auto; font-size:13px; font-weight:600; color:var(--avt-accent);}

.avt-categoria-card{display:flex; align-items:center; gap:16px; padding:20px; background:var(--avt-surface); border:1px solid var(--avt-line); border-radius:var(--avt-radius);}
.avt-categoria-card .avt-ph{width:92px; height:92px; flex-shrink:0; font-size:10px;}
.avt-categoria-card .label{font-family:var(--avt-font-heading); font-weight:600; font-size:17px; margin-bottom:5px;}
.avt-categoria-card p{font-size:13px; color:var(--avt-ink-soft); margin:0 0 8px;}
.avt-categoria-card .cta-link{font-size:13px; font-weight:600; color:var(--avt-accent);}

.avt-blog-card .avt-ph{height:200px; border-radius:0;}
.avt-blog-card-body{padding:20px;}
.avt-blog-card .cat{font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--avt-brand); background:var(--avt-sand-deep); padding:5px 10px; border-radius:var(--avt-radius-pill);}
.avt-blog-card h3{font-size:18px; line-height:1.3; margin:12px 0 8px;}
.avt-blog-card p{font-size:13px; color:var(--avt-ink-soft); margin:0 0 14px;}
.avt-blog-card .meta{display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#948C7A;}
.avt-blog-card .meta .more{font-weight:600; color:var(--avt-brand);}

.avt-star{fill:var(--avt-accent);}

/* Empty state */
.avt-empty{border:1px dashed var(--avt-line); border-radius:var(--avt-radius); padding:40px; text-align:center; color:var(--avt-ink-soft); font-size:14px; background:var(--avt-surface);}

/* Newsletter */
.avt-newsletter{background:linear-gradient(100deg, var(--avt-accent-dark), var(--avt-accent)); padding:48px 64px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;}
.avt-newsletter h2{font-size:26px; color:#fff; margin-bottom:8px;}
.avt-newsletter p{color:#FBE9DD; margin:0;}
.avt-newsletter form{display:flex; gap:10px; background:rgba(255,255,255,.14); padding:8px; border-radius:var(--avt-radius-pill);}
.avt-newsletter input{border:none; background:transparent; color:#fff; font-size:15px; padding:12px 16px; width:240px; outline:none;}
.avt-newsletter input::placeholder{color:#E9CBBA;}
.avt-newsletter button{background:#fff; color:var(--avt-accent-dark); border:none; font-weight:600; font-size:14px; padding:12px 24px; border-radius:var(--avt-radius-pill); cursor:pointer;}

/* Footer */
.avt-footer{background:var(--avt-brand-dark); color:#CFE3DE;}
.avt-footer a{color:#CFE3DE; font-size:14px;}
.avt-footer a:hover{color:#fff;}
.avt-footer-grid{display:grid; grid-template-columns:repeat(4, minmax(0,1fr)); gap:40px; padding:72px 64px 48px;}
.avt-footer-col-title{font-family:var(--avt-font-heading); font-weight:600; font-size:15px; color:#fff; margin:0 0 16px;}
.avt-footer-links{display:flex; flex-direction:column; gap:11px;}
.avt-footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding:22px 64px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; font-size:12px; color:#9DBEB6;}
@media (max-width: 900px){ .avt-footer-grid{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width: 640px){ .avt-footer-grid,.avt-footer-bottom{padding-left:24px; padding-right:24px;} }

/* Category/Hub banner */
.avt-banner{position:relative; min-height:320px; display:flex; align-items:center; overflow:hidden; max-width:1400px; margin:0 auto;}
@media (min-width: 1450px){ .avt-banner{ border-radius:var(--avt-radius, 14px); } }
.avt-banner .avt-ph{position:absolute; inset:0; border-radius:0;}
.avt-banner .avt-hero-img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:0;}
.avt-banner-content{position:relative; color:#fff; padding:36px 64px; display:flex; flex-direction:column; gap:14px;}
.avt-banner-content h1{font-size:38px; color:#fff; max-width:680px;}
.avt-banner-content p{color:#EDE6D8; font-size:15px; max-width:620px; margin:0;}
.avt-banner-breadcrumb{font-size:13px; color:#E9E2D3;}
.avt-banner-breadcrumb a{color:#E9E2D3;}
.avt-banner-meta{display:flex; gap:20px; font-size:14px; color:#E9E2D3;}

.avt-filters{background:var(--avt-surface); border-bottom:1px solid var(--avt-line); padding:16px 64px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;}

/* FAQ */
.avt-faq-item{padding:18px 0; border-bottom:1px solid var(--avt-line);}
.avt-faq-q{display:flex; justify-content:space-between; align-items:center; font-size:15px; font-weight:600; cursor:pointer; gap:16px;}
.avt-faq-q .sign{color:var(--avt-ink-soft); font-size:18px; flex-shrink:0;}
.avt-faq-item[open] .avt-faq-q .sign{color:var(--avt-accent);}
.avt-faq-a{font-size:14px; line-height:1.6; color:var(--avt-ink-soft); margin-top:10px; max-width:760px;}

/* FAQ accordion (details/summary), used on tipo_hotel pages */
.avt-faq-item summary{list-style:none;cursor:pointer;}
.avt-faq-item summary::-webkit-details-marker{display:none;}
.avt-faq-q{margin:0;}
.avt-faq-q .sign{display:inline-block;width:18px;text-align:center;}
.avt-faq-q .sign::before{content:'+';}
.avt-faq-item[open] .avt-faq-q .sign::before{content:'−';}
.avt-rich-content h3{font-size:20px;margin:28px 0 10px;}
.avt-rich-content h3:first-child{margin-top:0;}
.avt-rich-content p{font-size:15px;line-height:1.75;color:var(--avt-ink-soft);}
.avt-wrap-copy table{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px;}
.avt-wrap-copy table th,.avt-wrap-copy table td{border:1px solid var(--avt-line);padding:10px 12px;text-align:left;}
.avt-wrap-copy table th{background:var(--avt-sand-deep);font-family:var(--avt-font-heading);}
/* Related chips block */
.avt-chip-block h3{font-size:16px; font-weight:600; margin-bottom:14px; font-family:var(--avt-font-heading);}
.avt-chip-row{display:flex; gap:10px; flex-wrap:wrap;}

/* Blog single post */
.avt-post-head{padding:64px 0 32px;}
.avt-post-head .cat{font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--avt-brand); background:var(--avt-sand-deep); padding:6px 12px; border-radius:var(--avt-radius-pill);}
.avt-post-head h1{font-size:40px; margin:16px 0;}
.avt-post-meta{display:flex; align-items:center; gap:14px; flex-wrap:wrap; font-size:13px; color:var(--avt-ink-soft);}
.avt-post-meta .avatar{width:34px; height:34px; border-radius:50%;}
.avt-post-featured{margin-bottom:32px;}
.avt-post-featured .avt-ph{height:428px;}
.avt-post-body{font-size:16px; line-height:1.75; color:var(--avt-ink-soft);}
.avt-post-body h2{font-size:27px; margin:40px 0 12px; color:var(--avt-ink); font-family:var(--avt-font-heading);}
.avt-post-body h3{font-size:20px; margin:24px 0 10px; color:var(--avt-ink); font-family:var(--avt-font-heading);}
.avt-post-body img{border-radius:var(--avt-radius); margin:8px 0 24px;}
.avt-toc{border:1px solid var(--avt-line); border-radius:var(--avt-radius); padding:20px 24px; background:var(--avt-surface); margin-bottom:40px;}
.avt-toc-title{font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--avt-ink-soft); margin-bottom:12px;}
.avt-cta-box{background:var(--avt-brand); border-radius:16px; padding:28px 32px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; margin:32px 0;}
.avt-cta-box .title{font-family:var(--avt-font-heading); font-weight:600; font-size:19px; color:#fff; margin-bottom:6px;}
.avt-cta-box p{color:#CFE3DE; margin:0;}
.avt-author-box{display:flex; gap:16px; align-items:center; border:1px solid var(--avt-line); border-radius:var(--avt-radius); padding:20px 24px; background:var(--avt-surface); margin:40px 0;}
.avt-author-box .avt-ph{width:56px; height:56px; border-radius:50%; flex-shrink:0;}

/* Blog archive (posts page) */
.avt-blog-hero{padding:72px 64px 0;}
.avt-blog-hero h1{font-size:38px;margin:6px 0 10px;}
.avt-blog-hero p{max-width:640px;}
.avt-pagination{display:flex; justify-content:center; align-items:center; gap:8px; flex-wrap:wrap; margin-top:48px;}
.avt-pagination .page-numbers{display:inline-flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 14px; border-radius:var(--avt-radius-pill); background:var(--avt-surface); border:1px solid var(--avt-line); font-size:14px; color:var(--avt-ink-soft); box-sizing:border-box;}
.avt-pagination a.page-numbers:hover{border-color:var(--avt-accent); color:var(--avt-accent);}
.avt-pagination .page-numbers.current{background:var(--avt-accent); color:#fff; border-color:var(--avt-accent);}
.avt-pagination .page-numbers.dots{border:none; background:none;}
@media (max-width: 640px){ .avt-blog-hero{padding:48px 24px 0;} }

/* -------------------------------------------------------------------------- */
/* Mobile fixes — several sections had fixed side padding or a row layout   */
/* that never collapsed on narrow screens, causing horizontal overflow       */
/* (the page rendering wider than the viewport and looking "cut in half").   */
/* -------------------------------------------------------------------------- */
html, body{max-width:100%; overflow-x:hidden;}
.avt{overflow-x:hidden;}

@media (max-width: 900px){
	.avt-hotel-list-card{flex-direction:column; min-height:0;}
	.avt-hotel-list-card .avt-ph{width:100%; height:220px;}
}

@media (max-width: 640px){
	.avt-hero-content{padding:88px 24px 0;}
	.avt-hero-content h1{font-size:32px;}
	.avt-usps{padding:32px 24px;}
	.avt-banner-content{padding:24px;}
	.avt-banner-content h1{font-size:28px;}
	.avt-newsletter{padding:32px 24px;}
	.avt-newsletter form{width:100%;}
	.avt-newsletter input{width:auto; flex:1;}
	.avt-filters{padding:14px 24px;}
	.avt-post-head h1{font-size:28px;}
	.avt-blog-hero h1{font-size:28px;}

	.avt-searchbar{
		flex-direction:column;
		margin:-40px 16px 40px;
		padding:12px;
		gap:4px;
	}
	.avt-searchbar.avt-searchbar--banner{
		margin-top:-20px;
	}
	.avt-searchbar .field{
		flex:none;
		width:100%;
		border-right:none;
		border-bottom:1px solid var(--avt-line);
		padding:10px 12px;
	}
	.avt-searchbar .field:last-of-type{border-bottom:none;}
	.avt-searchbar .avt-btn{width:100%; margin-top:6px;}
}

/* Contact page */
.avt-contact-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:28px; align-items:stretch;}
.avt-contact-info{background:var(--avt-brand); color:#fff; border-radius:var(--avt-radius); padding:44px 40px; display:flex; flex-direction:column; justify-content:center; gap:16px; box-sizing:border-box;}
.avt-contact-info-icon{width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,0.14); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.avt-contact-info h2{color:#fff; font-size:23px; margin:0;}
.avt-contact-info p{color:#CFE3DE; margin:0; font-size:14px; line-height:1.65; max-width:280px;}
.avt-contact-info-meta{display:flex; align-items:center; gap:10px; font-size:13px; color:#B9D4CD; margin-top:8px; padding-top:16px; border-top:1px solid rgba(255,255,255,0.14);}
.avt-contact-card{background:var(--avt-surface); border:1px solid var(--avt-line); border-radius:var(--avt-radius); padding:40px; box-sizing:border-box;}
.avt-form{display:flex; flex-direction:column; gap:22px;}
.avt-form-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.avt-field{display:flex; flex-direction:column; gap:8px;}
.avt-field label{font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--avt-ink-soft);}
.avt-field input,.avt-field textarea{font-family:var(--avt-font-body); font-size:15px; line-height:1.5; color:var(--avt-ink); background:var(--avt-bg); border:1px solid var(--avt-line); border-radius:8px; padding:13px 14px; box-sizing:border-box; resize:vertical; width:100%; transition:border-color .15s ease, background .15s ease;}
.avt-field input::placeholder,.avt-field textarea::placeholder{color:#A69C89;}
.avt-field input:focus,.avt-field textarea:focus{outline:none; border-color:var(--avt-accent); background:var(--avt-surface);}
.avt-form .avt-btn{align-self:flex-start; margin-top:4px;}
.avt-form-hp{position:absolute !important; left:-9999px !important; top:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; margin:0 !important; padding:0 !important;}
.avt-form-notice{border-radius:8px; padding:14px 18px; font-size:14px; margin-bottom:4px;}
.avt-form-notice--ok{background:rgba(31,78,74,0.08); color:var(--avt-brand-dark); border:1px solid rgba(31,78,74,0.25);}
.avt-form-notice--error{background:rgba(193,99,59,0.08); color:var(--avt-accent-dark); border:1px solid rgba(193,99,59,0.3);}
@media (max-width: 900px){
	.avt-contact-grid{grid-template-columns:1fr;}
	.avt-contact-info{padding:32px;}
	.avt-contact-info p{max-width:420px;}
}
@media (max-width: 640px){
	.avt-contact-card{padding:28px 20px;}
	.avt-form-row{grid-template-columns:1fr;}
}

/* Legal pages (Aviso legal, Privacidad, Cookies) */
.avt-legal-body{padding:8px 24px 96px; font-size:16px; line-height:1.75; color:var(--avt-ink-soft);}
.avt-legal-body h2{font-size:23px; margin:40px 0 12px; color:var(--avt-ink); font-family:var(--avt-font-heading);}
.avt-legal-body h2:first-child{margin-top:0;}
.avt-legal-body h3{font-size:17px; margin:28px 0 8px; color:var(--avt-ink); font-family:var(--avt-font-heading);}
.avt-legal-body p{margin:0 0 16px;}
.avt-legal-body ul{margin:0 0 16px; padding-left:20px; list-style:disc;}
.avt-legal-body li{margin-bottom:8px;}
.avt-legal-body a{color:var(--avt-brand); text-decoration:underline; text-underline-offset:2px;}
.avt-legal-body strong{color:var(--avt-ink); font-weight:600;}
.avt-legal-meta{font-size:13px; color:#948C7A; margin:8px 0 0;}
.avt-table-wrap{overflow-x:auto; margin:0 0 24px; border:1px solid var(--avt-line); border-radius:var(--avt-radius);}
.avt-table{width:100%; border-collapse:collapse; font-size:13.5px; min-width:640px;}
.avt-table th{background:var(--avt-sand-deep); color:var(--avt-ink); font-weight:600; text-align:left; padding:12px 16px; border-bottom:1px solid var(--avt-line); white-space:nowrap;}
.avt-table td{padding:12px 16px; border-bottom:1px solid var(--avt-line); vertical-align:top;}
.avt-table tr:last-child td{border-bottom:none;}

/* Cookie consent banner */
.avt-cookie-banner{position:fixed; left:24px; right:24px; bottom:24px; z-index:9999; max-width:640px; margin:0 auto; background:var(--avt-surface); border:1px solid var(--avt-line); border-radius:var(--avt-radius); padding:24px 28px; box-shadow:0 18px 40px rgba(20,18,14,.18); font-family:var(--avt-font-body); display:none;}
.avt-cookie-banner.is-visible{display:block;}
.avt-cookie-banner p{font-size:14px; line-height:1.6; color:var(--avt-ink-soft); margin:0 0 16px;}
.avt-cookie-banner a{color:var(--avt-brand); text-decoration:underline;}
.avt-cookie-actions{display:flex; gap:10px; flex-wrap:wrap;}
.avt-cookie-actions .avt-btn{font-size:13px; padding:10px 18px;}
.avt-cookie-link-btn{background:none; border:none; padding:10px 4px; font-size:13px; font-weight:600; color:var(--avt-ink-soft); text-decoration:underline; cursor:pointer; font-family:var(--avt-font-body);}
.avt-cookie-modal-overlay{position:fixed; inset:0; background:rgba(20,18,14,.45); z-index:10000; display:none; align-items:center; justify-content:center; padding:24px;}
.avt-cookie-modal-overlay.is-visible{display:flex;}
.avt-cookie-modal{background:var(--avt-surface); border-radius:var(--avt-radius); padding:32px; max-width:480px; width:100%; box-sizing:border-box; max-height:86vh; overflow-y:auto;}
.avt-cookie-modal h3{font-family:var(--avt-font-heading); font-size:20px; margin:0 0 16px; color:var(--avt-ink);}
.avt-cookie-cat{display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 0; border-bottom:1px solid var(--avt-line);}
.avt-cookie-cat:last-of-type{border-bottom:none;}
.avt-cookie-cat-label{font-size:14px; font-weight:600; color:var(--avt-ink); margin-bottom:4px;}
.avt-cookie-cat-desc{font-size:13px; color:var(--avt-ink-soft); line-height:1.5; max-width:300px;}
.avt-cookie-switch{position:relative; width:44px; height:24px; flex-shrink:0; margin-top:2px;}
.avt-cookie-switch input{opacity:0; width:100%; height:100%; margin:0; position:absolute; cursor:pointer;}
.avt-cookie-switch input:disabled{cursor:not-allowed;}
.avt-cookie-switch-track{position:absolute; inset:0; background:var(--avt-line); border-radius:var(--avt-radius-pill); transition:background .15s ease; pointer-events:none;}
.avt-cookie-switch input:checked + .avt-cookie-switch-track{background:var(--avt-brand);}
.avt-cookie-switch input:disabled + .avt-cookie-switch-track{background:var(--avt-brand); opacity:.5;}
.avt-cookie-switch-track::after{content:""; position:absolute; top:3px; left:3px; width:18px; height:18px; background:#fff; border-radius:50%; transition:transform .15s ease;}
.avt-cookie-switch input:checked + .avt-cookie-switch-track::after{transform:translateX(20px);}
.avt-cookie-modal-actions{display:flex; gap:10px; margin-top:24px; flex-wrap:wrap;}
.avt-cookie-modal-actions .avt-btn{font-size:13px; padding:10px 18px;}
@media (max-width: 640px){
	.avt-cookie-banner{left:12px; right:12px; bottom:12px; padding:20px;}
	.avt-legal-body{padding:8px 20px 72px;}
	.avt-table{min-width:560px;}
}

/* ---------- Páginas tipo + destino (inc/avt-combos.php) ---------- */
.avt-hotel-media-wrap{position:relative; flex-shrink:0; width:320px;}
.avt-hotel-media-wrap .avt-ph,.avt-hotel-media-wrap .avt-media{width:100%; height:100%; min-height:268px; border-radius:0;}
.avt-hotel-media-wrap .avt-media img{display:block;}
.avt-photo-credit{position:absolute; left:8px; bottom:8px; right:8px; font-size:10px; line-height:1.35; color:#fff; background:rgba(34,32,27,.62); padding:3px 7px; border-radius:6px; width:fit-content; max-width:calc(100% - 16px);}
.avt-photo-credit a{color:#fff; text-decoration:underline;}
.avt-hotel-facts{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:2px 0; padding:12px 0; border-top:1px solid var(--avt-line); border-bottom:1px solid var(--avt-line);}
.avt-hotel-facts div{min-width:0;}
.avt-hotel-facts dt{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--avt-ink-soft);}
.avt-hotel-facts dd{margin:2px 0 0; font-weight:600; font-size:15px; font-variant-numeric:tabular-nums;}
.avt-hotel-facts dd small{font-weight:400; color:var(--avt-ink-soft); font-size:12px;}
.avt-hotel-pc{display:grid; grid-template-columns:1fr 1fr; gap:16px; font-size:14px;}
.avt-hotel-pc span{display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; margin-bottom:2px;}
.avt-hotel-pc .plus span{color:var(--avt-brand);}
.avt-hotel-pc .minus span{color:var(--avt-accent-dark);}
.avt-hotel-pc p{margin:0; color:var(--avt-ink-soft); line-height:1.5;}
.avt-hotel-ideal{font-size:14px;}
.avt-combo-top{padding-top:36px;}
.avt-combo-summary{background:var(--avt-surface); border:1px solid var(--avt-line); border-radius:var(--avt-radius); padding:22px 26px;}
.avt-combo-summary p{margin:8px 0 0; color:var(--avt-ink-soft); line-height:1.65;}
.avt-combo-summary ul{margin:10px 0 0; padding-left:18px; color:var(--avt-ink-soft);}
.avt-combo-summary li{margin-top:4px;}
.avt-combo-note{font-size:13px; color:var(--avt-ink-soft); margin:14px 0 0;}
.avt-combo-list{display:flex; flex-direction:column; gap:20px;}
.avt-combo-block{padding-top:56px; padding-bottom:56px;}
.avt-combo-block h2{font-size:26px; margin-bottom:14px;}
.avt-combo-table{overflow-x:auto; border:1px solid var(--avt-line); border-radius:var(--avt-radius); background:var(--avt-surface);}
.avt-wrap-copy .avt-combo-table table{margin:0; min-width:620px; font-variant-numeric:tabular-nums;}
.avt-wrap-copy .avt-combo-table th,.avt-wrap-copy .avt-combo-table td{border:0; border-bottom:1px solid var(--avt-line);}
.avt-wrap-copy .avt-combo-table tr:last-child td{border-bottom:0;}
.avt-combo-src{font-size:13px; color:var(--avt-ink-soft); margin-top:10px;}
.avt-combo-body h2{font-size:26px; margin:40px 0 14px;}
.avt-combo-body h2:first-child{margin-top:0;}
.avt-combo-body p{font-size:16px; line-height:1.75; color:var(--avt-ink-soft); margin:0 0 14px;}
.avt-combo-body .avt-combo-small{font-size:14px;}
.avt-combo-sources{padding-top:40px; padding-bottom:8px;}
.avt-combo-sources h2{font-size:18px; margin-bottom:8px;}
.avt-combo-sources ul{margin:0; padding-left:18px; font-size:13px; color:var(--avt-ink-soft);}
.avt-combo-sources li{margin-top:4px;}
@media (max-width: 900px){
	.avt-hotel-media-wrap{width:100%;}
	.avt-hotel-media-wrap .avt-ph,.avt-hotel-media-wrap .avt-media{min-height:0; height:240px;}
	.avt-hotel-facts{grid-template-columns:repeat(2,minmax(0,1fr));}
	.avt-hotel-pc{grid-template-columns:1fr;}
	.avt-hotel-list-card .foot{flex-wrap:wrap; gap:12px;}
}
/* Cabecera de imagen sin texto + intro bajo el banner (páginas tipo + destino) */
.avt-banner--image{min-height:260px;}
.avt-combo-intro{padding-top:32px; padding-bottom:8px; display:flex; flex-direction:column; gap:12px;}
.avt-combo-crumb{font-size:13px; color:var(--avt-ink-soft);}
.avt-combo-crumb a{color:var(--avt-ink-soft); text-decoration:none;}
.avt-combo-crumb a:hover{color:var(--avt-accent-dark); text-decoration:underline;}
.avt-combo-crumb [aria-current]{color:var(--avt-ink); font-weight:600;}
.avt-combo-intro h1{font-size:40px; line-height:1.15; color:var(--avt-ink); margin:0; max-width:760px; text-wrap:balance;}
.avt-combo-lead{font-size:17px; line-height:1.65; color:var(--avt-ink-soft); margin:0; max-width:720px;}
.avt-combo-meta{display:flex; flex-wrap:wrap; gap:8px; margin-top:4px;}
.avt-combo-meta span{display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--avt-ink); background:var(--avt-sand-deep); padding:6px 12px; border-radius:var(--avt-radius-pill);}
.avt-combo-intro .avt-combo-note{margin:4px 0 0;}
@media (max-width: 900px){
	.avt-banner--image{min-height:180px;}
	.avt-combo-intro{padding-top:24px;}
	.avt-combo-intro h1{font-size:30px;}
	.avt-combo-lead{font-size:16px;}
}
.avt-combo-note--list{margin-top:18px;}
.avt-combo-intro{padding-bottom:0;}

.avt-banner--image{min-height:200px;}
@media (max-width: 900px){ .avt-banner--image{min-height:140px;} }

/* Ficha sin foto: bloque neutro con el barrio, sin texto de 'imagen pendiente' */
.avt-hotel-nophoto{height:100%; min-height:268px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:linear-gradient(160deg,var(--avt-sand-deep),var(--avt-bg)); color:var(--avt-ink-soft);}
.avt-hotel-nophoto span{font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600;}
@media (max-width: 900px){ .avt-hotel-nophoto{min-height:0; height:180px;} }
