/* Layout corrections layered over the complete, locally hosted Digit theme.
   Use a consistent 8px spacing rhythm and normal flow for content sections. */
:root { --brand: #D12420; --section-space: 96px; --content-gap: 32px; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
[id] { scroll-margin-top: 0; }
body { margin: 0; }
#wrapper { position: relative; isolation: isolate; }
main { min-width: 0; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button.accordion-action, button.attachment, button.close-mb-menu { border: 0; background: transparent; color: inherit; text-align: left; }
button.accordion-action { width: 100%; }
button.icon-close-popup { background: transparent; border: 0; color: white; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid var(--brand); outline-offset: 5px; }
.skip-link { position: fixed; left: 24px; top: -80px; z-index: 10010; background: white; padding: 12px 24px; border-radius: 12px; color: #09090b; }
.skip-link:focus { top: 24px; }
.effectFade { opacity: 1; }
.flat-spacing { padding-top: var(--section-space); padding-bottom: var(--section-space); }
.heading-section { margin-bottom: 48px; }
.heading-title { margin-top: 0; font-weight: 600; text-wrap: balance; }
.section-about-us .heading-section { margin-bottom: 48px; }
.section-about-us { min-height: 0 !important; }
.section-hero { min-height: 0; }
.section-hero .content-wrap { padding: 176px 0 80px !important; }
.section-hero:not(.v1):not(.v2) .content-wrap { padding-bottom: 64px !important; }
.section-hero .content-wrap .sub { max-width: 100%; width: fit-content; line-height: 1.5; }
.section-hero .content-wrap .title { font-size: clamp(40px, 5.5vw, 80px); line-height: 1.1; margin-bottom: 32px; }
.section-hero .content-wrap .title .title2 { align-items: center; row-gap: 24px; }
.section-hero .content-wrap .title-icon { height: 112px; width: 255px; flex-shrink: 0; }
.section-hero .content-wrap .title-icon .title-icon-wrap { height: 144px; top: -12px; }
.section-hero .content-wrap .title-icon .box { margin-top: 16px; }
.section-hero .content-wrap .text { margin-top: 0; line-height: 1.7; }
.section-hero .scroll-more { left: auto; transform: none; margin: 0 auto; bottom: auto; }
.hero-samui-glass-strip { gap: 24px; padding: 24px; margin-top: 40px; }
.hero-samui-card { min-width: 0; }
.hero-samui-card .card-label { margin-top: 4px; }
.section-about-us .col-left { gap: 32px; }
.section-about-us .col-left .sub { width: fit-content; max-width: 100%; line-height: 1.6; }
.section-about-us .col-left img { margin-top: 0; max-height: 360px; object-fit: contain; }
.section-about-us .review-box { padding: 32px; }
.section-about-us .review-box .desc { margin-bottom: 32px; }
.section-about-us .review-box .counter { font-size: clamp(64px, 7vw, 104px); line-height: 1; margin: 0; }
.section-about-us .box-quotes { padding: 24px; gap: 24px; }
.section-about-us .box-quotes .image { width: 120px; height: 200px; }
.section-about-us .box-quotes .content { margin-top: 0; min-width: 0; }
.section-about-us .box-quotes .cite { flex-wrap: wrap; }
.section-partner { padding: 0 0 64px; }
.partner-wrap { gap: 32px; }
.infiniteSlide_partner { display: flex; gap: 16px; overflow: auto; padding: 16px 8px 24px; scrollbar-width: thin; scroll-snap-type: x proximity; }
.partner-brand-pill { flex-shrink: 0; scroll-snap-align: start; }
.section-services > .container > .row { position: relative; row-gap: 32px; }
.section-services .col-left { margin-bottom: 0 !important; }
.section-services .services-image { position: relative !important; inset: auto; margin: 0; max-width: none; width: calc(100% - 24px); height: 320px; flex-basis: calc(100% - 24px); margin-inline: 12px; }
.section-services .heading-section { margin-bottom: 32px !important; }
.accordion-faq_item .accordion-title { padding-right: 56px; overflow-wrap: break-word; }
.accordion-faq_item .accordion-content { padding-bottom: 24px; }
.featured-works-list { gap: 32px; }
.section-featured-works .heading-section { margin-bottom: 40px !important; }
.featured-works-item .image > img { display: block; aspect-ratio: 2.15; height: auto; object-fit: cover; }
.featured-works-item .content { padding: 24px; }
.featured-works-item .bot { gap: 32px; }
.featured-works-item .image:focus-within .view-project { visibility: visible; opacity: 1; }
.process-slide { margin-left: 0; min-width: 0; }
.process-heading .heading-section { margin-bottom: 32px !important; }
.process-card { height: 100%; padding: 32px; }
.process-card .icon { margin-bottom: 40px; }
.process-card .content { margin-bottom: 40px; }
.process-card .bot .number { font-size: 48px; line-height: 1; }
.section-tools { overflow: hidden; }
.section-tools:not(.v2) { margin-top: 0; }
.tool-wrap .tool-image-box { margin: 32px 0 0; }
.section-work-single, .section-services-single { margin-top: 0 !important; padding-top: 64px !important; }
.section-work-single .wrap-image > img { display: block; height: auto !important; max-height: 720px; object-fit: contain; }
.section-work-single .image > img { height: 360px; object-fit: cover; }
.section-work-single .heading { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.2; }
.case-meta-grid { margin-bottom: 48px; gap: 24px; }
.case-meta-grid .meta-cell { min-width: 0; }
.meta-v { overflow-wrap: anywhere; }
.team-item { padding: 32px; }
.team-item > .image { aspect-ratio: 1.3; }
.team-item.style-1 .top { gap: 24px; flex-wrap: wrap; }
.team-item.style-1 .top .image { width: 112px; height: 112px; flex-shrink: 0; }
.team-item .sub { line-height: 1.6; }
.section-testimonials .cite { flex-wrap: wrap; row-gap: 8px; }
.testimonial-image img, .testimonial-image-v2 img { display: block; width: 100%; height: 460px; object-fit: cover; }
.testimonials-v2-wrap { gap: 40px; align-items: center; }
.section-pricing .pricing-item { padding: 32px; }
.pricing-item .heading { margin-block: 24px; }
.pricing-item .content { line-height: 1.65; }
.accordion-asked .accordion-button { gap: 24px; line-height: 1.5; }
.accordion-asked .accordion-button span { flex-shrink: 0; }
.form-contact .form-thank-you { color: #09090b !important; line-height: 1.6; }
.form-contact .form-thank-you a { color: var(--brand) !important; text-decoration: underline; margin-top: 8px; display: inline-block; }
footer .footer-content { padding-top: 64px; }
footer .footer-bottom { gap: 24px; flex-wrap: wrap; }
footer .footer-image { margin-top: 0; }
.dialog-open { overflow: hidden !important; }
.local-dialog-backdrop { position: fixed; inset: 0; z-index: 9994; background: rgb(9 9 11 / .45); backdrop-filter: blur(6px); }
.offcanvas-color { z-index: 10000 !important; max-width: calc(100% - 24px); }
.offcanvas-menu .offcanvas-content { padding-block: 24px; }
.offcanvas-menu .canvas_center { overflow-y: auto; justify-content: flex-start; padding-block: 24px; }
.offcanvas-menu .canvas_foot { flex-shrink: 0; }
.offcanvas-menu.show .canvas_head, .offcanvas-menu.show .canvas_foot, .offcanvas-menu.show .nav-ul-mb li .item { opacity: 1; transform: none; }
.tf-left-bar { z-index: 9980; }
#goTop { z-index: 9980; }
.local-cursor { display: none; position: fixed; width: 28px; height: 28px; margin: -14px 0 0 -14px; border: 2px solid var(--brand); border-radius: 50%; z-index: 10020; pointer-events: none; }
@media (pointer: fine) { .custom-cursor .local-cursor { display: block; } }
@media (max-width: 1199px) {
  :root { --section-space: 80px; }
  .tf-header .header-location-pill { display: none; }
  .tf-header .nav-menu-main { gap: 16px; }
  .hero-samui-glass-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-samui-card:nth-child(2) { border-right: 0; }
}
@media (max-width: 991px) {
  :root { --section-space: 64px; }
  .section-hero .content-wrap { padding: 144px 0 64px !important; }
  .section-about-us > .container > .row, .section-testimonials > .container > .row, .section-process > .container > .row { row-gap: 32px; }
  .section-services .col-left { margin-bottom: 0 !important; }
  .section-services .services-image { height: 280px; margin-top: 0; }
  .team-item.style-1 .top .image { width: 96px; height: 96px; }
  .testimonial-image img, .testimonial-image-v2 img { height: 360px; margin-top: 0; }
  .testimonials-v2-wrap { gap: 32px; }
}
@media (max-width: 767px) {
  :root { --section-space: 56px; }
  html { scroll-padding-top: 96px; }
  .container { padding-inline: 20px; }
  .section-contact .container { padding-inline: 12px; }
  .section-hero .content-wrap { padding: 128px 0 56px !important; }
  .section-hero .content-wrap .sub { font-size: 12px; padding: 10px 16px !important; gap: 8px; }
  .section-hero .content-wrap .sub svg { flex-shrink: 0; }
  .section-hero .content-wrap .title { font-size: clamp(36px, 8.5vw, 58px); line-height: 1.12; margin-bottom: 24px; }
  .section-hero .content-wrap .title-icon { transform: scale(.8); margin: 0 0 -8px; height: 112px; }
  .section-hero .content-wrap .title .title2 { gap: 16px; margin-top: 8px; }
  .section-hero .content-wrap .text br { display: none; }
  .section-hero .content-wrap .bot-btns { gap: 16px; }
  .section-hero .content-wrap .bot-btns a { width: 100%; max-width: 320px; }
  .hero-samui-glass-strip { grid-template-columns: 1fr; gap: 16px; padding: 20px; margin-top: 32px; }
  .hero-samui-card { padding-bottom: 16px !important; }
  .hero-samui-card:last-child { padding-bottom: 0 !important; }
  .heading-section, .section-about-us .heading-section { margin-bottom: 32px; }
  .section-about-us .col-left { padding: 32px 24px 0 !important; }
  .section-about-us .col-left .sub { font-size: 12px; }
  .section-about-us .review-box { padding: 24px; }
  .section-about-us .review-box .desc { margin-bottom: 24px; }
  .section-about-us .box-quotes { flex-direction: column; align-items: stretch; }
  .section-about-us .box-quotes .image { width: 100%; height: 200px; }
  .section-partner { padding-bottom: 40px; }
  .section-services .services-image { height: 240px; }
  .accordion-faq_item .accordion-title { font-size: 23px; line-height: 1.3; }
  .featured-works-item .image > img { aspect-ratio: 1.4; height: auto; }
  .featured-works-item .content { padding: 20px 12px; }
  .featured-works-item .grid-text { gap: 20px; }
  .featured-works-item .bot { gap: 24px; }
  .process-card { padding: 24px; }
  .process-card .icon { margin-bottom: 32px; }
  .process-card .content { margin-bottom: 32px; }
  .tool-wrap .tool-image-box { margin-block: 24px 0; }
  .section-work-single, .section-services-single { padding-top: 40px !important; }
  .section-work-single .image > img { height: 260px; }
  .section-pricing .pricing-item { padding: 24px; }
  .section-pricing .heading-title br { display: none; }
  .team-item { padding: 24px; }
  .section-team .row { row-gap: 24px; }
  .testimonial-image img, .testimonial-image-v2 img { height: 280px; }
  .case-meta-grid { margin-bottom: 32px; }
  footer .footer-content { padding-top: 48px; }
  footer .footer-bottom { justify-content: center; }
  footer .footer-links { flex-wrap: wrap; justify-content: center; }
  .offcanvas-menu .canvas_foot .right { flex-wrap: wrap; gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
/* Keep expandable service cards compact, with a dedicated preview column. */
.section-hero .content-wrap .title-icon { height: 144px; }
.section-hero .content-wrap .title-icon .title-icon-wrap { height: 177px; overflow: visible; top: -12px; }
.accordion-faq_item:not(.style-1) { padding: 28px; }
.accordion-faq_item:not(.style-1) .accordion-title,
.accordion-faq_item:not(.style-1) .accordion-action:not(.collapsed) .accordion-title { font-size: 32px; line-height: 1.25; }
.accordion-faq_item:not(.style-1) .accordion-content { padding-top: 24px; padding-bottom: 0; }
.accordion-faq_item:not(.style-1) .accordion-content .text { margin-bottom: 24px; }
.accordion-faq_item:not(.style-1) .accordion-action:not(.collapsed) .accordion-title br { display: none; }
@media (min-width: 992px) {
  .section-services > .container > .row {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: 32px 64px; align-items: start; margin-inline: 0;
  }
  .section-services > .container > .row > [class*="col-"] { width: auto; padding: 0; }
  .section-services > .container > .row > :first-child { grid-column: 1; grid-row: 1; }
  .section-services > .container > .row > :nth-child(2) { grid-column: 2; grid-row: 1 / span 2; }
  .section-services > .container > .row > .services-image { grid-column: 1; grid-row: 2; width: 100%; height: 280px; margin: 0; }
}
@media (max-width: 767px) {
  .section-hero .content-wrap .title-icon { height: 128px; margin: 0; }
  .accordion-faq_item:not(.style-1) { padding: 24px; }
  .accordion-faq_item:not(.style-1) .accordion-title,
  .accordion-faq_item:not(.style-1) .accordion-action:not(.collapsed) .accordion-title { font-size: 24px; }
}
.accordion-faq_item:not(.style-1) .accordion-title { padding-right: 0; gap: 24px; }
.accordion-faq_item .accordion-title .num { flex-shrink: 0; }
.accordion-faq_item:not(.style-1) .accordion-content .text { padding: 0; }
.accordion-faq_item.style-1 .accordion-content .text { padding-top: 0; padding-bottom: 24px; }
/* Give the entire mobile navigation row a usable pointer target. */
.offcanvas-menu { transition: top .25s ease; }
.offcanvas-menu[aria-hidden="true"] { visibility: hidden; pointer-events: none; }
.offcanvas-menu .mb-menu-link { pointer-events: auto; padding-block: 8px; }
.offcanvas-menu.show .canvas_head,
.offcanvas-menu.show .canvas_foot,
.offcanvas-menu.show .nav-ul-mb li .item { transition-delay: 0s; }

.offcanvas-menu.show .nav-ul-mb li:nth-child(n) .item { transition-delay: 0s; transition-duration: .15s; }
