/*
Theme Name: Tupa Transport
Theme URI: https://manavastudio.com
Author: Manava Studio
Description: Theme for Tupa Transport Aitutaki. Elementor ready (header, footer and canvas support), works with the Tupa Rentals plugin and WooCommerce.
Version: 0.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tupa-theme
*/
:root{--tp-orange:#FF6123;--tp-black:#0D0D0D;--tp-ink:#191A1A;--tp-peach:#FAD09F;--tp-bg:#FAFAF7;--tp-line:#E6E3DA;--tp-muted:#46474A;--tp-wrap:1160px}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6;color:var(--tp-ink);background:var(--tp-bg)}
img{max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{line-height:1.15}
.screen-reader-text{position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;overflow:hidden}
.skip-link:focus{clip:auto;width:auto;height:auto;background:#fff;padding:12px 18px;z-index:100000;top:8px;left:8px}
:focus-visible{outline:3px solid var(--tp-ink);outline-offset:2px}

/* ---------- header ---------- */
.tp-header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:10px 40px;background:var(--tp-bg);border-bottom:1px solid var(--tp-line);position:relative;z-index:50}
.tp-logo img{height:72px;width:auto;display:block}
.tp-nav{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:15px;font-weight:500}
.tp-nav ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.tp-nav a{display:block;padding:12px 14px;text-decoration:none}
.tp-nav a:hover{color:var(--tp-orange)}
.tp-nav .current-menu-item>a,.tp-nav .current_page_item>a{border-bottom:3px solid var(--tp-orange);font-weight:700}
.tp-phone{font-weight:700}
.tp-login{padding:10px 18px!important;margin-left:6px;border:2px solid var(--tp-ink);font-weight:700;background:var(--tp-ink);color:#fff}
.tp-login:hover{background:var(--tp-orange);border-color:var(--tp-orange);color:var(--tp-black)!important}
.tp-burger{display:none;background:none;border:2px solid var(--tp-ink);padding:10px 14px;font:inherit;font-weight:700;cursor:pointer}
@media(max-width:900px){
 .tp-header{padding:10px 20px}
 .tp-burger{display:block}
 .tp-nav{display:none;width:100%;flex-direction:column;align-items:stretch}
 .tp-nav.is-open{display:flex}
 .tp-nav ul{flex-direction:column;width:100%}
 .tp-login{margin:6px 0 0;text-align:center}
}

/* ---------- footer ---------- */
.tp-footer{background:var(--tp-black);color:var(--tp-line);padding:48px 40px;font-size:14px;line-height:1.9}
.tp-footer__in{max-width:var(--tp-wrap);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:32px}
.tp-footer strong{color:#fff}
.tp-footer img{width:96px;height:auto;display:block;margin-bottom:12px}
.tp-footer ul{list-style:none;margin:0;padding:0}
.tp-footer a{text-decoration:none}.tp-footer a:hover{color:var(--tp-peach);text-decoration:underline}

/* ---------- plain content ---------- */
.tp-main{min-height:50vh}
.tp-page{max-width:900px;margin:0 auto;padding:56px 24px}
.tp-page h1{font-weight:900;font-size:44px;text-transform:uppercase;margin:0 0 24px}
.tp-fullwidth .tp-page{max-width:none;padding:0}

/* ---------- Elementor / builder blocks (class driven, so they work with or without Elementor) ---------- */
.e-con.tupa-sec,.tupa-sec{padding:72px 40px;width:100%;max-width:none}
.tupa-sec--peach{background:var(--tp-peach)}
.tupa-sec--black{background:var(--tp-black);color:#fff}
.tupa-sec--ink{background:var(--tp-ink);color:var(--tp-bg)}
.tupa-sec--light{background:var(--tp-bg)}
.tupa-sec--tight{padding-top:56px;padding-bottom:56px}
.e-con.tupa-wrap,.tupa-wrap{max-width:var(--tp-wrap);margin:0 auto;width:100%;padding:0}
.e-con.tupa-row,.tupa-row{display:flex;flex-direction:row;flex-wrap:wrap;gap:48px;align-items:center}
.e-con.tupa-row>*,.tupa-row>*{flex:1 1 420px;min-width:0}
.e-con.tupa-grid,.tupa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--min,300px),1fr));gap:16px}
.tupa-grid--250{--min:250px}.tupa-grid--340{--min:340px;gap:40px 36px}.tupa-grid--220{--min:220px}
.tupa-hero{position:relative;min-height:720px;display:flex;align-items:center;padding:72px 40px;color:#fff;background:var(--tp-black) center 60%/cover no-repeat}
.tupa-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,13,13,.82) 0%,rgba(13,13,13,.55) 45%,rgba(13,13,13,0) 80%);pointer-events:none}
.tupa-hero>*{position:relative}
.tupa-hero .tupa-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:0}
.tupa-page-hero{background:var(--tp-black);color:#fff;padding:56px 40px}
.tupa-kicker,.tupa-kicker *{font-size:14px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--tp-peach);margin:0}
.tupa-h1 .elementor-heading-title,.tupa-h1 h1{margin:0;font-weight:900;font-size:72px;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:inherit}
.tupa-h1--md .elementor-heading-title,.tupa-h1--md h1{font-size:52px}
.tupa-sub .elementor-heading-title,.tupa-sub h2,.tupa-sub p{margin:8px 0 20px;font-weight:500;font-size:22px;letter-spacing:.2em;text-transform:uppercase;color:var(--tp-peach)}
.tupa-lead .elementor-heading-title,.tupa-lead h3{margin:0 0 12px;font-weight:700;font-size:30px;color:inherit}
.tupa-h2 .elementor-heading-title,.tupa-h2 h2{margin:0 0 28px;font-weight:900;font-size:40px;line-height:1.1;text-transform:uppercase;letter-spacing:.02em;color:inherit}
.tupa-h2--sm .elementor-heading-title,.tupa-h2--sm h2{font-size:34px}
.tupa-h2--xl .elementor-heading-title,.tupa-h2--xl h2{font-size:48px}
.tupa-text,.tupa-text p,.tupa-text li{font-size:17px;line-height:1.7;color:inherit}
.tupa-text--muted,.tupa-text--muted p,.tupa-text--muted li{color:#3A3B3B}
.tupa-text--hero p{font-size:18px;max-width:600px;color:#F1EFE8}
.tupa-text p{margin:0 0 14px}
.tupa-btns{display:flex;gap:12px;flex-wrap:wrap}
.tupa-btn,.tupa-button .elementor-button,.tupa-button a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:14px 26px;background:var(--tp-orange);color:var(--tp-black);border:2px solid var(--tp-orange);border-radius:0;font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;font-family:inherit;cursor:pointer;line-height:1.2}
.tupa-btn:hover,.tupa-button .elementor-button:hover,.tupa-button a:hover{background:#e5521a;border-color:#e5521a;color:var(--tp-black)}
.tupa-button--ink .elementor-button,.tupa-button--ink a{background:var(--tp-ink);border-color:var(--tp-ink);color:#fff}
.tupa-button--ink .elementor-button:hover,.tupa-button--ink a:hover{background:var(--tp-orange);border-color:var(--tp-orange);color:var(--tp-black)}
.tupa-button--ghost .elementor-button,.tupa-button--ghost a{background:transparent;border-color:#fff;color:#fff}
.tupa-button--ghost .elementor-button:hover,.tupa-button--ghost a:hover{background:#fff;color:var(--tp-black)}
.tupa-feature{background:var(--tp-bg);padding:22px 24px;display:flex;gap:16px;align-items:center;font-size:17px;font-weight:700}
.tupa-feature::before{content:"";flex:none;width:12px;height:12px;border-radius:50%;background:var(--tp-orange)}
.tupa-feature p,.tupa-feature .elementor-heading-title{margin:0;font-size:17px;font-weight:700;line-height:1.3}
.tupa-photo img{display:block;width:100%;object-fit:cover}
.tupa-photo--tall img{height:520px;max-width:420px}
.tupa-photo--card img{height:180px}
.tupa-photo--sq img{height:300px}
.tupa-photo--auto img{height:auto;max-width:560px}
.tupa-card{background:var(--tp-ink);display:flex;flex-direction:column;color:#fff}
.tupa-card__body{padding:18px 20px 22px}
.tupa-card__name{font-weight:700;font-size:20px;text-transform:uppercase;margin:0}
.tupa-card__price{font-weight:900;font-size:36px;color:var(--tp-orange);line-height:1.1;margin:4px 0 0}
.tupa-card__price small{font-size:14px;font-weight:500;color:var(--tp-line)}
.tupa-card__note{font-size:13px;color:#C9C6BD;margin:0}
.tupa-list li{margin:0 0 6px}
.tupa-veh h2,.tupa-veh .tupa-veh__t{margin:0 0 18px;font-weight:500;font-size:24px;line-height:1.25;color:var(--tp-orange)}
.tupa-veh__t span{font-weight:400;font-size:16px;color:var(--tp-line)}
.tupa-veh__pic{background:var(--tp-bg);height:200px;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.tupa-veh__pic img{width:100%;height:100%;object-fit:cover}
.tupa-veh__pic--contain img{object-fit:contain}
.tupa-veh__sec{border-top:1px solid #4A4B4B;padding:14px 0 6px}
.tupa-veh__sec h4{margin:0 0 12px;font-size:14px;font-weight:500;color:var(--tp-orange)}
.tupa-veh__sec p{margin:0 0 14px;font-size:14px;line-height:1.65;color:var(--tp-line)}
.tupa-veh__sec ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.tupa-veh__sec li{font-size:14px;color:var(--tp-line);display:flex;gap:10px;align-items:baseline}
.tupa-veh__sec li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--tp-orange);transform:translateY(-2px)}
.tupa-veh .tupa-btn{margin-top:20px;align-self:flex-start}
.tupa-veh{display:flex;flex-direction:column}
.tupa-box{background:#fff;border:1px solid var(--tp-line);padding:24px 26px}
.tupa-box--peach{background:var(--tp-peach);border:0}
.tupa-box--black{background:var(--tp-black);color:#fff;border:0}
.tupa-box h3{margin:0 0 10px;font-weight:900;font-size:18px;text-transform:uppercase}
.tupa-box p{margin:0;font-size:16px;line-height:1.7}
.tupa-stack{display:flex;flex-direction:column;gap:22px}
.tupa-map{height:200px;background:#E9E5DA;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:#5A5B5B;text-transform:uppercase;letter-spacing:.06em}
.tupa-narrow{max-width:900px;margin:0 auto}
@media(max-width:700px){
 .e-con.tupa-sec,.tupa-sec,.tupa-page-hero,.tupa-hero{padding-left:20px;padding-right:20px}
 .tupa-h1 .elementor-heading-title,.tupa-h1 h1{font-size:44px}
 .tupa-h2 .elementor-heading-title,.tupa-h2 h2{font-size:30px}
 .tupa-h1--md .elementor-heading-title,.tupa-h1--md h1{font-size:38px}
 .tupa-hero{min-height:560px}
}

/* ---------- WooCommerce (checkout for BCI payments) ---------- */
.woocommerce .button,.woocommerce button.button,.woocommerce a.button,.woocommerce #respond input#submit{background:var(--tp-orange);color:var(--tp-black);border-radius:0;text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.woocommerce .button:hover{background:#e5521a;color:var(--tp-black)}
.woocommerce-message,.woocommerce-info{border-top-color:var(--tp-orange)}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{border:1px solid #BDB8AC;border-radius:0;padding:12px 14px;min-height:48px}

/* page hero with a photo */
.tupa-page-hero{position:relative;background-size:cover;background-position:center 40%;background-repeat:no-repeat;min-height:260px;display:flex;align-items:center}
.tupa-page-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,13,13,.85),rgba(13,13,13,.45));pointer-events:none}
.tupa-page-hero>*{position:relative;width:100%}
.tupa-page-hero .tupa-text--hero p{margin-top:12px}
.tupa-page-hero .tupa-kicker{margin-bottom:10px}

/* vehicle picture boxes */
.tupa-veh__pic{overflow:hidden;flex:none;width:100%}
.tupa-veh__pic>*,.tupa-veh__pic .elementor-widget-container{width:100%;height:100%}
.tupa-veh__pic img{width:100%;height:100%;object-fit:cover;display:block}
.tupa-veh__pic--contain img{object-fit:contain}
.tupa-veh__pic--contain{background:#fff}
.tupa-sec--ink .tupa-h1{margin-bottom:8px}
.tupa-sec--ink .tupa-wrap>.tupa-text{margin-bottom:32px}
.tupa-veh__t{margin-bottom:18px}
.tupa-card .tupa-photo{width:100%}

.tupa-row.tupa-row--top{align-items:flex-start}
.tupa-mapembed iframe{width:100%;height:320px;border:0;display:block}
.tp-footer .elementor-widget-text-editor,.tp-footer .elementor-widget-text-editor a{color:var(--tp-line)}

/* ===== Elementor kit overrides: keep Tupa colours even with Elementor's default global styles ===== */
body.tupa-theme .tp-header{padding:10px 40px!important;background:#FAFAF7}
body.tupa-theme .tp-logo img{height:72px!important;width:auto!important;max-width:none}
body.tupa-theme .tp-nav a{color:#191A1A}
body.tupa-theme .tp-login{color:#fff!important}
body.tupa-theme .elementor-widget-heading .elementor-heading-title,body.tupa-theme .elementor-widget-text-editor,body.tupa-theme .elementor-widget-text-editor p{font-family:'DM Sans',system-ui,sans-serif}
body.tupa-theme .tupa-sec--light,body.tupa-theme .tupa-sec--peach{color:#191A1A}
body.tupa-theme .tupa-sec--light .elementor-heading-title,body.tupa-theme .tupa-sec--peach .elementor-heading-title{color:#191A1A}
body.tupa-theme .tupa-sec--black,body.tupa-theme .tupa-sec--ink,body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{color:#fff}
body.tupa-theme .tupa-sec--black .elementor-heading-title,body.tupa-theme .tupa-sec--ink .elementor-heading-title,body.tupa-theme .tupa-hero .elementor-heading-title,body.tupa-theme .tupa-page-hero .elementor-heading-title{color:#fff}
body.tupa-theme .tupa-hero .tupa-sub .elementor-heading-title,body.tupa-theme .tupa-sub .elementor-heading-title{color:#FAD09F}
body.tupa-theme .tupa-kicker,body.tupa-theme .tupa-kicker p{color:#FAD09F}
body.tupa-theme .tupa-text--hero p,body.tupa-theme .tupa-text--hero{color:#F1EFE8}
body.tupa-theme .tupa-sec--light .tupa-text,body.tupa-theme .tupa-sec--light .tupa-text p,body.tupa-theme .tupa-sec--light .tupa-text li{color:#3A3B3B}
body.tupa-theme .tupa-sec--peach .tupa-text,body.tupa-theme .tupa-sec--peach .tupa-text p{color:#191A1A}
body.tupa-theme .tupa-sec--ink .tupa-text,body.tupa-theme .tupa-sec--ink .tupa-text p{color:#E6E3DA}
body.tupa-theme .tupa-h1 .elementor-heading-title{font-size:72px;font-weight:900;text-transform:uppercase;line-height:1}
body.tupa-theme .tupa-h1--md .elementor-heading-title{font-size:52px}
body.tupa-theme .tupa-h2 .elementor-heading-title{font-size:40px;font-weight:900;text-transform:uppercase;line-height:1.1}
body.tupa-theme .tupa-h2--sm .elementor-heading-title{font-size:34px}
body.tupa-theme .tupa-h2--xl .elementor-heading-title{font-size:48px}
body.tupa-theme .tupa-lead .elementor-heading-title{font-size:30px;font-weight:700}
body.tupa-theme .tupa-sub .elementor-heading-title{font-size:22px;font-weight:500;letter-spacing:.2em;text-transform:uppercase}
/* buttons */
body.tupa-theme .tupa-button .elementor-button,body.tupa-theme .tupa-button a.elementor-button{background:#FF6123!important;color:#0D0D0D!important;border:2px solid #FF6123!important;border-radius:0!important;font-family:'DM Sans',sans-serif;font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;padding:14px 26px;box-shadow:none}
body.tupa-theme .tupa-button .elementor-button:hover{background:#e5521a!important;border-color:#e5521a!important;color:#0D0D0D!important}
body.tupa-theme .tupa-button--ink .elementor-button{background:#191A1A!important;border-color:#191A1A!important;color:#fff!important}
body.tupa-theme .tupa-button--ink .elementor-button:hover{background:#FF6123!important;border-color:#FF6123!important;color:#0D0D0D!important}
body.tupa-theme .tupa-button--ghost .elementor-button{background:transparent!important;border-color:#fff!important;color:#fff!important}
body.tupa-theme .tupa-button--ghost .elementor-button:hover{background:#fff!important;color:#0D0D0D!important}
body.tupa-theme .tp-login.tupa-button .elementor-button{background:#191A1A!important;border-color:#191A1A!important;color:#fff!important}
/* feature tiles */
body.tupa-theme .tupa-feature{display:flex;align-items:center;gap:16px;background:#FAFAF7;padding:22px 24px;margin:0}
body.tupa-theme .tupa-feature::before{flex:none;margin:0}
body.tupa-theme .tupa-feature .elementor-widget-container{margin:0}
body.tupa-theme .tupa-feature p{color:#191A1A!important;font-weight:700;font-size:17px;margin:0}
body.tupa-theme .tupa-btns{display:flex;flex-direction:row;gap:12px;flex-wrap:wrap}
body.tupa-theme .tupa-wrap>.elementor-widget:not(:last-child){margin-block-end:0}
body.tupa-theme .tupa-hero .tupa-wrap>*{margin:0}
body.tupa-theme .tupa-hero .tupa-btns{margin-top:12px}
body.tupa-theme .tupa-sec .tupa-btns,body.tupa-theme .tupa-sec .tupa-grid{--gap:16px}
body.tupa-theme .tupa-card__name,body.tupa-theme .tupa-card__price{font-family:'DM Sans',sans-serif}
body.tupa-theme .tupa-card .tupa-card__name{color:#fff}
body.tupa-theme .tupa-veh .tupa-veh__t,body.tupa-theme .tupa-veh__sec h4{color:#FF6123}
body.tupa-theme .tupa-veh__sec p,body.tupa-theme .tupa-veh__sec li{color:#E6E3DA}
body.tupa-theme .tupa-box h3{color:inherit}
body.tupa-theme .tupa-box--black,body.tupa-theme .tupa-box--black p{color:#fff}
body.tupa-theme .tupa-box--peach,body.tupa-theme .tupa-box--peach p{color:#191A1A}

/* ===== v2 design pass: calmer, photo-led, sentence-case headlines ===== */
body.tupa-theme{--r:4px}
body.tupa-theme .tp-header{position:sticky;top:0;z-index:60;box-shadow:0 1px 0 var(--tp-line)}
body.tupa-theme .tp-nav a{position:relative}
body.tupa-theme .tp-nav li a::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2px;background:var(--tp-orange);transform:scaleX(0);transform-origin:left;transition:transform .2s}
body.tupa-theme .tp-nav li a:hover::after,body.tupa-theme .tp-nav .current-menu-item>a::after{transform:scaleX(1)}
body.tupa-theme .tp-nav .current-menu-item>a{border-bottom:0}
@media(prefers-reduced-motion:reduce){body.tupa-theme .tp-nav li a::after{transition:none}}

/* headlines: sentence case, tight */
body.tupa-theme .tupa-h1 .elementor-heading-title,body.tupa-theme .tupa-h1 h1,
body.tupa-theme .tupa-h2 .elementor-heading-title,body.tupa-theme .tupa-h2 h2{text-transform:none;letter-spacing:-.02em}
body.tupa-theme .tupa-h1 .elementor-heading-title,body.tupa-theme .tupa-h1 h1{font-size:clamp(44px,7vw,96px);line-height:.98}
body.tupa-theme .tupa-h1--md .elementor-heading-title,body.tupa-theme .tupa-h1--md h1{font-size:clamp(38px,5vw,64px);line-height:1.02}
body.tupa-theme .tupa-h2 .elementor-heading-title,body.tupa-theme .tupa-h2 h2{font-size:clamp(30px,3.8vw,48px);line-height:1.05;margin-bottom:22px}
body.tupa-theme .tupa-h2--xl .elementor-heading-title{font-size:clamp(36px,5vw,64px)}
body.tupa-theme .tupa-h2--sm .elementor-heading-title{font-size:clamp(26px,3vw,36px)}

/* hero */
body.tupa-theme .tupa-hero{min-height:min(88vh,840px);align-items:flex-end;padding:96px 40px 120px;background-position:center 55%}
body.tupa-theme .tupa-hero::before{background:linear-gradient(0deg,rgba(13,13,13,.78) 0%,rgba(13,13,13,.25) 45%,rgba(13,13,13,0) 100%),linear-gradient(90deg,rgba(13,13,13,.6) 0%,rgba(13,13,13,0) 60%)}
body.tupa-theme .tupa-herotag,body.tupa-theme .tupa-herotag p,body.tupa-theme .tupa-herotag{font-size:20px;font-weight:500;color:var(--tp-peach);margin:0 0 14px;text-transform:none;letter-spacing:0}
body.tupa-theme .tupa-text--hero p{font-size:20px;line-height:1.55;max-width:560px;margin:22px 0 28px}
body.tupa-theme .tupa-hero .tupa-wrap{align-items:flex-start}

/* quick availability bar overlaps the hero */
body.tupa-theme .tupa-quick{position:relative;z-index:5;margin-top:-56px;padding:0 40px}
body.tupa-theme .tupa-quickform{display:grid;grid-template-columns:1fr 1fr auto;gap:16px;align-items:end;background:#fff;padding:22px 24px;border-radius:var(--r);box-shadow:0 12px 40px rgba(13,13,13,.18);max-width:860px}
body.tupa-theme .tupa-quickform label{display:block;font-size:14px;font-weight:700;color:var(--tp-ink)}
body.tupa-theme .tupa-quickform input{display:block;width:100%;min-height:48px;margin-top:6px;padding:10px 12px;border:1px solid #bdb8ac;border-radius:0;font:inherit;font-size:16px}
body.tupa-theme .tupa-quickform .tupa-btn{min-height:48px}
@media(max-width:700px){body.tupa-theme .tupa-quick{padding:0 20px}body.tupa-theme .tupa-quickform{grid-template-columns:1fr}body.tupa-theme .tupa-hero{padding:72px 20px 96px}}

/* section rhythm */
body.tupa-theme .e-con.tupa-sec,body.tupa-theme .tupa-sec{padding:104px 40px}
@media(max-width:700px){body.tupa-theme .e-con.tupa-sec,body.tupa-theme .tupa-sec{padding:64px 20px}}

/* features: a ruled list, no boxes */
body.tupa-theme .tupa-grid--260{--min:300px;gap:28px 40px}
body.tupa-theme .tupa-feature{background:transparent;border-top:2px solid var(--tp-ink);padding:18px 0 0;gap:14px;align-items:center}
body.tupa-theme .tupa-feature::before{width:26px;height:26px;border-radius:50%;background:var(--tp-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%230d0d0d' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
body.tupa-theme .tupa-feature p{font-size:19px;font-weight:500;line-height:1.3}

/* photo treatments */
body.tupa-theme .tupa-photo img{border-radius:var(--r)}
body.tupa-theme .tupa-offset{position:relative;max-width:440px;width:100%}
body.tupa-theme .tupa-offset::before{content:"";position:absolute;inset:28px -24px -24px 28px;background:var(--tp-peach);border-radius:var(--r);z-index:0}
body.tupa-theme .tupa-offset .tupa-photo{position:relative;z-index:1}
body.tupa-theme .tupa-photo--tall img{height:560px;max-width:none;width:100%}
body.tupa-theme .tupa-gallery .tupa-photo:nth-child(2){margin-top:44px}
body.tupa-theme .tupa-photo--sq img{height:340px}

/* vehicle cards (home) */
body.tupa-theme .tupa-card{background:#161717;border-radius:var(--r);overflow:hidden}
body.tupa-theme .tupa-photo--card img{height:200px;border-radius:0}
body.tupa-theme .tupa-card__body{padding:18px 20px 22px}
body.tupa-theme .tupa-card__name{font-size:20px;font-weight:700;text-transform:none;margin:0}
body.tupa-theme .tupa-card__price{font-size:40px;font-weight:900;line-height:1;margin-top:10px;color:var(--tp-orange)}
body.tupa-theme .tupa-card__price small{font-size:15px;font-weight:500;color:var(--tp-line)}
body.tupa-theme .tupa-card__note{margin-top:6px}

/* prices page */
body.tupa-theme .tupa-veh{background:#222323;border-radius:var(--r);overflow:hidden;padding:0 0 26px}
body.tupa-theme .tupa-veh__pic{margin:0;height:230px;border-radius:0}
body.tupa-theme .tupa-veh>.elementor-widget,body.tupa-theme .tupa-veh>.tupa-text,body.tupa-theme .tupa-veh>.tupa-button,body.tupa-theme .tupa-veh>div:not(.tupa-veh__pic){padding-left:24px;padding-right:24px}
body.tupa-theme .tupa-veh__t{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:20px 0 14px}
body.tupa-theme .tupa-veh__t .n{font-size:24px;font-weight:700;color:#fff;line-height:1.2}
body.tupa-theme .tupa-veh__t .p{font-size:34px;font-weight:900;color:var(--tp-orange);white-space:nowrap}
body.tupa-theme .tupa-veh__t .p small{font-size:14px;font-weight:500;color:var(--tp-line)}
body.tupa-theme .tupa-veh__sec h4{font-size:15px;font-weight:700;color:#fff;margin-bottom:10px}
body.tupa-theme .tupa-veh .tupa-btn,body.tupa-theme .tupa-veh .tupa-button{margin-top:18px}

/* buttons: quieter tracking */
body.tupa-theme .tupa-btn,body.tupa-theme .tupa-button .elementor-button{letter-spacing:.04em;border-radius:2px!important}

/* page heroes */
body.tupa-theme .tupa-page-hero{min-height:240px;padding:64px 40px}
body.tupa-theme .tupa-page-hero .tupa-wrap{position:relative}

/* footer */
body.tupa-theme .tp-footer{border-top:6px solid var(--tp-orange);padding:64px 40px}

body.tupa-theme .tupa-hero .tupa-wrap>*{max-width:620px}
body.tupa-theme .tupa-hero .tupa-btns{max-width:none}
body.tupa-theme .tupa-features{margin-bottom:40px}
body.tupa-theme .tupa-sec>.tupa-wrap>.e-con:last-child .tupa-button,body.tupa-theme .tupa-sec .tupa-wrap>.tupa-button{margin-top:0}

/* mobile pass */
body.tupa-theme{overflow-x:clip}
body.tupa-theme .tupa-grid+.e-con,body.tupa-theme .tupa-grid+div,body.tupa-theme .tupa-grid+.tupa-button{margin-top:32px}
@media(max-width:700px){
 body.tupa-theme .tupa-offset{max-width:none;margin:0 0 24px}
 body.tupa-theme .tupa-offset::before{inset:20px -10px -16px 16px}
 body.tupa-theme .tupa-photo--tall img{height:380px}
 body.tupa-theme .tupa-hero{align-items:flex-end;background-position:70% 55%}
 body.tupa-theme .tupa-hero::before{background:linear-gradient(0deg,rgba(13,13,13,.85) 0%,rgba(13,13,13,.45) 55%,rgba(13,13,13,.1) 100%)}
 body.tupa-theme .tupa-herotag{font-size:17px}
 body.tupa-theme .tupa-text--hero p{font-size:18px}
 body.tupa-theme .tupa-gallery .tupa-photo:nth-child(2){margin-top:0}
 body.tupa-theme .tupa-photo--sq img{height:260px}
 body.tupa-theme .tupa-veh__t{flex-wrap:wrap}
 body.tupa-theme .tp-footer{padding:48px 20px}
}

/* softer shapes, matching the staff dashboard */
body.tupa-theme{--r:14px}
body.tupa-theme .tupa-btn,body.tupa-theme .tupa-button .elementor-button,body.tupa-theme .tupa-button a.elementor-button,body.tupa-theme .tp-login{border-radius:10px!important}
body.tupa-theme .tupa-quickform{border-radius:18px}
body.tupa-theme .tupa-quickform input,body.tupa-theme .tupa-booking input,body.tupa-theme .tupa-booking select,body.tupa-theme .tupa-booking textarea,body.tupa-theme .tupa-login input,body.tupa-theme .tupa-contact textarea,body.tupa-theme .tupa-my select,body.tupa-theme .tupa-my textarea{border-radius:10px}
body.tupa-theme .tupa-photo img,body.tupa-theme .tupa-offset::before{border-radius:var(--r)}
body.tupa-theme .tupa-card,body.tupa-theme .tupa-veh,body.tupa-theme .tupa-box,body.tupa-theme .tupa-car,body.tupa-theme .tupa-extra,body.tupa-theme .tupa-summary,body.tupa-theme .tupa-bk,body.tupa-theme .tupa-done,body.tupa-theme .tupa-fleet__card,body.tupa-theme .tupa-pay label{border-radius:var(--r)}
body.tupa-theme .tupa-car,body.tupa-theme .tupa-fleet__card,body.tupa-theme .tupa-card{overflow:hidden}
body.tupa-theme .tupa-card .tupa-photo img,body.tupa-theme .tupa-veh__pic img{border-radius:0}
body.tupa-theme .tupa-steps li{border-radius:999px;padding:8px 18px}
body.tupa-theme .tupa-pill,body.tupa-theme .tupa-low{border-radius:999px}
body.tupa-theme .tupa-note,body.tupa-theme .tupa-error{border-radius:10px}
body.tupa-theme .tupa-sec--peach,body.tupa-theme .tupa-sec--black,body.tupa-theme .tupa-sec--ink{border-radius:0}
body.tupa-theme .tupa-map iframe,body.tupa-theme .tupa-mapembed iframe,body.tupa-theme .tupa-mapembed{border-radius:var(--r);overflow:hidden}
body.tupa-theme .tupa-page-hero{border-radius:0}

/* Elementor flex children: let columns sit side by side */
body.tupa-theme .e-con.tupa-row>.e-con,body.tupa-theme .e-con.tupa-row>.elementor-element{--container-widget-width:auto;--container-widget-flex-grow:1;width:auto;flex:1 1 420px;min-width:0}
body.tupa-theme .e-con.tupa-row>.tupa-offset{flex:0 1 440px}
body.tupa-theme .e-con.tupa-grid>.e-con,body.tupa-theme .e-con.tupa-grid>.elementor-element{width:auto;--container-widget-width:auto;min-width:0}
body.tupa-theme .e-con.tupa-btns>.elementor-element{width:auto;--container-widget-width:auto}
body.tupa-theme .e-con.tupa-hero>.e-con,body.tupa-theme .e-con.tupa-sec>.e-con{width:100%;max-width:var(--tp-wrap)}
body.tupa-theme .e-con.tupa-hero{justify-content:flex-end}

/* Elementor: keep vehicle photos inside their box */
body.tupa-theme .tupa-veh .tupa-veh__pic{position:relative;display:block;height:230px;min-height:230px;max-height:230px;padding:0;overflow:hidden;flex:none}
body.tupa-theme .tupa-veh__pic .elementor-widget,body.tupa-theme .tupa-veh__pic .elementor-widget-container{position:absolute;inset:0;width:100%;height:100%;margin:0}
body.tupa-theme .tupa-veh__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
body.tupa-theme .tupa-veh__pic--contain img{object-fit:contain}
body.tupa-theme .tupa-mapembed iframe{display:block;width:100%;min-height:320px}

/* Elementor: keep section content on one left edge */
body.tupa-theme .tupa-sec>.tupa-wrap{align-items:stretch;text-align:left}
body.tupa-theme .tupa-sec>.tupa-wrap>.elementor-widget-heading{width:100%;align-self:stretch}
body.tupa-theme .tupa-sec>.tupa-wrap>.elementor-widget-heading .elementor-heading-title{text-align:left}
body.tupa-theme .tupa-narrow{margin:0;max-width:820px;width:100%;padding:0}
/* narrow blocks not inside a wrap stay centred */
body.tupa-theme .tupa-sec>.tupa-narrow{margin-left:auto;margin-right:auto}
body.tupa-theme .tupa-narrow .tupa-photo,body.tupa-theme .tupa-narrow .elementor-widget-image{margin-bottom:24px}
body.tupa-theme .tupa-wrap>.tupa-narrow--center{margin-left:auto;margin-right:auto;align-self:center}

/* ===== v1.x: transparent header over hero, orange burger, quick-form fit ===== */
body.tupa-theme .tp-header{position:absolute!important;top:0;left:0;right:0;width:100%;box-sizing:border-box;background:transparent!important;box-shadow:none!important;border-bottom:0!important}
body.tupa-theme .tp-nav a,body.tupa-theme .tp-phone{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.45)}
body.tupa-theme .tp-nav a:hover{color:#FF6123}
body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{padding-top:150px}
/* pages with no hero: header sits in the flow with dark text */
body.tupa-theme:not(:has(.tupa-hero,.tupa-page-hero)) .tp-header{position:relative!important}
body.tupa-theme:not(:has(.tupa-hero,.tupa-page-hero)) .tp-nav a,body.tupa-theme:not(:has(.tupa-hero,.tupa-page-hero)) .tp-phone{color:#191A1A;text-shadow:none}
body.tupa-theme .tp-login{text-shadow:none}
/* orange burger */
body.tupa-theme .tp-burger{position:relative;width:52px;height:48px;padding:0;font-size:0;line-height:0;color:transparent;background:transparent;border:2px solid #FF6123;border-radius:10px;cursor:pointer}
body.tupa-theme .tp-burger::before{content:"";position:absolute;left:12px;right:12px;top:15px;height:3px;border-radius:2px;background:#FF6123;box-shadow:0 9px 0 #FF6123,0 18px 0 #FF6123;transition:.2s}
body.tupa-theme .tp-burger[aria-expanded="true"]::before{top:23px;box-shadow:none;transform:rotate(45deg)}
body.tupa-theme .tp-burger[aria-expanded="true"]::after{content:"";position:absolute;left:12px;right:12px;top:23px;height:3px;border-radius:2px;background:#FF6123;transform:rotate(-45deg)}
@media(max-width:900px){
 body.tupa-theme .tp-header{padding:12px 20px!important}
 body.tupa-theme .tp-logo img{height:60px!important}
 body.tupa-theme .tp-nav.is-open{background:rgba(13,13,13,.4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:14px;padding:8px 12px;margin-top:4px}
 body.tupa-theme:not(:has(.tupa-hero,.tupa-page-hero)) .tp-nav.is-open{background:rgba(13,13,13,.06)}
 body.tupa-theme .tp-nav li{border-bottom:1px solid rgba(255,255,255,.18)}
 body.tupa-theme .tp-nav li:last-child{border-bottom:0}
 body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{padding-top:120px}
}
/* quick form: never overflow the card */
body.tupa-theme .tupa-quickform,body.tupa-theme .tupa-quickform *{box-sizing:border-box}
body.tupa-theme .tupa-quickform>*{min-width:0}
body.tupa-theme .tupa-quickform input{max-width:100%;-webkit-appearance:none;appearance:none;background:#fff;text-align:left;min-height:50px}
@media(max-width:700px){body.tupa-theme .tupa-quickform{padding:20px;gap:14px;width:100%}}
body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{position:relative}
body.tupa-theme .tupa-hero::before,body.tupa-theme .tupa-page-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:170px;background:linear-gradient(rgba(13,13,13,.55),rgba(13,13,13,0));pointer-events:none;z-index:0}
body.tupa-theme .tupa-hero>*,body.tupa-theme .tupa-page-hero>*{position:relative;z-index:1}
body.tupa-theme .tp-staff{font-size:14px;font-weight:600;opacity:.9}
body.tupa-theme .tupa-page-hero::before{height:260px;background:linear-gradient(rgba(13,13,13,.6),rgba(13,13,13,0))}
body.tupa-theme .tp-footer ul{margin:0;padding:0;list-style:none}
/* full hero overlay for readable text */
body.tupa-theme .tupa-hero::before,body.tupa-theme .tupa-page-hero::before{top:0;bottom:0;height:auto;background:linear-gradient(rgba(13,13,13,.6) 0,rgba(13,13,13,.42) 40%,rgba(13,13,13,.55) 100%)}
body.tupa-theme .tupa-hero .elementor-widget-text-editor,body.tupa-theme .tupa-page-hero .elementor-widget-text-editor,body.tupa-theme .tupa-hero p,body.tupa-theme .tupa-page-hero p{text-shadow:0 1px 8px rgba(0,0,0,.5)}
/* cleaner type: DM Sans, lighter headings, calmer buttons */
body.tupa-theme,body.tupa-theme button,body.tupa-theme input,body.tupa-theme select,body.tupa-theme textarea{font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
body.tupa-theme h1,body.tupa-theme h2,body.tupa-theme h3,body.tupa-theme .elementor-heading-title{font-family:'DM Sans',system-ui,sans-serif;letter-spacing:-.02em}
body.tupa-theme .tupa-h1 .elementor-heading-title,body.tupa-theme .tupa-h1 h1,body.tupa-theme .tp-page h1{font-weight:700;text-transform:none;letter-spacing:-.03em;line-height:1.05}
body.tupa-theme .tupa-h2 .elementor-heading-title,body.tupa-theme .tupa-h2 h2{font-weight:700;text-transform:none}
body.tupa-theme .tupa-box h3{font-weight:700;text-transform:none}
body.tupa-theme .tupa-card__price,body.tupa-theme .tupa-veh__t .p{font-weight:700}
body.tupa-theme .tupa-sub .elementor-heading-title,body.tupa-theme .tupa-sub h2,body.tupa-theme .tupa-sub p,body.tupa-theme .tupa-kicker,body.tupa-theme .tupa-kicker *{text-transform:none;letter-spacing:0;font-weight:500}
body.tupa-theme .tupa-btn,body.tupa-theme .tupa-button .elementor-button,body.tupa-theme .tupa-button a,body.tupa-theme .woocommerce .button{text-transform:none;letter-spacing:0;font-weight:600;font-size:16px}
body.tupa-theme .tp-nav{font-size:16px;font-weight:500}
/* smaller, calmer sizes */
body.tupa-theme .tupa-h1 .elementor-heading-title,body.tupa-theme .tupa-h1 h1,body.tupa-theme .tp-page h1{font-size:clamp(32px,4.6vw,52px)!important}
body.tupa-theme .tupa-h2 .elementor-heading-title,body.tupa-theme .tupa-h2 h2{font-size:clamp(26px,3vw,34px)!important}
body.tupa-theme .tupa-sub .elementor-heading-title,body.tupa-theme .tupa-sub h2,body.tupa-theme .tupa-sub p{font-size:clamp(17px,2vw,20px)!important}
body.tupa-theme .tupa-herotag,body.tupa-theme .tupa-herotag p{font-size:17px}
body.tupa-theme .tupa-card__price{font-size:30px}
body.tupa-theme .tupa-veh__t .p{font-size:26px}
body.tupa-theme .tupa-hero .elementor-widget-text-editor,body.tupa-theme .tupa-hero p{font-size:17px;line-height:1.6}
body.tupa-theme .tupa-btn,body.tupa-theme .tupa-button .elementor-button{min-height:46px;padding:12px 22px;font-size:15px}
body.tupa-theme .tp-logo img{height:60px!important}
body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{padding-top:130px}
@media(max-width:900px){body.tupa-theme .tupa-hero,body.tupa-theme .tupa-page-hero{padding-top:100px}body.tupa-theme .tp-logo img{height:52px!important}}
body.tupa-theme .tupa-btn,body.tupa-theme .tupa-button .elementor-button,body.tupa-theme .tupa-button a.elementor-button{text-transform:none!important;letter-spacing:0!important;font-weight:600!important}
/* logged-in admin bar: keep the transparent header below it */
body.tupa-theme.admin-bar .tp-header{top:32px}
@media(max-width:782px){body.tupa-theme.admin-bar .tp-header{top:46px}}
@media(max-width:600px){body.tupa-theme.admin-bar .tp-header{top:0;margin-top:46px}}
