/* ══════════════════════════════════════════════════════════
   Oklahoma.ai — template
   Type: system stack  ·  Palette: Red Earth and Big Sky
   ══════════════════════════════════════════════════════════ */
:root{
  /* Red Earth and Big Sky palette (Oklahoma).
     Namespaced --okai-*: the CMS ships its own :root{--c-primary}
     and the plain --c-* names collided with it. Do not rename back. */
  --okai-primary:#1D2B36;
  --okai-secondary:#5C6B75;
  --okai-accent:#B54520;
  --okai-white:#FFFFFF;
  --okai-cream:#F7F0E3;
  --okai-blue:#2E6485;
  --okai-blue-16:rgba(46,100,133,.16);
  --okai-blue-25:rgba(46,100,133,.25);
  --okai-primary-08:rgba(29,43,54,.08);
  --okai-primary-25:rgba(29,43,54,.25);
  --okai-offwhite:#FDFAF2;

  /* Image placeholders (swap for the real photos) */
  --okai-ph:#BCC7CE;        /* image with no text over it */
  --okai-ph-dark:#345E75;   /* image with light text over it */

  --okai-shell:5%;          /* section side padding (72px @1440) */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--okai-cream);
  color:var(--okai-primary);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Arial,sans-serif;
  font-size:20px;
  font-weight:400;
  line-height:30px;   /* = 1.5em of 20px, inherited in px as in the original */
  letter-spacing:-.7px;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,h6,p{margin:0}
ul{margin:0;padding:0;list-style:none}
button,input,select{font:inherit;letter-spacing:inherit;color:inherit}
svg{display:block}
.ph{background:var(--okai-ph)}
.ph-dark{background:var(--okai-ph-dark)}

/* ── Buttons ─────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  border-radius:25px;text-align:center;cursor:pointer;
  font-weight:900;
  padding:12px 24px;border:none;
  transition:background-color .3s,color .3s,border-color .3s,transform .3s;
}
.btn svg{width:1em;height:1em;fill:currentColor}
.btn--outline{
  background:var(--okai-cream);color:var(--okai-accent);
  border:3px solid var(--okai-accent);
}
.btn--solid{background:var(--okai-accent);color:var(--okai-cream);border:1px solid var(--okai-accent)}
.btn--18{font-size:18px;line-height:18px;letter-spacing:-.6px}
.btn--24{font-size:24px;line-height:24px;letter-spacing:-.6px}
.btn--16{font-size:16px;line-height:16px}

/* ── Divider with title ──────────────────────────────── */
.divider{display:flex;align-items:center;padding:15px 0}
.divider__text{
  color:var(--okai-accent);font-weight:900;margin-right:10px;white-space:nowrap;
}
.divider::after{
  content:"";flex:1;border-top:2px solid var(--okai-accent);
}
.divider--center{text-align:center}
.divider--40 .divider__text{font-size:40px;line-height:40px}
.divider--26 .divider__text{font-size:26px;line-height:26px}

/* ══ HEADER ══════════════════════════════════════════ */
.site-header{
  position:absolute;inset:0 0 auto 0;height:97px;min-height:97px;
  display:flex;align-items:center;justify-content:flex-end;gap:20px;
  padding:0 40px;z-index:99;
}
.nav{flex:1;display:flex;justify-content:flex-end;position:relative}
.nav__toggle{
  display:none;background:none;border:none;padding:0;cursor:pointer;
  width:20px;height:20px;color:#fff;
}
.nav__toggle span{display:block;height:2px;background:currentColor;border-radius:2px;margin:4px 0}
.nav__list{display:flex;justify-content:flex-end}
.nav__item{display:flex;position:relative}
.nav__title{
  display:flex;align-items:center;text-align:start;
  padding:8px 16px;color:#fff;font-weight:900;cursor:pointer;
  background:none;border:none;
}
.nav__caret{width:20px;height:20px;display:flex;align-items:center;justify-content:center;margin-left:5px}
.nav__caret svg{width:20px;height:20px;fill:currentColor}
.nav__caret svg path{transform-origin:center}
.header-tools{
  display:grid;grid-template-columns:repeat(4,48px);gap:20px;
  padding:10px;z-index:99;justify-content:start;
}
.tool{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;width:48px}
.tool__icon{width:24px;height:24px}
.tool__icon svg{width:24px;height:24px;fill:currentColor}
.tool__label{width:100%;font-size:15px;line-height:15px;font-weight:700;text-align:center}
.weather{display:flex;flex-direction:column-reverse;align-items:center;justify-content:center;gap:5px}
.weather__icon,.weather__temp{color:#fff}
.weather__icon svg{width:21px;height:20px;fill:currentColor}
.weather__temp{font-size:16px;line-height:16px;font-weight:700}
.fave{position:relative;font-size:12.8px;line-height:12.8px;font-weight:700;text-align:center}
.fave__count{
  display:inline-block;background:rgba(255,255,255,.25);border-radius:25px;
  padding:3px;margin:-5px 15px 0;
}

/* ══ HERO ════════════════════════════════════════════ */
.hero{position:relative;display:flex;flex-direction:column}
.hero__inner{
  position:relative;min-height:72vh;background:var(--okai-blue);
  padding:0 10px;display:flex;flex-direction:column;
}
.hero__media{position:absolute;inset:0;overflow:hidden;z-index:0;background:var(--okai-ph-dark)}
.hero__media img{width:100%;height:100%;object-fit:cover}
.hero__row{
  max-width:1140px;width:100%;margin:0 auto;flex:1;
  display:flex;align-items:center;padding:10px 0;position:relative;
}
.hero__content{
  position:relative;width:100%;padding:40px;
  display:flex;flex-direction:column;gap:20px;
}
.hero__title{
  color:#fff;font-size:100px;line-height:100px;font-weight:900;text-align:center;
}
.hero__sub{
  color:#fff;font-size:26px;line-height:1.3em;letter-spacing:-.8px;
  text-align:center;width:816px;max-width:100%;margin:0 auto;
}

/* ══ SEARCH BAR ══════════════════════════════════════ */
.searchbar{
  position:relative;z-index:10;margin-top:-40px;padding:0 10px;
  display:flex;flex-direction:column;
}
.searchbar__row{
  max-width:866px;width:100%;margin:0 auto;padding:10px 0;
  display:flex;align-items:center;justify-content:center;
}
.searchbar__card{
  width:100%;display:flex;gap:10px;justify-content:flex-start;align-items:center;
  background:#fff;border-radius:15px;padding:10px;
  box-shadow:0 3px 10px 3px rgba(179,179,179,.5);
}
.sfield{
  display:flex;flex:1;align-items:center;gap:14px;min-height:56px;
  border:1px solid var(--okai-blue-16);border-radius:5px;padding:0 14px;
}
.sfield__icon{color:var(--okai-blue);font-size:20px;flex:none;display:flex}
.sfield__icon svg{width:20px;height:20px;fill:currentColor}
.sfield__input{
  flex:1;min-width:0;height:24px;
  background:none;border:none;outline:none;
  font-size:20px;line-height:24px;letter-spacing:-.8px;color:var(--okai-primary);
  -webkit-appearance:none;appearance:none;
}
.sfield__input::placeholder{color:rgba(29,43,54,.55);opacity:1}
.sfield__input::-webkit-search-cancel-button{-webkit-appearance:none}
.sbtn{
  flex:none;width:127px;background:var(--okai-accent);color:#fff;font-size:18px;font-weight:700;line-height:1px;
  border-radius:50px;border:1px solid #c36;padding:18px;cursor:pointer;
  white-space:nowrap;
}

/* ══ CHOOSE YOUR ADVENTURE ═══════════════════════════ */
.adventure{
  position:relative;display:flex;flex-direction:column;
  padding:2% var(--okai-shell);
}
/* 6-column grid inside the same margins as every other
     section (no bleed towards the page edge). */
.adv-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:20px;margin-bottom:2%;
}
.adv-card{
  position:relative;aspect-ratio:257/450;border-radius:20px;overflow:hidden;display:block;
}
.adv-card__bg{position:absolute;inset:0;border-radius:25px;background:var(--okai-ph-dark);z-index:1}
.adv-card__ov{position:absolute;inset:0;border-radius:25px;background:transparent;transition:background-color .5s;z-index:2}
.adv-card__content{
  position:relative;z-index:3;height:100%;display:flex;align-items:flex-end;
  padding:20px;color:#fff;
}
.adv-card__title{font-size:30px;font-weight:900;}
.adv-copy{
  columns:2;column-gap:60px;
}
.adv-copy p{margin-bottom:14.4px}
.adv-copy a{color:var(--okai-accent);text-decoration:underline}

/* ══ QUICKLINKS ══════════════════════════════════════ */
.quicklinks{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
  padding:1% var(--okai-shell) var(--okai-shell);
}
.quicklinks__title{
  color:var(--okai-accent);font-size:25px;line-height:25px;font-weight:800;
  margin-right:20px;
}
.quicklinks .btn svg{width:18px;height:18px}
/* Hidden at every breakpoint, as in the original */
.is-hidden-desktop{display:none}

/* Buttons that only show up on mobile */
.only-mobile{display:none}

/* ══ CITY CARDS ═════════════════════════════════════ */
.cabins{display:flex;flex-direction:column;padding:3% var(--okai-shell) 1%}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.sec-head .divider{flex:1}
.cabin-grid{display:flex;flex-wrap:wrap;margin:0 -10px}
.cabin-cell{width:20%;min-width:0;padding:10px}
.cabin-card{
  height:100%;display:flex;flex-direction:column;gap:15px;padding:10px;position:relative;
}
.cabin-card__media{
  position:relative;height:200px;min-height:200px;border-radius:15px;
  background:var(--okai-blue-16);
}
.cabin-card__fav{
  position:absolute;right:0;top:215px;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  border-radius:25px;padding:10px;z-index:2;color:var(--okai-primary-25);
}
.cabin-card__fav svg{width:20px;height:20px;fill:currentColor}
.cabin-card__body{
  display:flex;flex-direction:column;justify-content:center;
  padding:0 5px 20px;width:90%;
}
.cabin-card__title{font-size:20px;line-height:24px;font-weight:800;margin-bottom:5px}
.cabin-meta{display:flex;flex-wrap:wrap;margin:0 -4.5px}
.cabin-meta li{display:flex;align-items:center;margin:0 4.5px;font-size:15px;line-height:22.5px}
.cabin-meta svg{width:14px;height:14px;fill:currentColor;margin-right:3.5px}
.cabin-meta span{padding-left:5px}
.cabin-card__cta{height:30px;display:flex;align-items:center}
.quickview{
  display:inline-flex;align-items:center;gap:5px;
  color:var(--okai-accent);font-size:14px;line-height:14px;font-weight:700;
}
.quickview svg{width:14px;height:14px;fill:currentColor}

/* ══ CATEGORY CAROUSEL ══════════════════════════════ */
.features{display:flex;flex-direction:column;border-radius:15px}
.feat-slider{position:relative}
.feat-viewport{overflow:hidden}
.feat-track{display:flex;transition:transform .45s ease}
.feat-cell{flex:0 0 12.5%;min-width:0;padding:10px}
.feat-card{
  display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px;
  min-height:146px;
}
.feat-card__icon{width:64px;height:64px;color:var(--okai-accent)}
.feat-card__icon svg{width:64px;height:64px;fill:currentColor}
.feat-card__label{font-size:16px;line-height:16px;text-align:center}
.feat-arrow{
  position:absolute;top:50%;margin-top:-24px;z-index:90;
  width:48px;height:48px;padding:0;cursor:pointer;border:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--okai-cream);color:var(--okai-primary);
  font-size:32px;line-height:48px;
  transition:color .3s,background-color .3s;
}
.feat-arrow svg{width:32px;height:32px;fill:currentColor}
.feat-arrow--prev{left:-1.5%}
.feat-arrow--next{right:-1.5%}

/* ══ DRIVE BAND ══════════════════════════════════════ */
.drive{
  position:relative;display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;gap:20px;
  padding:5%;border:3px solid var(--okai-primary);overflow:hidden;
}
.drive__bg{position:absolute;inset:0;background:var(--okai-ph-dark);z-index:0}
.drive__bg::before{
  content:"";position:absolute;inset:0;opacity:.65;
  background:linear-gradient(180deg,#000 0%,rgba(0,0,0,0) 100%);
}
.drive__inner{position:relative;z-index:1;width:100%;display:flex;flex-direction:column}
.drive__row{max-width:1140px;width:100%;margin:0 auto}
.drive__col{display:flex;flex-direction:column;gap:20px;padding-bottom:19%}
.drive-towns{
  display:flex;justify-content:center;text-align:center;margin:0 -7px;
}
.drive-towns li{
  display:flex;align-items:center;justify-content:center;margin:0 7px;
  color:var(--okai-cream);font-weight:700;letter-spacing:1.3px;text-transform:uppercase;
}
.drive-towns__icon{display:flex;margin-right:5.5px}
.drive-towns__icon svg{width:22px;height:22px;fill:var(--okai-cream)}
.drive-towns__icon + .t{padding-left:5px}
.drive__title{
  color:var(--okai-cream);font-size:40px;line-height:40px;font-weight:900;text-align:center;
}
.drive-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:30px;justify-items:center;
  width:72%;margin:0 auto;
}
.drive-card{
  width:100%;
  display:flex;flex-direction:column;justify-content:center;
  border:8px solid var(--okai-cream);border-radius:25px;padding:20px;
  color:var(--okai-cream);text-align:center;
}
.drive-card__city{font-size:30px;font-weight:900;}
.drive-card__num{font-size:60px;line-height:60px;font-weight:900}
.drive-card__unit{font-size:16px;line-height:16px;text-transform:uppercase}
.drive__cta{text-align:center}

/* ══ PROMO + POPULAR GUIDES ═════════════════════════ */
.duo{display:flex;flex-direction:column;padding:5%}
.duo__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:60px;align-items:stretch}
.app-card{
  position:relative;border-radius:15px;padding:40px;min-height:420px;
  display:flex;align-items:center;gap:60px;overflow:hidden;
}
.app-card__bg{position:absolute;inset:0;background:var(--okai-ph-dark);z-index:0}
.app-card__col{
  position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:20px;
  width:301px;max-width:100%;padding-right:53.8px;
}
.app-card__title{color:#fff;font-size:30px;font-weight:900;}
.app-card__text{color:#fff;line-height:20px;margin-bottom:40px}
.app-card__btns{display:flex;flex-direction:column;gap:10px}
.app-card__btns .btn{background:var(--okai-accent);color:#fff;border:none;width:100%;padding:12px 24px}
.news-card{
  background:#fff;border-radius:15px;display:flex;align-items:center;min-height:420px;
}
.news-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start;
  background:#fff;border-radius:25px;padding:40px;width:100%;
}
.news-col{display:flex;flex-direction:column;gap:20px;padding-right:25.9px}
.news-title{font-size:30px;font-weight:900;}
.news-text{line-height:20px;margin-bottom:40px}
.news-form{display:flex;flex-direction:column;gap:20px}
.news-form form{display:flex;flex-direction:column}
.news-form input{
  width:100%;height:33px;background:#fff;color:#1F2124;
  font-size:16px;line-height:22.4px;letter-spacing:normal;
  border:1px solid #69727D;border-radius:2px;padding:4px 12px;margin-bottom:10px;
}
.news-form button{
  width:100%;height:40px;background:var(--okai-accent);color:#fff;font-weight:900;
  line-height:20px;border:none;border-radius:25px;padding:10px 20px;cursor:pointer;
}
.news-fine{
  color:var(--okai-secondary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,Arial,sans-serif;
  font-size:12px;line-height:12px;
}
.news-fine a{text-decoration:underline}

/* ══ BLOG ════════════════════════════════════════════ */
.blog{display:flex;flex-direction:column;padding:5%}
.blog__sub{line-height:20px}
.blog-grid-wrap{padding-top:40px}
.blog-grid{display:flex;flex-wrap:wrap;margin:0 -10px}
.blog-cell{width:33.3333%;min-width:0;padding:10px}
.blog-card{display:flex;flex-direction:column;padding:10px}
.blog-card__media{
  height:200px;min-height:200px;border-radius:25px;padding:10px;background:var(--okai-ph);
}
.blog-card__body{
  display:flex;flex-direction:column;justify-content:center;padding:10px;
}
.blog-cat{
  display:flex;flex-wrap:wrap;margin:10px -8px 0;
}
.blog-cat li{
  display:flex;align-items:center;margin:0 8px;
  font-size:16px;font-weight:700;color:var(--okai-accent);line-height:30px;
}
.blog-cat svg{width:11px;height:11px;fill:currentColor}
.blog-cat span{padding-left:5px}
.blog-card__title{font-size:30px;font-weight:900;line-height:30px}
.blog-card__ex{margin:10px 0;line-height:30px}
.blog-card__more{margin-top:20px;height:30px;display:flex;align-items:center}
.read-article{
  display:inline-flex;flex-direction:row-reverse;align-items:center;gap:5px;
  color:var(--okai-accent);font-size:18px;line-height:18px;font-weight:900;
}
.read-article svg{width:18px;height:18px;fill:currentColor}

/* ══ FOOTER ══════════════════════════════════════════ */
.site-footer{
  background:var(--okai-primary);display:flex;flex-direction:column;gap:20px;padding:60px;
}
.footer-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.footer-col{display:flex;flex-direction:column;gap:20px;padding:10px}
.footer-col h6{color:var(--okai-cream);font-size:20px;line-height:20px;font-weight:900}
.footer-col li a{
  display:flex;align-items:center;color:var(--okai-accent);font-size:16px;line-height:30px;
}
.footer-bottom{padding:10px}
.footer-bottom p{color:var(--okai-cream);font-size:16px;line-height:16px}

/* ══ RESPONSIVE ═════════════════════════════════════
   Elementor breakpoints: tablet ≤1024px · mobile ≤767px
   Values taken from the original site.
══════════════════════════════════════════════════ */
@media (max-width:1024px){
  /* Header: the menu becomes a centred hamburger */
  .nav{justify-content:center;align-items:center}
  .nav__list{display:none}
  .nav__toggle{display:block}
  .header-tools{grid-template-columns:repeat(4,1fr);max-width:189px;width:189px}
  .tool,.weather{width:auto}

  .hero__inner{min-height:496px}
  .hero__title{font-size:66px;line-height:66px}
  .hero__sub{font-size:22px;line-height:1.3em}

  .divider--40 .divider__text,
  .divider--26 .divider__text{font-size:32px;line-height:32px}

  .adv-grid{grid-template-columns:repeat(3,1fr)}
  .cabin-grid{margin:0 -5px}
  .cabin-cell{width:33.3333%;padding:10px 5px}
  .blog-cell{width:33.3333%}
  .drive-grid{width:100%;justify-items:stretch}
  .drive__title{font-size:32px;line-height:32px}
  .site-footer{padding:40px}
}

@media (max-width:767px){
  .site-header{min-height:0;height:61px;padding:10px 20px 10px 10px;gap:20px}
  .nav{flex:none;order:2;width:30px;justify-content:flex-end}
  .nav__toggle{width:30px;height:30px}
  .header-tools{order:1;grid-template-columns:repeat(3,auto);width:auto;max-width:none;gap:20px;padding:0}

  .hero__inner{min-height:420px;padding:0 20px}
  .hero__title{font-size:32px;line-height:32px}
  .hero__sub{font-size:20px;line-height:1.3em;width:100%}
  .hero__content{padding:20px 0}

  /* Search bar: wraps */
  .searchbar__card{flex-wrap:wrap;column-gap:2.5%;row-gap:2.37vw}
  .sfield{flex:1 0 100%;min-height:52px;gap:10px;padding:0 10px}
  .sfield__icon{font-size:16px}
  .sfield__icon svg{width:16px;height:16px}
  .sfield__input{height:auto;font-size:16px;line-height:20px}
  .sbtn{flex:1 0 100%;width:auto;padding:10px;line-height:15px}

  /* Choose Your Adventure */
  .adventure{padding:10% 5% 5%;gap:10px}
  .divider{padding:2px 0}
  .divider--40 .divider__text{font-size:24px;line-height:24px}
  .divider--26 .divider__text{font-size:30px;line-height:30px}
  .adv-grid{grid-template-columns:repeat(2,1fr);gap:15px}
  .adv-card__title{font-size:20px;line-height:20px}
  .adv-copy{columns:auto;column-gap:normal;font-size:18px;line-height:23.4px}

  /* Quicklinks */
  .quicklinks{padding:1% 5% 5%}
  .quicklinks .btn{font-size:15px;line-height:15px;padding:11.25px;white-space:nowrap}
  .quicklinks .btn svg{width:15px;height:15px}

  /* City cards */
  .cabins{padding:40px 20px 20px;gap:20px}
  .sec-head{flex-wrap:wrap;gap:20px}
  .sec-head .btn{display:none}
  .cabin-grid{margin:0 -5px}
  .cabin-cell{width:100%;padding:0 5px}
  .cabin-card{gap:0;padding:0}
  .cabin-card__media{min-height:100px;height:200px}
  .cabin-card__fav{right:10px;top:210px}
  .cabin-card__body{width:85%;padding:7.5px 7.5px 20px}
  .cabin-card__title{margin:10px 0}
  .cabin-meta li{line-height:21px}
  .features{padding:20px;gap:20px}
  .feat-cell{flex:0 0 33.3333%;padding:10px 0}
  .feat-card{min-height:130px}

  /* City band */
  .drive{padding:12% 5% 32%;border-width:0}
  .drive__col{padding-bottom:40px}
  .drive-grid{grid-template-columns:repeat(2,1fr);gap:4px;width:100%}
  .drive-card{padding:10px;border-width:5px}
  .drive-card__city{font-size:20px;line-height:20px}
  .drive-card__num{font-size:46px;line-height:46px}
  .drive-card__unit{font-size:14px;line-height:14px}
  .drive__title{font-size:24px;line-height:24px}
  .drive__cta .btn{width:100%}

  /* Promo + Popular Guides */
  .duo{padding:5%}
  .duo__grid{grid-template-columns:1fr;gap:60px}
  .app-card{padding:20px;gap:40px;min-height:0}
  .app-card__col{width:100%;padding:0 30% 20% 0}
  .app-card__title{font-size:20px;line-height:20px}
  .app-card__text{margin-bottom:0}
  .news-card{min-height:0;padding:30px;gap:40px}
  .news-grid{grid-template-columns:1fr;padding:30px;gap:20px}
  .news-col{padding-right:0}
  .news-title{font-size:20px;line-height:20px}
  .news-text{margin-bottom:0}

  /* Read All About It */
  .blog{padding:5%}
  .blog-cell{width:100%}
  .blog-card{padding:0}
  .blog-card__body{padding:0}
  .blog-card__title{font-size:22px;line-height:22px}
  .blog-card__ex{font-size:16px;line-height:20.8px;margin:8px 0}


  /* Footer */
  /* Mobile-only buttons */
  .only-mobile{display:block}
  .only-mobile .btn{width:100%}
  .cabins__more .btn{font-size:15px;line-height:15px;padding:12px 24px}
  .blog__more .btn{
    font-size:20px;line-height:20px;padding:12px 24px;
    background:#69727D;color:#fff;border-color:#69727D;
  }

  .site-footer{padding:20px}
  .footer-grid{grid-template-columns:1fr}
}

/* ══════════════════════════════════════════════════
   HOVERS (taken one by one from the original site)
══════════════════════════════════════════════════ */

/* Header: the favourites and search icons turn orange.
   The menu items do NOT change in the original. */
.tool__icon{transition:color .3s}
.tool:hover .tool__icon{color:var(--okai-accent)}


/* Outline buttons → fill with orange */
.btn--outline:hover,
.btn--outline:focus{
  background:var(--okai-accent);color:var(--okai-cream);border-color:var(--okai-accent);
}

/* Buttons with Elementor's "grow" animation */
.btn--solid:hover,
.quickview:hover,
.read-article:hover{transform:scale(1.1)}
.quickview,.read-article{transition:transform .3s}

/* Choose Your Adventure cards: they darken */
.adv-card:hover .adv-card__ov{background:rgba(0,0,0,.3)}

/* Two-column copy links: they drop the underline */
.adv-copy a{transition:color .3s}
.adv-copy a:hover{color:var(--okai-primary);text-decoration:none}

/* Article cards */
.cabin-card__title a,
.cabin-card__fav{transition:color .3s}
.cabin-card__title a:hover{color:var(--okai-accent)}
.cabin-card__fav:hover{color:var(--okai-accent)}

/* Carousel arrows */
.feat-arrow:hover{color:var(--okai-accent);background:var(--okai-primary-08)}

/* Blog cards */
.blog-card__title a{transition:color .3s}
.blog-card__title a:hover{color:var(--okai-accent)}

/* ══ MEGA MENUS ═════════════════════════════════════ */
.nav__panel{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(-8px);
  background:var(--okai-cream);border-radius:25px;overflow:hidden;
  box-shadow:0 3px 10px 3px rgba(29,43,54,.09);
  display:flex;flex-direction:column;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .3s ease,transform .3s ease,visibility .3s;
  z-index:200;
}
.nav__item.is-open .nav__panel{
  opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
}
.nav__item.is-open .nav__caret{transform:scaleY(-1)}

.mm-cta:hover .mm-cta__title{color:var(--okai-accent)}
.mm-cta{
  position:relative;display:flex;flex-direction:column;align-items:flex-start;
  padding:20px;border-radius:25px;overflow:hidden;color:#fff;
}
.mm-cta > *{position:relative;z-index:1}
.mm-cta > .mm-cta__bg{position:absolute;inset:0;background:var(--okai-ph-dark);border-radius:25px;z-index:0}
.mm-cta__bg::after{content:"";position:absolute;inset:0;background:var(--okai-primary-25);border-radius:25px;transition:background-color .5s}
.mm-cta:hover .mm-cta__bg::after{background:rgba(0,0,0,.3)}
.mm-cta__title{font-size:32px;font-weight:900;margin-bottom:7.68px;transition:color .3s}
.mm-cta__title--sm{font-size:20px;line-height:20px;font-weight:900;margin-bottom:0}
.mm-cta__desc{font-size:16px;line-height:19.2px}
.mm-cta__desc--mb{margin-bottom:12px}
.mm-cta__btn{
  display:inline-block;background:var(--okai-accent);color:var(--okai-cream);
  font-size:16px;line-height:16px;font-weight:900;border-radius:25px;
  padding:10px;text-align:center;
}

/* Menu 1 — Cities & Regions */
.mm--stay{width:800px;padding:10px;gap:20px}
.mm--stay__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;padding:10px}
.mm--stay__col{display:grid;grid-template-columns:1fr;gap:20px}
.mm--stay__col .mm-cta{height:130px}
.mm--stay .mm-cta--big{height:430px}

/* Menu 2 — Health & Services */
.mm--todo{width:1000px}
.mm--todo__row{display:flex}
.mm--todo__grid{
  flex:none;width:650px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:20px;
}
.mm--todo__grid .mm-cta{height:427px}

/* Menu 3 — Arts & Culture */
.mm--plan{width:700px}
.mm--plan__row{display:flex}
.mm--plan__main{flex:none;width:296px;display:flex;flex-direction:column;gap:20px;padding:20px}
.mm--plan__main .mm-cta{height:400px}

/* Blue link columns */
.mm-links{
  display:flex;flex-direction:column;gap:20px;justify-content:flex-start;
  background:var(--okai-blue);padding:40px 20px 20px;
}
.mm-links--stay{flex:none;width:350px}
.mm-links--plan{flex:none;width:202px}
.mm-links__title{color:#fff;font-size:20px;line-height:20px;font-weight:900}
.mm-links li{display:flex;align-items:center;padding-bottom:5px}
.mm-links li + li{margin-top:5px}
.mm-links li:last-child{padding-bottom:0}
.mm-links li a{display:flex;align-items:center;color:#fff;font-size:18px;line-height:19.8px;transition:color .3s}
.mm-links li a:hover{color:var(--okai-accent)}
.mm-links__all{color:var(--okai-accent);font-size:16px;line-height:16px;font-weight:900}

@media (max-width:1100px){
  .mm--stay,.mm--todo,.mm--plan{width:min(92vw,1000px)}
  .mm--todo__row,.mm--plan__row{flex-wrap:wrap}
  .mm--todo__grid,.mm--plan__main{width:100%}
  .mm-links--stay,.mm-links--plan{width:100%}
}
/* ══════════════════════════════════════════════════════
   LASSO SHELL ADAPTATIONS
   (structure the CMS requires: logo, search bar,
    mobile menu, scrim, .pages containers)
══════════════════════════════════════════════════════ */
body{display:flex;flex-direction:column;min-height:100vh}
.main-wrapper{overflow-x:hidden}

/* Logo (fixed shell markup) */
.logo{max-width:120px}
.logo a{display:flex}

/* Header: floats over the hero on the home page, solid on interior pages */
.site-header{justify-content:space-between}
.pages .site-header{position:static;background:var(--okai-primary)}
.pages .main-wrapper{background:var(--okai-cream)}

/* Mega menus: open on hover and via keyboard, no JS */
.nav-item.has-dropdown:hover > .nav__panel,
.nav-item.has-dropdown:focus-within > .nav__panel{
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translateX(-50%) translateY(0);
}
.nav-item.has-dropdown:hover .nav__caret,
.nav-item.has-dropdown:focus-within .nav__caret{transform:scaleY(-1)}
.nav__title{cursor:pointer}

/* The first panel anchors left: centred it ran off the screen. The original
   design hid that with overflow-x:hidden on body, which Lasso forbids. */
.nav-links > .nav-item.has-dropdown:first-child > .nav__panel{
  left:0;transform:translateX(0) translateY(-8px);
}
.nav-links > .nav-item.has-dropdown:first-child:hover > .nav__panel,
.nav-links > .nav-item.has-dropdown:first-child:focus-within > .nav__panel{
  transform:translateX(0) translateY(0);
}
.nav__panel{max-width:min(96vw,1000px)}

/* Mega menus are clipped to the window width instead of pushing horizontal
   scroll (this replaces the body overflow-x:hidden Lasso forbids).
   overflow-x:clip keeps the panel visible downwards. */
.site-header{overflow-x:clip;overflow-y:visible}

/* 7 nav items (5 categories + About Us + Contact Us, the last two required by
   Lasso) no longer fit at 1024px the way the original 5 did: the hamburger
   now takes over below 1300px instead of 1024px. */
.nav__title{white-space:nowrap}
@media (max-width:1300px){
  .nav__list{display:none}
  /* The <nav> is left empty once the list is hidden: without this it keeps its
     width (and below 767px the design gives it order:2) and pushes the
     hamburger to the centre. Logo hard left, hamburger hard right. */
  .nav{flex:0 0 auto;width:0;order:0;overflow:hidden}
  .nav__toggle{display:block;order:1;margin-left:auto}
  .site-header{padding:0 20px}
}
@media (min-width:1301px) and (max-width:1440px){
  .nav__title{padding:8px 12px}
  .site-header{padding:0 24px}
}

/* Shell scrim */
.nav-scrim{
  position:fixed;inset:0;background:rgba(29,43,54,.45);
  opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;z-index:90;
}
.nav-scrim.is-visible{opacity:1;visibility:visible}

/* Mobile menu (#mobile-menu, Bootstrap collapse) */
#mobile-menu{background:var(--okai-cream);z-index:98}
.home #mobile-menu{position:absolute;top:97px;left:0;right:0}
.mobile-menu-inner{padding:20px 5%}
.mobile-menu-inner ul{list-style:none;margin:0;padding:0}
.mobile-menu-inner > ul > li{padding:8px 0;border-bottom:1px solid var(--okai-primary-08)}
.mobile-menu-inner a{display:block;padding:6px 0;color:var(--okai-primary);font-weight:900}
.mobile-menu-inner a:hover{color:var(--okai-accent)}
.mobile-sublist a{padding-left:14px;font-size:18px;font-weight:400;color:var(--okai-secondary)}
@media (min-width:1301px){#mobile-menu{display:none !important}}
@media (max-width:767px){.home #mobile-menu{top:61px}}

/* Search bar: the markup is a Lasso contract (#query / #search); the look is
   the card from the original design. */
.searchbar__row .form{
  width:100%;margin:0;align-items:center;row-gap:10px;
  background:#fff;border-radius:15px;padding:10px;
  box-shadow:0 3px 10px 3px rgba(179,179,179,.5);
}
.no-gutters{--bs-gutter-x:0}
.searchbar__row .form-group{padding:0}
.searchbar__row .form-group:first-child{padding-right:10px}
@media (max-width:991px){
  .searchbar__row .form-group:first-child{padding-right:0;padding-bottom:10px}
}
#query{
  min-height:56px;border:1px solid var(--okai-blue-16);border-radius:5px;
  padding:0 14px;background:#fff;color:var(--okai-primary);
  font-size:20px;line-height:24px;letter-spacing:-.8px;
}
#query:focus{outline:2px solid var(--okai-blue);outline-offset:1px;box-shadow:none}
/* Bootstrap ships .btn:hover (0,2,0), which beats .btn--solid (0,1,0): on hover
   the button lost its orange background and the text ended up navy on navy
   ("See All Cities"). This restores the design's state by winning specificity.
   .btn--outline already has its own :hover and .app-card__btns .btn ties and
   wins on order, so this variant was the only gap. */
.btn.btn--solid:hover,
.btn.btn--solid:focus,
.btn.btn--solid:focus-visible{
  background:var(--okai-accent);color:var(--okai-cream);border-color:var(--okai-accent);
}

/* Same reason, buttons in the "New to Oklahoma?" card: .app-card__btns .btn
   only ties .btn:hover and wins on load order. Raising specificity so it does
   not depend on how the CMS injects the CSS. */
.app-card__btns .btn:hover,
.app-card__btns .btn:focus{background:var(--okai-accent);color:#fff}

.btn-block{display:block;width:100%}
.fs-14{font-size:18px;line-height:18px}
.btn-orange{
  background:var(--okai-accent);color:var(--okai-cream);
  border:1px solid var(--okai-accent);border-radius:50px;
  padding:18px 24px;font-weight:900;white-space:nowrap;
}
.btn-orange:hover,.btn-orange:focus{
  background:var(--okai-primary);border-color:var(--okai-primary);color:var(--okai-cream);
}

/* Footer sits on a dark background.
   02-fonts-reset.css paints EVERY <p> in .pages with --w-brand-dark and lands
   later in the file (widgets are appended last), so on interior pages the
   footer rendered navy text on navy. Won back on specificity, without
   touching the widget. */
.site-footer .footer-bottom p{color:var(--okai-cream);font-size:16px;line-height:1.4}
.site-footer .footer-bottom .site-disclaimer{  /* fine print, readable measure */
  max-width:1100px;margin:0 0 8px;
  font-size:13px;line-height:1.5;color:var(--okai-cream);opacity:.85;
}

/* Outline icons carry fill="none" on the SVG itself, but the design's rules
   (.feat-card__icon svg, .btn svg, .blog-cat svg…) declare fill:currentColor,
   and a CSS declaration always beats a presentation attribute — which filled
   them in solid. This hands the fill back to the ones drawn with strokes.
   No widget file styles svg, so the ADAPT position is enough to win. */
svg[stroke="currentColor"]{fill:none}

/* Photos: every placeholder box keeps its colour as the fallback and gets a
   real <img> on top, cropped to the box. The gradient and tint overlays have
   to stay above the photo, hence the z-index on the two ::before/::after. */
.hero__media img,.adv-card__bg img,.mm-cta__bg img,
.drive__bg img,.app-card__bg img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
}
.adv-card__bg img,.mm-cta__bg img{border-radius:25px}
.cabin-card__media,.blog-card__media,.guide-row__media{overflow:hidden}
.cabin-card__media img,.blog-card__media img,.guide-row__media img{
  width:100%;height:100%;object-fit:cover;border-radius:inherit;
}
.blog-card__media img{border-radius:15px}
.drive__bg::before,.mm-cta__bg::after{z-index:1}

/* Category card titles sit in white on top of the photo. Over a bright sky or
   a pale building they stopped being readable once real photos went in. The
   design already reserved .adv-card__ov for exactly this, so it gets a scrim
   rising from the bottom; the hover darkening still stacks on top of it. */
.adv-card__ov{
  background:linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,.3) 38%,rgba(0,0,0,0) 68%);
}
.adv-card:hover .adv-card__ov{
  background:linear-gradient(to top,rgba(0,0,0,.8) 0%,rgba(0,0,0,.5) 38%,rgba(0,0,0,.25) 100%);
}

/* The blog card's 10px padding framed every photo in grey once the boxes held
   an image instead of a flat placeholder colour. */
.blog-card__media{padding:0}

.mm-cta__bg{background-size:cover;background-position:center}
@media (min-width:1301px){
}

/* Block elements turned into <span> inside <a> (Lasso rule) */
.mm-cta__title,.mm-cta__desc,.feat-card__label,.adv-card__title{display:block}

/* Popular guides: they replace the newsletter form (the site has no signup
   backend). Reuses the blog cards' vocabulary: image block, orange divider,
   heavy title that turns orange, and the same "Read Article" with its icon. */
.guides{display:flex;flex-direction:column;gap:20px;padding:40px;width:100%}
.guide-row{display:flex;align-items:center;gap:20px}
.guide-row__media{flex:none;width:96px;height:96px;border-radius:15px}
.guide-row__body{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.guide-row__title{
  display:block;font-size:20px;line-height:24px;font-weight:900;
  color:var(--okai-primary);transition:color .3s;
}
.guide-row:hover .guide-row__title{color:var(--okai-accent)}
.guide-row .read-article{transition:transform .3s}
.guide-row:hover .read-article{transform:scale(1.1)}
@media (max-width:767px){
  .guides{padding:20px}
  .guide-row__media{width:72px;height:72px}
}

/* City cards (previously drive-time stat cards).
   The design's 8px border was sized for cards with a 60px number; with two
   lines of text it read far too heavy, so it drops to the 3px the design's
   own .btn--outline buttons already use. */
.drive-card{text-align:center;transition:border-color .3s;border-width:3px}
.drive-card:hover{border-color:var(--okai-accent)}
.drive-card__city{display:block;font-size:30px;line-height:34px;font-weight:900}
.drive-card__unit{display:block;font-size:16px;line-height:16px;text-transform:uppercase}

/* Widget tokens: this palette's real variables */
:root{
  --okai-border:rgba(29,43,54,.18);
  --okai-radius:12px;
  --okai-shadow:0 1px 3px rgba(29,43,54,.12);
  --okai-shadow-md:0 3px 10px 3px rgba(29,43,54,.09);
  --okai-shadow-2:0 2px 6px rgba(29,43,54,.10);
  --okai-shadow-3:0 6px 18px rgba(29,43,54,.14);
}


/* ══════════════════════════════════════════════════════
   CASCADE HARDENING
   Defensive only — nothing here changes today's rendering. If the CMS loads
   a stylesheet after style.css, its rules win every specificity tie on
   order. These duplicates sit one element higher, so a later plain
   `a {}`, `p {}` or `body {}` from another sheet cannot repaint the site.
══════════════════════════════════════════════════════ */
html body{color:var(--okai-primary)}
body a{color:inherit;text-decoration:none}
body button,body input,body select{color:inherit}
body .btn--outline{color:var(--okai-accent)}
body .btn--solid{color:var(--okai-cream)}
body .divider__text{color:var(--okai-accent)}
body .nav__toggle{color:#fff}
body .nav__title{color:#fff}
body .hero__title{color:#fff}
body .hero__sub{color:#fff}
body .adv-card__content{color:#fff}
body .adv-copy a{color:var(--okai-accent);text-decoration:underline}
body .quicklinks__title{color:var(--okai-accent)}
body .quickview{color:var(--okai-accent)}
body .feat-card__icon{color:var(--okai-accent)}
body .feat-arrow{color:var(--okai-primary)}
body .drive-towns li{color:var(--okai-cream)}
body .drive__title{color:var(--okai-cream)}
body .drive-card{color:var(--okai-cream)}
body .app-card__title{color:#fff}
body .app-card__text{color:#fff}
body .blog-cat li{color:var(--okai-accent)}
body .read-article{color:var(--okai-accent)}
body .footer-col h6{color:var(--okai-cream)}
body .footer-col li a{color:var(--okai-accent)}
body .footer-bottom p{color:var(--okai-cream)}
body .mm-cta{color:#fff}
body .mm-cta__btn{color:var(--okai-cream)}
body .mm-links__title{color:#fff}
body .mm-links li a{color:#fff}
body .mm-links__all{color:var(--okai-accent)}
body .mobile-menu-inner a{color:var(--okai-primary)}
body .mobile-sublist a{color:var(--okai-secondary)}
body .btn-orange{color:var(--okai-cream)}
body .guide-row__title{color:var(--okai-primary)}
body p,body h1,body h2,body h3,body h4,body h5,body h6,body ul,body ol,body li,body span,body div,body strong,body em,body small,body label,body blockquote,body figcaption,body td,body th{color:inherit}


/* ───────── widgets/00-token-map.css ───────── */

/* WIDGET TOKEN MAP
   THE ONLY FILE IN widgets/ THAT CHANGES PER SITE.

   Every other file in this folder is identical across all domains and must
   never be edited for a single site. They reference --w-* tokens only.
   This block wires those tokens to whatever the site's own palette calls
   things, so the designer keeps their own variable names.

   Right-hand side = this site's variables, taken from its :root.
   Left-hand side  = fixed. Do not rename.

   Mapping for oklahoma.ai (paleta "Tierra Roja y Cielo Grande").
*/

:root {
  --w-white:         var(--okai-white);
  --w-bg-alt:        var(--okai-offwhite);   /* page/zebra background */
  --w-bg-tint:       var(--okai-cream);      /* hover tint            */
  --w-brand:         var(--okai-accent);     /* links, accents, focus */
  --w-brand-dark:    var(--okai-primary);    /* headings, table head  */
  --w-brand-dark-2:  var(--okai-blue);       /* active/pressed        */
  --w-highlight:     var(--okai-blue);
  --w-text-muted:    var(--okai-secondary);
  --w-border:        var(--okai-border);
  --w-radius:        var(--okai-radius);
  --w-shadow:        var(--okai-shadow);
  --w-shadow-md:     var(--okai-shadow-md);
  --w-shadow-2:      var(--okai-shadow-2);
  --w-shadow-3:      var(--okai-shadow-3);
}


/* ───────── widgets/01-layout-reset.css ───────── */

/* LAYOUT RESET
   Shell/container resets required by the Lasso wrapper. Not a widget, but must ship with them.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

.home .container.main {
  width: 100%;
  max-width: 100%;
  padding: 0;
}

.container.layout {
  max-width: 100%;
  padding: 0;
}

.container.layout .row.layout {
  margin: 0;
}

.home .container.layout .row.layout > .cols {
  padding: 0;
}

.pages .main-wrapper .container.main {
  padding: 24px 16px;
}


/* ───────── widgets/02-fonts-reset.css ───────── */

/* FONTS RESET
   Typography inside .pages article bodies.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

.pages h1,
.pages h2 {
  font-weight: 700;
  color: var(--w-brand-dark);
}

.pages h1,
.pages h2,
.pages h3,
.pages p,
.pages strong {
  color: var(--w-brand-dark);
}

.pages h1 {
  font-size: 36px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 18px;
}

.pages h2 {
  font-size: 30px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 40px 0 18px;
}

.pages h3 {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
  margin: 24px 0 10px;
}

.pages p {
  font-size: 17px;
  line-height: 1.7;
  margin: 0 0 16px;
}

.pages strong {
  font-weight: 700;
}

@media (max-width: 768px) {
  .pages h1 {
    font-size: 30px;
    margin-bottom: 16px;
  }

  .pages h2 {
    font-size: 25px;
    margin: 32px 0 16px;
  }

  .pages h3 {
    font-size: 20px;
    margin: 22px 0 8px;
  }

  .pages p {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 14px;
  }
}


/* ───────── widgets/03-table-reset.css ───────── */

/* TABLE RESET
   Tables rendered inside article bodies.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

table { margin: 32px 0; }

table th, table td {
  border-color: var(--w-border) !important;
  padding: 8px 16px !important;
}

table td {
  color: var(--w-text-muted) !important;
}

table th {
  background: var(--w-brand-dark) !important;
  color: var(--w-white) !important;
  font-size: 13px !important;
  font-weight: bold !important;
}

table tbody tr:nth-child(even) td {
  background: var(--w-bg-alt) !important;
}

@media (max-width: 992px) {
  table {
    display: block !important;
    overflow-x: auto !important;
    border: 0 !important;
  }
}

@media (max-width: 768px) {
  .pages h1 {
    font-size: 30px;
    margin-bottom: 16px;
  }

  .pages h2 {
    font-size: 25px;
    margin: 32px 0 16px 0;
  }

  .pages h3 {
    font-size: 20px;
    margin: 22px 0 8px 0;
  }

  .pages p {
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 14px;
  }
}


/* ───────── widgets/04-dropdown-sublist.css ───────── */

/* DROPDOWN SUBLIST WIDGET
   Collapsible sublist panel. Pairs with the scroll-lock logic in main.js.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

/* Anchor for overlay so the panel doesn't push content down */
.col-gap:has(.dropdown-sublist):has(.bubbles-link),
.cols:has(.dropdown-sublist):has(.bubbles-link) {
  position: relative;
  margin-bottom: 32px;
}

/* Trigger button/bar */
.item-sublist:has(.bubbles-link) .dropdown-sublist {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  background: var(--w-brand-dark);
  color: var(--w-white);
  border-radius: var(--w-radius);
  cursor: pointer;
  user-select: none;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.3px;
  transition: background 0.2s, box-shadow 0.2s;
  box-shadow: var(--w-shadow);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.item-sublist:has(.bubbles-link) .dropdown-sublist :hover {
  background: var(--w-brand-dark-2);
  box-shadow: var(--w-shadow-md);
}

/* Circular icon button with chevron */
.item-sublist:has(.bubbles-link) .dropdown-sublist::after {
  content: '';
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background-color: var(--w-highlight);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7 10l5 5 5-5' fill='none' stroke='%231A2E4A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 60%;
  background-position: center;
  transition: transform 0.25s ease, background-color 0.2s;
}

/* Open state — stays in place; JS locks page scroll */
.item-sublist:has(.bubbles-link) .dropdown-sublist.open {
  background: var(--w-brand-dark-2);
  border-radius: var(--w-radius) var(--w-radius) 0 0;
  z-index: 160;
}

.item-sublist:has(.bubbles-link) .dropdown-sublist.open::after {
  transform: rotate(180deg);
  background-color: var(--w-highlight);
}

/* Panel: scrollable within itself, max-height so trigger is always visible */
.item-sublist:has(.bubbles-link) .dropdown-sublist + * {
  position: absolute;
  left: max(0px, calc(50% - 400px));
  right: max(0px, calc(50% - 400px));
  z-index: 150;
  background: var(--w-white);
  border: 1px solid var(--w-border);
  border-top: 1px solid var(--w-bg-alt);
  border-radius: 0 0 var(--w-radius) var(--w-radius);
  box-shadow: var(--w-shadow-md);
  padding: 4px 12px 8px;
  overflow-x: hidden;
  overflow-y: auto;
  max-height: 65vh;
}


/* ───────── widgets/05-contact-form.css ───────── */

/* CONTACT US FORM
   #contact-form on the contact page.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

#contact-form {
  margin: 45px auto 0;
  max-width: 500px;
}

#contact-form input,
#contact-form textarea {
  flex: 1;
  border: 2px solid var(--bs-gray-300);
  border-radius: 6px;
  outline: 0;
  padding: 14px 18px;
  font-size: 14px;
  color: var(--w-brand-dark);
  min-width: 100%;
}

#contact-form input:active,
#contact-form input:focus,
#contact-form textarea:active,
#contact-form textarea:focus {
  border: 2px solid var(--w-brand);
}

#contact-form input::placeholder,
#contact-form textarea::placeholder {
  color: var(--bs-gray-600);
}

#contact-form button {
  background: var(--w-brand);
  border: none;
  border-radius: 10px;
  cursor: pointer;
  padding: 16px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: background 0.2s;
  white-space: nowrap;
  width: 100%;
}

#contact-form button:hover {
  background: var(--w-brand-dark);
}


/* ───────── widgets/06-widgets.css ───────── */

/* CORE WIDGETS
   item-current-image, item-sublist, item-bubbles, sublist.card.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

/* IMAGE STYLE RESET */
.item-current-image img {
  aspect-ratio: 4 / 3;
  width: 100%;
  height: auto;
  object-fit: cover;
  box-shadow: none !important;
  border-radius: 4px !important;
  border-color: var(--bs-gray-300) !important;
  max-width: 600px;
  margin: 0 auto;
  display: block;
}

.item-html,
.item-paragraph {
  max-width: 800px;
  margin: 0 auto;
}

/* SUBLIST */
.item-sublist a {
  width: 100%;
  height: 100%;
}

.item.item-bubbles {
  margin-bottom: 32px;
}

.item-bubbles .row {
  margin: 0;
}

.bubbles-chip {
  align-items: center;
  background: var(--w-white);
  border: 1px solid var(--w-border);
  border-radius: 12px;
  color: var(--w-brand-dark);
  display: flex;
  font-weight: 500;
  height: 100%;
  padding: 16px 48px 16px 24px;
  position: relative;
  transition: padding 0.2s ease-in-out;
}

.bubbles-chip:hover {
  color: var(--w-brand-dark);
  background: var(--w-bg-tint);
  border-color: var(--w-brand);
  padding-left: 20px;
}

.bubbles-chip:active,
.bubbles-chip:focus {
  background: var(--w-brand-dark-2);
  color: var(--w-white);
}

.bubbles-link {
  display: block;
  width: 100%;
  max-width: 100%;
  text-decoration: none;
}

.bubbles-link .bubbles-outer {
  height: 100%;
  padding: 5px;
  max-width: 100%;
}


.sibling.link-button .bubbles-link .bubbles-outer,
.sibling.link-button .bubbles-chip {
  height: auto;
}

.col-gap:has(> .item-bubbles)::before {
  display: none !important;
}

.bubbles-chip::after {
  content: url("data:image/svg+xml,%3Csvg width='13' height='12' viewBox='0 0 13 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.87771 7.01782H1.02042C0.737361 7.01782 0.496528 6.91886 0.297917 6.72094C0.0993056 6.52317 0 6.2833 0 6.00136C0 5.71942 0.0993056 5.4781 0.297917 5.2774C0.496528 5.07657 0.737361 4.97615 1.02042 4.97615H8.87771L5.66583 1.76428C5.46111 1.55955 5.35681 1.31719 5.35292 1.03719C5.34889 0.757332 5.45076 0.510249 5.65854 0.295943C5.86632 0.0948319 6.11014 -0.00377823 6.39 0.000110661C6.66986 0.00399955 6.91236 0.108583 7.1175 0.313861L12.0713 5.27407C12.1699 5.37282 12.2464 5.4856 12.3008 5.6124C12.3551 5.73935 12.3823 5.86865 12.3823 6.00032C12.3823 6.13199 12.3551 6.26122 12.3008 6.38803C12.2464 6.51497 12.1727 6.62497 12.0798 6.71803L7.10958 11.688C6.89403 11.9037 6.65368 12.0081 6.38854 12.0012C6.12354 11.9942 5.88715 11.8862 5.67938 11.6772C5.4716 11.4629 5.36771 11.2166 5.36771 10.9382C5.36771 10.6599 5.4716 10.4192 5.67938 10.2162L8.87771 7.01782Z' fill='%231570B5'/%3E%3C/svg%3E%0A");
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  transition: 0.2s ease-in-out;
}

.bubbles-chip:hover::after {
  right: 10px;
}

/* SUBLIST CARDS */
.item-sublist:has(.sublist.card) .row > div {
  padding: 5px !important;
}

.sublist.card {
  border: none;
  border-radius: 6px;
  box-shadow: var(--w-shadow-2);
  transition: 0.2s ease-in;
}

.sublist.card:hover {
  box-shadow: var(--w-shadow-3);
  color: var(--w-brand);
  transform: translateY(-4px);
}

.sublist.card h5 {
  margin-bottom: 0;
  font-weight: 500;
}

.sublist.card .card-body {
  padding: 16px;
}

@media (max-width: 767.98px) {
  .row div:has(> .sublist.card) {
    padding: 0 !important;
  }

  .row:has(> div .sublist.card) {
    margin: 0;
    gap: 10px;
  }

  .sublist.card {
    display: flex;
    flex-direction: row;
    align-items: center;
  }

  .sublist.card .card-img-top {
    border-radius: calc(var(--bs-border-radius) - (var(--bs-border-width)));
    width: 120px;
    height: 90px;
    object-fit: cover;
    flex-shrink: 0;
  }

  .sublist.card .card-body {
    flex: 1;
    padding: 1rem;
  }

  .sublist.card .card-body * {
    line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }

  .sublist.card .card-body h5 {
    font-size: 16px;
  }
}


/* ───────── widgets/07-widget-behaviors.css ───────── */

/* WIDGET & SECTION BEHAVIORS
   Cross-widget responsive behaviour.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

@media (max-width: 991px) {
  .cols:has(.sidebar-desktop){
    display:none;
  }
}


/* ───────── widgets/08-widget-min-heights.css ───────── */

/* WIDGET MIN-HEIGHTS
   CLS guards. Values are measured, not designed — do not round them.

   Lasso emits this markup; we only dress it. Uses --w-* tokens only —
   see 00-token-map.css. Never hardcode a hex here.

   CHANGELOG
   2026-08-16  Extracted verbatim from the atlanta.com production build.
*/

.loco-widget {
  min-height: 672.547px;
}

.item-external-scripts {
  min-height: 566px;
}

@media (max-width: 767.98px) {
  .loco-widget {
    min-height: 1568px;
  }

  .item-external-scripts {
    min-height: 716px;
  }
}

