/*
  Smiles To Miles public website refresh.
  Presentation only: shared page surfaces, cards, controls and responsive refinements.
  No routes, forms, database calls, authentication, or page content are changed here.
*/
:root{
  --stm-public-ink:#202124;
  --stm-public-muted:#707076;
  --stm-public-line:#e7e4df;
  --stm-public-soft:#faf8f5;
  --stm-public-cream:#fffaf3;
  --stm-public-orange:#f48600;
  --stm-public-orange-deep:#cc6500;
  --stm-public-shadow:0 20px 55px rgba(32,33,36,.10);
}

body{color:var(--stm-public-ink);background:var(--stm-public-soft)}
body:not(.stm-site) .ftco-section,
body:not(.stm-site) .ftco-section.ftco-no-pt{background:#fff}
body:not(.stm-site) .ftco-section{padding:92px 0}
body:not(.stm-site) .ftco-section h2,
body:not(.stm-site) h2{color:var(--stm-public-ink);font-weight:800;letter-spacing:-.035em;line-height:1.16}
body:not(.stm-site) p{color:var(--stm-public-muted);line-height:1.85}
body:not(.stm-site) .para-align{text-align:left!important}

/* Shared interior hero: a crisp editorial introduction across About, Contact, Services and listings. */
body:not(.stm-site) .about-hero-wrap{min-height:480px;position:relative;display:flex;align-items:flex-end;background-position:center;background-size:cover}
body:not(.stm-site) .about-hero-wrap .overlay{background:linear-gradient(90deg,rgba(17,18,20,.86),rgba(17,18,20,.43))}
body:not(.stm-site) .about-hero-wrap .slider-text{min-height:480px;align-items:flex-end!important;padding-bottom:82px}
body:not(.stm-site) .about-hero-wrap .breadcrumbs{margin-bottom:16px;color:rgba(255,255,255,.72);font-size:.73rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
body:not(.stm-site) .about-hero-wrap .breadcrumbs a{color:#fff}
body:not(.stm-site) .about-hero-wrap .bread{color:#fff;font-size:clamp(3rem,6vw,5.8rem);font-weight:800;letter-spacing:-.065em;line-height:.94}

/* Refined button and form language, retaining all existing Bootstrap behavior. */
body:not(.stm-site) .btn,
body:not(.stm-site) button.btn{border-radius:999px;padding:.74rem 1.35rem;font-weight:700;letter-spacing:.01em;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
body:not(.stm-site) .btn-primary{background:linear-gradient(135deg,var(--stm-public-orange),#ff9d22);border-color:transparent;box-shadow:0 12px 26px rgba(244,134,0,.22)}
body:not(.stm-site) .btn-primary:hover,
body:not(.stm-site) .btn-primary:focus{background:var(--stm-public-orange-deep);border-color:transparent;transform:translateY(-2px);box-shadow:0 16px 32px rgba(244,134,0,.28)}
body:not(.stm-site) input,
body:not(.stm-site) select,
body:not(.stm-site) textarea{border:1px solid var(--stm-public-line)!important;border-radius:12px!important;box-shadow:none!important}
body:not(.stm-site) input:focus,
body:not(.stm-site) select:focus,
body:not(.stm-site) textarea:focus{border-color:var(--stm-public-orange)!important;box-shadow:0 0 0 4px rgba(244,134,0,.12)!important}

/* About page content: hierarchy, readability and team cards without touching its copy. */
body:not(.stm-site) .about-intro{background:#fff;border:1px solid var(--stm-public-line);border-radius:24px;overflow:hidden;box-shadow:var(--stm-public-shadow)}
body:not(.stm-site) .about-intro .img{min-height:430px;background-size:cover;background-position:center}
body:not(.stm-site) .heading-section .subheading,
body:not(.stm-site) .subheading{display:inline-block;color:var(--stm-public-orange);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
body:not(.stm-site) .heading-section h2{font-size:clamp(2rem,3.5vw,3.25rem)}
body:not(.stm-site) .about-intro ul,
body:not(.stm-site) .container > .row ul{padding-left:0;list-style:none}
body:not(.stm-site) .about-intro li,
body:not(.stm-site) .container > .row li{position:relative;padding:10px 0 10px 30px;color:var(--stm-public-muted);line-height:1.65}
body:not(.stm-site) .about-intro li:before,
body:not(.stm-site) .container > .row li:before{content:'✓';position:absolute;left:0;top:10px;color:var(--stm-public-orange);font-weight:800}
body:not(.stm-site) .our-team-section{background:var(--stm-public-cream);padding:88px 0!important}
body:not(.stm-site) .section-title{font-size:clamp(2rem,3.5vw,3.25rem);margin-bottom:2.5rem!important}
body:not(.stm-site) .team-link{display:block;color:inherit;text-decoration:none}
body:not(.stm-site) .team-card{height:100%;background:#fff;border:1px solid var(--stm-public-line);border-radius:20px;overflow:hidden;box-shadow:0 10px 28px rgba(32,33,36,.06);transition:transform .24s ease,box-shadow .24s ease}
body:not(.stm-site) .team-link:hover .team-card{transform:translateY(-6px);box-shadow:var(--stm-public-shadow)}
body:not(.stm-site) .team-photo{width:100%;height:280px;object-fit:cover}
body:not(.stm-site) .team-info{padding:20px;text-align:left}
body:not(.stm-site) .team-name{font-size:1.05rem;font-weight:800;margin:0 0 5px}
body:not(.stm-site) .team-info small{color:var(--stm-public-orange);font-weight:700}

/* Listing cards and destination surfaces. */
body:not(.stm-site) .destination-wrap .destination,
body:not(.stm-site) .destination-wrap .text,
body:not(.stm-site) .blog-entry,
body:not(.stm-site) .block-21{border-radius:18px}
body:not(.stm-site) .destination-wrap .destination,
body:not(.stm-site) .blog-entry{overflow:hidden;background:#fff;border:1px solid var(--stm-public-line);box-shadow:0 10px 28px rgba(32,33,36,.06);transition:transform .22s ease,box-shadow .22s ease}
body:not(.stm-site) .destination-wrap .destination:hover,
body:not(.stm-site) .blog-entry:hover{transform:translateY(-5px);box-shadow:var(--stm-public-shadow)}
body:not(.stm-site) .destination-wrap .text{padding:22px}
body:not(.stm-site) .destination-wrap h3 a,
body:not(.stm-site) .blog-entry .heading a{color:var(--stm-public-ink);font-weight:800}
body:not(.stm-site) .destination-wrap h3 a:hover,
body:not(.stm-site) .blog-entry .heading a:hover{color:var(--stm-public-orange);text-decoration:none}

/* Header and the existing login portal, scoped to the public header only. */
.stm-public-header{z-index:1000}
.stm-site .stm-nav-shell{border-radius:18px!important}
.stm-site .stm-nav-quote{border-radius:999px!important}
.stm-site .stm-account-button{border-radius:999px!important}
.stm-site .stm-login-portal-menu{padding:12px!important;border-radius:22px!important}
.stm-site .stm-login-portal-heading{position:relative;padding:15px 14px 16px!important}
.stm-site .stm-login-portal-heading:before{content:'';display:block;width:44px;height:3px;margin-bottom:10px;border-radius:10px;background:linear-gradient(90deg,var(--stm-orange),#ffb04b)}
.stm-site .stm-login-portal-option{border:1px solid transparent!important}
.stm-site .stm-login-portal-option:hover{border-color:rgba(244,134,0,.18)!important}
.stm-site .stm-login-portal-icon{border-radius:14px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9)}

/* Footer polish applies everywhere while leaving its widgets, enquiry modal and scripts intact. */
.ftco-footer{background-color:#202124!important;background-blend-mode:soft-light}
.ftco-footer .footer-logo{filter:drop-shadow(0 8px 16px rgba(0,0,0,.26))}
.ftco-footer a:hover{color:var(--stm-public-orange)!important}

/* Shared conversion section for interior public pages. */
.stm-shared-cta{position:relative;overflow:hidden;padding:82px 0;background:linear-gradient(115deg,#ff9817 0%,#f17b00 51%,#dc6800 100%)}
.stm-shared-cta:before,.stm-shared-cta:after{content:'';position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%;pointer-events:none}.stm-shared-cta:before{width:570px;height:570px;right:-155px;top:-340px}.stm-shared-cta:after{width:430px;height:430px;bottom:-330px;left:-210px}
.stm-shared-cta-card{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:46px}.stm-shared-cta-copy{max-width:780px}.stm-shared-cta-kicker{display:block;margin-bottom:12px;color:rgba(255,255,255,.84);font-size:.72rem;font-weight:800;letter-spacing:.18em}.stm-shared-cta h2{margin:0 0 15px;color:#26190e;font-size:clamp(2.5rem,5.1vw,5.15rem);font-weight:800;letter-spacing:-.065em;line-height:.98}.stm-shared-cta p{max-width:650px;margin:0;color:rgba(42,27,14,.82);font-size:1.05rem;line-height:1.7}.stm-shared-cta-points{display:flex;gap:21px;flex-wrap:wrap;margin-top:21px;color:rgba(42,27,14,.88);font-size:.78rem;font-weight:800}.stm-shared-cta-points i{margin-right:6px;color:#fff}
.stm-shared-cta-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;flex:0 0 auto;min-width:225px;min-height:63px;padding:0 29px;border:1px solid rgba(255,255,255,.74);border-radius:16px;background:rgba(255,255,255,.08);box-shadow:none;color:#fff;font:700 1rem Poppins,sans-serif;cursor:pointer;backdrop-filter:blur(8px);transition:background .22s ease,color .22s ease,transform .22s ease}.stm-shared-cta-button:hover{background:#fff;color:#d86900;transform:translateY(-3px)}
@media(max-width:767px){.stm-shared-cta{padding:65px 0}.stm-shared-cta-card{display:block}.stm-shared-cta h2{font-size:clamp(2.35rem,11vw,4rem)}.stm-shared-cta-button{width:100%;margin-top:30px}.stm-shared-cta-points{gap:12px 18px}}

@media (max-width:767px){
  body:not(.stm-site) .ftco-section{padding:64px 0}
  body:not(.stm-site) .about-hero-wrap,
  body:not(.stm-site) .about-hero-wrap .slider-text{min-height:390px}
  body:not(.stm-site) .about-hero-wrap .slider-text{padding-bottom:54px}
  body:not(.stm-site) .about-intro{border-radius:18px}
  body:not(.stm-site) .about-intro .img{min-height:280px}
  body:not(.stm-site) .team-photo{height:250px}
  body:not(.stm-site) .our-team-section{padding:64px 0!important}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}
