/*
Theme Name: Happy Rentals
Theme URI: https://happyrentals.website/
Author: Utah Happy Rentals Tables & Chairs
Description: Theme for Utah Happy Rentals Tables & Chairs. All pages, rental items and the menu are real WordPress content, editable in the dashboard and in Elementor. Keeps the existing Booqable booking shortcodes working. Dark blue, baby blue, white and black palette.
Version: 3.1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: happy-rentals
*/
/* Utah Happy Rentals: palette is dark blue / baby blue / white / black. No gold.
   NOTE: hex values are approximations of the brand description; confirm against the live Elementor kit. */
:root{
  --navy:#0b2a5b; --navy-d:#071b3d; --sky:#a8d5f2; --sky-l:#e8f4fc; --sky-d:#5fa8d8;
  --ink:#0a0f1a; --muted:#4a5568; --line:#d9e4ef; --white:#fff;
  --r:14px; --shadow:0 6px 24px rgba(7,27,61,.10);
  --font:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--ink);background:#fff;line-height:1.6;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy)}
h1,h2,h3{line-height:1.2;color:var(--navy-d);margin:0 0 .5em;letter-spacing:-.01em}
h1{font-size:clamp(2rem,5vw,3.4rem);font-weight:800}
h2{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:750}
h3{font-size:1.15rem;font-weight:700}
p{margin:0 0 1em}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
.narrow{width:min(860px,100% - 32px)}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:100}
.skip:focus{left:8px;top:8px}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.topbar{background:var(--navy-d);color:#fff;font-size:.9rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding:7px 0;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;font-weight:600}
.head-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy-d);font-weight:800;line-height:1.1}
.brand img{width:52px;height:52px;border-radius:50%;object-fit:cover;background:var(--sky-l)}
.brand span{font-size:1.05rem}.brand small{display:block;font-weight:600;color:var(--muted);font-size:.78rem}
.nav ul{list-style:none;display:flex;gap:4px;margin:0;padding:0;align-items:center}
.nav a{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:600;color:var(--navy-d);font-size:.97rem}
.nav a:hover,.nav a[aria-current="page"]{background:var(--sky-l)}
.nav .btn{color:#fff;margin-left:6px}
.nav .btn:hover{background:var(--navy-d)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font:inherit;font-weight:700;color:var(--navy-d);cursor:pointer}

/* Buttons */
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:700;text-decoration:none;border:2px solid transparent;cursor:pointer;font-family:inherit;font-size:1rem;transition:.15s}
.btn-primary{background:var(--navy);color:#fff}.btn-primary:hover{background:var(--navy-d)}
.btn-outline{border-color:var(--navy);color:var(--navy);background:#fff}.btn-outline:hover{background:var(--navy);color:#fff}
.btn-light{background:#fff;color:var(--navy-d)}.btn-light:hover{background:var(--sky)}
.btn-link{padding-inline:8px;text-decoration:underline}
.btn-lg{padding:15px 30px;font-size:1.08rem}.btn-sm{padding:9px 16px;font-size:.92rem}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.center-row{justify-content:center}
.btn:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--sky-d);outline-offset:2px}

/* Hero */
.hero{position:relative;color:#fff;background:var(--navy-d);overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg img{width:100%;height:100%;object-fit:cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(7,27,61,.94) 0%,rgba(7,27,61,.78) 48%,rgba(7,27,61,.25) 100%)}
.hero-inner{position:relative;padding:clamp(64px,10vw,130px) 0}
.hero h1{color:#fff;max-width:14ch}
.hero .lede{max-width:56ch;font-size:1.15rem;color:#e9f3fb}
.eyebrow{display:inline-block;background:var(--sky);color:var(--navy-d);font-weight:800;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:999px}
.trust{list-style:none;display:flex;gap:10px 22px;flex-wrap:wrap;padding:0;margin:8px 0 0;color:var(--sky);font-weight:600;font-size:.95rem}
.trust li:before{content:"\2713\00a0"}

/* Sections */
.section{padding:clamp(48px,7vw,88px) 0}
.tint{background:var(--sky-l)}
.navy{background:var(--navy-d);color:#fff}.navy h2,.navy h3{color:#fff}.navy p{color:#dbe9f6}
.section-head{max-width:720px;margin:0 auto 32px;text-align:center}
.section-head.left{text-align:left;margin-left:0}
.section-head p{color:var(--muted)}
.navy .section-head p{color:#dbe9f6}
.page-hero{background:linear-gradient(135deg,var(--navy-d),var(--navy));color:#fff;padding:clamp(40px,6vw,72px) 0}
.page-hero h1{color:#fff;font-size:clamp(1.9rem,4vw,2.8rem)}
.page-hero .lede{color:#dbe9f6;max-width:62ch;font-size:1.1rem;margin:0}
.crumbs{font-size:.9rem;color:var(--sky)}.crumbs a{color:var(--sky)}

/* Grids */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.cat-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px;text-decoration:none;color:var(--ink);transition:.15s}
.cat-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--sky-d)}
.cat-card p{color:var(--muted);font-size:.95rem}
.cat-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:14px;background:var(--sky-l);margin-bottom:12px}
.cat-icon svg,.product-thumb svg{width:34px;height:34px;fill:none;stroke:var(--navy);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.more{font-weight:700;color:var(--navy)}
.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:28px}
.product{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.product-thumb{height:120px;display:grid;place-items:center;background:linear-gradient(135deg,var(--sky-l),#fff)}
.product-thumb:has(img){height:auto;aspect-ratio:4/3;background:#fff;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.product-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8px;box-sizing:border-box;display:block}
.product-thumb img.cover,.item-media img.cover{object-fit:cover;padding:0}
.product-thumb svg{width:52px;height:52px}
.product-body{padding:18px;display:flex;flex-direction:column;flex:1}
.product-cat{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.product-cat a{text-decoration:none;color:var(--sky-d);font-weight:700}
.product h3{margin-bottom:6px}
.desc{color:var(--muted);font-size:.95rem;margin-bottom:6px}
.spec{font-size:.85rem;font-weight:600;color:var(--navy);background:var(--sky-l);display:inline-block;padding:3px 10px;border-radius:999px;align-self:flex-start}
.price{font-size:1.5rem;font-weight:800;color:var(--navy-d);margin:10px 0 14px}
.price .from{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.price-note{font-size:1rem;font-weight:700}
.product .btn{margin-top:auto;align-self:flex-start}
.cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.cat-tabs a{padding:8px 16px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:600;font-size:.93rem}
.cat-tabs a:hover{background:var(--sky-l)}
.cat-block{margin-bottom:56px;scroll-margin-top:130px}
.note{background:var(--sky-l);border-left:4px solid var(--sky-d);padding:12px 16px;border-radius:8px;font-size:.93rem;color:var(--muted)}

.split{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:start}
.two-up{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:40px}
.panel{background:var(--sky-l);border-radius:var(--r);padding:28px;border:1px solid var(--line)}
.panel h2{font-size:1.6rem}
.center-panel{text-align:center;margin-top:36px}
.big{font-size:2rem;font-weight:800;color:var(--navy-d);margin-bottom:.4em}.big a{text-decoration:none}.big small{font-size:1rem;font-weight:600;color:var(--muted)}.big.small{font-size:1.3rem}
.ticks{list-style:none;padding:0;margin:0 0 1em}
.ticks li{padding-left:28px;position:relative;margin-bottom:10px}
.ticks li:before{content:"";position:absolute;left:0;top:.45em;width:16px;height:9px;border-left:3px solid var(--sky-d);border-bottom:3px solid var(--sky-d);transform:rotate(-45deg)}
.steps{list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;padding:0}
.steps li{counter-increment:s;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);padding:24px}
.steps li:before{content:counter(s);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--sky);color:var(--navy-d);font-weight:800;margin-bottom:12px}
.section:not(.navy) .steps li{background:#fff;border-color:var(--line)}.section:not(.navy) .steps li p{color:var(--muted)}.section:not(.navy) .steps h3{color:var(--navy-d)}
.who{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:28px}
.who div{background:#fff;border-radius:var(--r);padding:22px;border:1px solid var(--line)}

/* Photos */
.photo{margin:0;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line)}
.photo img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--sky-l)}
.photo figcaption{padding:12px 14px;font-size:.88rem;color:var(--muted)}
.photo-strip,.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px;margin-bottom:28px}
.gallery{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}

/* FAQ + chips */
.faq-group{margin-top:2em;font-size:1.4rem}
.faq{border:1px solid var(--line);border-radius:12px;margin-bottom:10px;background:#fff}
.faq summary{cursor:pointer;padding:16px 18px;font-weight:700;color:var(--navy-d);list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:1.4rem;line-height:1;color:var(--sky-d)}
.faq[open] summary:after{content:"\2212"}
.faq p{padding:0 18px 16px;margin:0;color:var(--muted)}
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:0 0 8px}
.chips li{background:var(--sky-l);border:1px solid var(--line);color:var(--navy-d);padding:8px 16px;border-radius:999px;font-weight:600;font-size:.95rem}

/* CTA + forms + booking */
.cta{background:var(--navy);color:#fff;text-align:center;padding:64px 0}
.cta h2{color:#fff}.cta a:not(.btn){color:var(--sky)}
form.contact{display:grid;gap:14px}
form.contact label{font-weight:700;font-size:.93rem;display:grid;gap:6px}
form.contact input,form.contact textarea,form.contact select{font:inherit;padding:12px 14px;border:1px solid #b9c9da;border-radius:10px;width:100%}
.form-msg{padding:14px 16px;border-radius:10px;background:var(--sky-l);border:1px solid var(--sky-d);font-weight:600}
.booking-embed{border:1px solid var(--line);border-radius:var(--r);padding:20px;margin:24px 0;min-height:260px}
.booking-preview{border:2px dashed var(--sky-d);border-radius:var(--r);background:var(--sky-l);padding:28px;margin:24px 0;text-align:center}
.booking-preview code{background:#fff;padding:3px 8px;border-radius:6px;font-size:.9rem}
.book-intro{max-width:760px}

/* Footer */
.site-footer{background:var(--ink);color:#c8d3df;padding:52px 0 24px;font-size:.95rem}
.site-footer a{color:#fff;text-decoration:none}.site-footer a:hover{text-decoration:underline}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.site-footer h3{color:#fff;font-size:1rem}
.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin-bottom:8px}
.copy{border-top:1px solid #243041;margin-top:32px;padding-top:18px;font-size:.85rem}

@media (max-width:900px){
  .split,.two-up{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:10px 16px 18px;box-shadow:var(--shadow)}
  .nav.open{display:block}
  .nav ul{flex-direction:column;align-items:stretch}
  .nav .btn{margin:8px 0 0;text-align:center}
  .hero-bg::after{background:linear-gradient(180deg,rgba(7,27,61,.9),rgba(7,27,61,.82))}
}
@media (max-width:560px){
  body{font-size:16px}
  .foot-grid{grid-template-columns:1fr}
  .topbar .wrap{justify-content:center;text-align:center}
  .btn-lg{width:100%;text-align:center}
  .brand small{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.item-media{background:var(--sky-l);border-radius:16px;display:flex;align-items:center;justify-content:center;min-height:260px;overflow:hidden}
.item-media{background:#fff;border:1px solid var(--line)}
.item-media img{width:100%;height:100%;max-height:520px;object-fit:contain;padding:12px;box-sizing:border-box}
.item-icon svg{width:120px;height:120px;fill:none;stroke:var(--navy);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.big-price{font-size:2rem;font-weight:800;color:var(--navy)}
.product h3 a{color:inherit;text-decoration:none}.product h3 a:hover{text-decoration:underline}
.tips{margin:2rem 0}

/* Theme-only additions */
.nav li.cta-item>a{background:var(--navy);color:#fff;border-radius:999px;padding:12px 22px;margin-left:6px;font-weight:700;border:2px solid transparent}
.nav li.cta-item>a:hover{background:var(--navy-d);color:#fff}
.nav .current-menu-item>a{background:var(--sky-l)}
.nav li.cta-item.current-menu-item>a{background:var(--navy)}
.entry>*:first-child{margin-top:0}.entry img{max-width:100%;height:auto}
.hr-elementor{min-height:0}
.hr-elementor .elementor-widget-html>.elementor-widget-container{margin:0;padding:0}
.hr-elementor .e-con,.hr-elementor .e-con>.e-con-inner{--padding-top:0;--padding-right:0;--padding-bottom:0;--padding-left:0;--gap:0px;--content-width:100%;max-width:none}
.hr-elementor .elementor-widget:not(:last-child){margin-block-end:0}
.product-thumb{overflow:hidden}
.wp-block-gallery img{border-radius:12px}
@media(max-width:900px){.nav li.cta-item>a{margin:8px 0 0;text-align:center}}
