/* =====================================================================
   KlinikPlus – TABLET-ONLY layout sheet
   ---------------------------------------------------------------------
   Range: 768px – 1199.98px  (Bootstrap's `md` + `lg` bands).

     •  <= 767px  — phones. NOT touched. Every rule here starts at 768px,
                    so the 375 / 414 phone rendering is bit-for-bit what
                    it was before this file existed.
     •  >= 1200px — laptop & desktop. NOT touched, for the same reason:
                    every rule stops at 1199.98px, so 1280 / 1440 / 1920 /
                    2560 keep rendering exactly as before.

   Loaded LAST in layout/header.blade.php — after klinikplus.css,
   updated.css and every `*-mobile.css` sheet — so it out-cascades them
   inside the tablet band without needing `!important` everywhere.

   Two sub-bands, because the site changes layout engine at 992px:

     A) 768–991.98px  the `*-mobile.css` sheets are still active, so the
                      page uses the STACKED mobile layout. It is correct,
                      just stretched: 95–125 character lines, phone-sized
                      art blown up to 900px tall, single-column forms.
                      Fixes here reflow that column to tablet proportions.

     B) 992–1199.98px the DESKTOP layout is active and broadly works.
                      Fixes here are trims only — measure, art size and
                      section rhythm.
   ===================================================================== */


/* =====================================================================
   SHARED — 768px to 1199.98px
   ===================================================================== */
@media (min-width: 768px) and (max-width: 1199.98px) {

    /* -----------------------------------------------------------------
       Site update banner
       The banner text sits outside `.klinikplus-container`, so it ran the
       full width of the tablet: ~123ch at 820px and ~131ch at 1100px.
       Cap it to a readable measure and keep it centred in the bar.
       34em, matching the paragraph cap below — see the note there for why
       not `ch`.
    ----------------------------------------------------------------- */
    .site-update-banner__text {
        max-width: 34em;
        margin-left: auto;
        margin-right: auto;
    }

    /* -----------------------------------------------------------------
       FAQ accordion
       The list is the widest single element on most pages (863px at
       1100px, 681px at 820px). Question + answer read better in a
       narrower column, and the accordion stays centred under its heading.
    ----------------------------------------------------------------- */
    .faq-list {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
    }

    /* -----------------------------------------------------------------
       CONTACT PAGE HEADING — CENTRED
       Centred on request, alongside the About hero heading in band A.

       This one is in the shared block rather than the portrait band
       because it works at both ends of it: `.contact-heading` is the
       only thing inside `.contact-heading-container`, and it is already
       full width (688px at 768, 982px at 1024), so centring the text
       needs nothing but the one declaration and looks deliberate at
       either width. The About heading is portrait-only for the opposite
       reason — see the note on it below.

       The container states `text-align: left` in contact.css, but that
       only reaches the heading by inheritance, and a rule set directly
       on the element beats an inherited value whatever its weight.

       The three `.contact-info-title` headings and the `.contact-form-
       title` above the form are left where they are: they label an icon
       row and a form panel, not the page.
    ----------------------------------------------------------------- */
    .contact-heading {
        text-align: center;
    }
}


/* =====================================================================
   BAND A — TABLET PORTRAIT, 768px to 991.98px
   (iPad 768 · iPad Air 820 · iPad Pro 11in 834 · Surface 912)
   The mobile sheets are active here; these rules stop them stretching.
   ===================================================================== */
@media (min-width: 768px) and (max-width: 991.98px) {

    /* -----------------------------------------------------------------
       1) READING COLUMN
       The mobile layout stacks everything into one column. At 820px that
       column was 778px wide, which put body copy at 95–107 characters a
       line — roughly 40% over a comfortable measure.

       Capping the shared container at 720px pulls every page back to
       63–82ch and leaves an even gutter on both sides, so the stacked
       layout reads as a deliberate tablet column instead of a blown-up
       phone. Full-bleed section backgrounds are unaffected — they live
       on the <section>, not on the container.

       At 768px the cap is a no-op (736px of content already fits inside
       it), so the narrow end of the band is untouched.
    ----------------------------------------------------------------- */
    .klinikplus-container {
        max-width: 720px;
        margin-left: auto;
        margin-right: auto;
        padding-left: 16px;
        padding-right: 16px;
    }

    /* Three rules already pin the container wider with `!important` on a
       two-class selector, which out-ranks the 0,1,0 rule above:
         about.css:11   .klinikplus-about-page .klinikplus-container
         about.css:200  .stats-section .klinikplus-container
         about.css:385  .join-us-section-wrapper .klinikplus-container
       Matching their weight is the only way to reach those pages. The
       remaining page wrappers are listed alongside so the cap survives if
       one of them grows its own container rule later. */
    .klinikplus-about-page .klinikplus-container,
    .klinikplus-home-page .klinikplus-container,
    .klinikplus-service-page .klinikplus-container,
    .klinikplus-pricing-page .klinikplus-container,
    .klinikplus-custom-package-page .klinikplus-container,
    .klinikplus-package-summary-page .klinikplus-container,
    .klinikplus-checkout-page-new .klinikplus-container,
    .stats-section .klinikplus-container,
    .join-us-section-wrapper .klinikplus-container {
        max-width: 720px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* -----------------------------------------------------------------
       1b) BODY COPY FILLS THE COLUMN
       This band used to cap `.klinikplus-container p` at `34em` to hold
       body copy near a 68-character measure. That was reverted on
       request: at 768px it left `.transforming-text` 544px wide inside a
       712px box — 168px of empty page down the right of every body
       paragraph, on every page.

       Removing the cap alone was not enough. Several sections flatten
       their columns with `display: contents` into a column-flex row that
       carries Bootstrap's `align-items-center`. A flex item under
       `align-items: center` is sized to its content instead of being
       stretched, so those paragraphs kept only as much width as their
       longest hard-broken line and then sat centred in the leftover
       space: the About hero standfirst measured 149px inside a 712px
       column, 281px in from each side, while the heading above it
       started hard left. The cap had been hiding this behind an
       `align-self: start`.

       `stretch` restores the normal full-width sizing for exactly those
       paragraphs and is inert everywhere else — it only ever acts on a
       flex or grid child, which nearly no paragraph on the site is, and
       each one's own `text-align` still decides how the text sits inside
       the full-width box. Checked first that no paragraph carries a
       background or a border, so a taller box cannot paint anything new.

       `__capcheck()` in js/_tablet-audit.js was written to police the old
       cap. It now reports `cap ok` trivially — nothing is narrowed for it
       to misplace — so `__fill()` in that file replaces it as the guard
       for this rule.
    ----------------------------------------------------------------- */
    .klinikplus-container p {
        align-self: stretch;
    }

    /* -----------------------------------------------------------------
       1c) ABOUT HERO HEADING — CENTRED
       Centred on request, and it takes both declarations.

       `text-align` alone would do nothing useful here. The About hero row
       carries Bootstrap's `align-items-center`, a vertical instruction
       while the row is a row; about-mobile.css flips the row to
       `flex-direction: column` to reorder the hero, and from then on the
       same declaration centres horizontally instead. That left the
       heading as a shrink-wrapped box floating 260px in from both edges
       — the text looked roughly centred, but the box was only as wide as
       "About Us", so a heading that wraps to two lines would set its
       lines hard left inside that narrow box rather than centring them.

       `align-self: stretch` gives the heading the full column back, and
       `text-align: center` then centres the text inside it properly, at
       any length and any wrap. It is also how every other section
       heading on the page is already set: who-we-are, our-story, team,
       partners, how-it-works and FAQ all compute to `center` — this hero
       was the one that did not.

       Only the heading is stretched, not the row — `align-items: stretch`
       on the row would also blow the CTA pills out to the full width.

       Portrait band only. From 992px the hero is a real two-column
       layout again (heading and copy in a 503px left column, photo
       beside it at 519..998), where a centred heading over three
       left-aligned paragraphs would read as a mistake.
    ----------------------------------------------------------------- */
    .about-hero-section .about-heading {
        align-self: stretch;
        text-align: center;
    }

    /* -----------------------------------------------------------------
       1d) TEAM SLIDER — TWO CARDS PER VIEW
       The team photos were losing their heads on a tablet, and the cause
       is the shape of the window rather than the photo.

       stats-team-mobile.css and home-mobile.css both set
       `.team-card-scroll` to `flex: 0 0 100%` below 992px, so one card
       fills the whole track — sensible on a phone. On a tablet that same
       card stretches to 688px while `.team-member-image` keeps its fixed
       398px height, giving a 1.73 landscape window. The photos are
       portrait, and `object-fit: cover` scales to fill the wider side:
       for a square source only 58% of its height survived, cropped
       equally top and bottom, which takes the top of the head off.

       Half the track each restores a portrait window (334x398 at 768px,
       ratio 0.84) and with it the whole subject: a square source now
       keeps all of its height and loses a little off the sides instead,
       and a 3:4 portrait keeps 89%. It also matches what the desktop
       slider does — 325px cards, a 325x309 window — rather than
       inventing a tablet-only crop.

       No JS change needed: team-slider.js takes its scroll step from
       `firstCard.offsetWidth + gap`, so the arrows still advance exactly
       one card.

       Both selectors again: stats-team-mobile.css states its `flex` at
       0,1,0 and home-mobile.css states the homepage's at 0,2,0, both
       with `!important`, so each weight has to be answered in kind.
    ----------------------------------------------------------------- */
    .team-scroll-wrapper,
    .klinikplus-home-page .team-scroll-wrapper {
        gap: 20px !important;
    }

    .team-card-scroll,
    .klinikplus-home-page .team-card-scroll {
        flex: 0 0 calc(50% - 10px) !important;
        max-width: calc(50% - 10px) !important;
    }

    /* -----------------------------------------------------------------
       2) ART DIRECTION
       Hero and feature art is sized for a desktop half-column. Stacked
       full-width on a tablet it took over the screen: the homepage doctor
       ran 600x900, the About team photo 787x787 — taller than most of the
       viewport, so the copy under it fell below the fold.

       The cap is generic rather than a list of class names, because the
       art is not consistently classed — medical-facilitator-networking
       reaches its 688x1022 photo through a bare `<img>` with no class at
       all, so any hand-written list would keep missing pages.

       Two kinds of image are excluded, both named one at a time:

       1. Decorative art — absolutely positioned inside `overflow: hidden`
          wrappers and sized to cover a whole section. Clamping it cut the
          CTA's line pattern off halfway down the block it decorates.
       2. `.seo-image`, absolutely positioned to fill a fixed 480x480
          frame. Clamping dropped it to 480x460 and left a 20px strip of
          background along the bottom of its window.

       Both are out of flow, so neither can push content down the page —
       the only thing this clamp exists to stop. A selector cannot test
       `position`, and matching wrapper names instead is not a usable
       proxy: `.development-image-container` is an ordinary in-flow
       wrapper whose name looks identical, and a `[class*="image-
       container"]` exclusion un-clamped its 638x970 photo. So they are
       named individually, and `_tablet-audit.js` reports any clamped
       image that turns out to be out of flow — which is how `.seo-image`
       was found and how the next one would be.

       A bare `max-height` is safe for everything else: every oversized
       content image on the site sets `object-fit`, so the clamp crops or
       letterboxes rather than stretching. The ones that do NOT set it are
       listed again below and get `width: auto` to hold their ratio.

       The exclusions sit inside `:where()` so they add no specificity of
       their own — as a bare `:not()` chain they scored 0,6,1 and buried
       the `width: auto` rule below. A browser too old for `:where()`
       drops this rule entirely and simply keeps the uncapped art.
    ----------------------------------------------------------------- */
    .klinikplus-container img:not(:where([class*="bg"], [class*="decorative"], [class*="lines"], [class*="wavy"], [class*="dots"], .seo-image)) {
        max-height: 460px;
    }


    /* Art with no `object-fit` of its own: clamping the height alone
       would stretch it, so let the width follow the ratio instead.
       website-development.blade.php sets `.development-image {width:100%}`
       in a page-embedded <style> block, which sits after this file in
       document order and ties on specificity — the 688x460 render came
       out at ratio 1.50 against a natural 0.66. Scoping each selector
       under the container wins on specificity instead of order, so it
       holds no matter where a page chooses to put its <style>. */
    .klinikplus-container .hero-image img,
    .klinikplus-container .hero-doctor-img,
    .klinikplus-container .service-hero-image img,
    .klinikplus-container .service-main-img,
    .klinikplus-container .transforming-image img,
    .klinikplus-container .about-team-img,
    .klinikplus-container .who-we-are-image img,
    .klinikplus-container .our-story-image img,
    .klinikplus-container .video-benefits-img,
    .klinikplus-container .development-image,
    .klinikplus-container .approach-image,
    .klinikplus-container .why-seo-image,
    .klinikplus-container .cta-v2-visual {
        max-height: 460px;
        width: auto;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .hero-image,
    .service-hero-image,
    .transforming-image {
        text-align: center;
    }

    /* -----------------------------------------------------------------
       3) FORMS
       `.form-row` is a grid that collapses to one column below 992px, so
       "First name" and "Last name" each spanned the full 656px column.
       A tablet has room for the designed two-up pairing.
    ----------------------------------------------------------------- */
    .form-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
    }

    /* Rows that hold a single field (message, subject) stay full width. */
    .form-row > .form-field:only-child {
        grid-column: 1 / -1;
    }

    /* -----------------------------------------------------------------
       4) PRICING PLANS
       Tailwind's `md:grid-cols-3` fires at 768px, which squeezed the three
       plan cards into 238px each — 174px of usable width after their
       `p-8` padding, so every card ran 980px tall with wrapped prices and
       one-word-per-line features.

       Portrait tablets get the cards stacked at a readable width instead;
       three-up returns at 992px where there is room for it.
    ----------------------------------------------------------------- */
    .klinikplus-pricing-page .grid.grid-cols-1 {
        grid-template-columns: minmax(0, 1fr);
        max-width: 480px;
        margin-left: auto;
        margin-right: auto;
    }

    /* -----------------------------------------------------------------
       4b) FOUR-UP CARD GRID THAT RAN OFF THE PAGE
       social-media-marketing.blade.php lays its service cards out with an
       inline `grid-template-columns: repeat(4, 1fr)`. `1fr` carries a
       min-content floor, so the four tracks refused to shrink below
       945px inside a 688px column — and because <body> is
       `overflow-x: hidden`, the fourth card was silently clipped off the
       page rather than producing a scrollbar. It was already invisible at
       this width before this sheet existed.

       Two-up with `minmax(0, 1fr)` drops the min-content floor, so all
       four cards fit and stay on screen. The selector matches the inline
       declaration because an inline style cannot be beaten any other way.
    ----------------------------------------------------------------- */
    .klinikplus-container [style*="repeat(4, 1fr)"] {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    /* -----------------------------------------------------------------
       5) HOW IT WORKS — mobile timeline
       The mobile timeline's rail + card pair was stretched to 774px, so
       the 42px rail sat next to a 720px card. Cap and centre it so the
       proportions match the phone design.
    ----------------------------------------------------------------- */
    .hiw-mobile-steps {
        max-width: 620px;
        margin-left: auto;
        margin-right: auto;
    }

    /* -----------------------------------------------------------------
       6) HOMEPAGE hero art (tablet portrait only)
       The generic 460px art cap left the doctor photo looking undersized
       in the stacked tablet column. Give the homepage hero more room.
    ----------------------------------------------------------------- */
    .klinikplus-home-page .klinikplus-container .hero-doctor-img,
    .klinikplus-home-page .klinikplus-container .hero-image img.hero-doctor-img {
        max-height: 620px;
        width: auto;
        max-width: min(100%, 520px);
        height: auto;
        display: block;
        margin-left: auto;
        margin-right: auto;
    }

    .klinikplus-home-page .hero-image {
        margin-top: 12px;
    }

    /* -----------------------------------------------------------------
       6a) COUNTER CARDS — EVERY PAGE THAT HAS THEM
       Bootstrap's `col-md-4` opens a 3-up row from 768px, which leaves
       each of the three counter cards about 213px wide. That is far too
       narrow for the card design, which is a landscape tile: big number
       and label on the left, artwork on the right.

       At 213px the two sides fight for the same space and the text
       loses — on experienced-patient-case-managers the label boxes
       measured 0px wide while the 191px artwork sat on top of them, so
       "Clinics We Served" and "Satisfied Patients" printed straight over
       the picture. Stacked at the full tablet width each card gets the
       readable landscape treatment it was drawn for, which is also what
       the same cards already do one breakpoint down, on a phone.

       Not scoped to a page. The markup (`.stats-section` > `.row` >
       `.col-md-4` > `.stats-card`) is shared by 13 pages — the homepage,
       About, and eleven service pages — and every one of them crushed
       the same way. Ten of those pages load stats-team-mobile.css, so
       stacking alone gives them the identical tile the homepage shows;
       custom-package-builder and support-and-resources do not load it
       and keep their own taller card, still stacked and uncrushed.

       The `.stat-item` counters on seo-services and the other wavy-band
       pages are a different design altogether and are left alone: at
       768px they measure 229px each with single-line labels, which is
       fine as it is.
    ----------------------------------------------------------------- */
    .stats-section .row > .col-md-4 {
        flex: 0 0 100%;
        width: 100%;
        max-width: 100%;
    }

    /* Both selectors on purpose. The bare one carries the other twelve
       pages; on the ten of them that load stats-team-mobile.css it has
       to beat that sheet's `min-height: 168px !important`, which scores
       the same 0,1,0 and is settled on order — tablet.css loads last.
       home-mobile.css states the homepage's at 0,2,0 and outranks a
       0,1,0 rule outright, which is exactly what happened when this was
       first written unscoped: the page every other one is being matched
       to was the only one that changed, dropping to 168px. */
    .stats-card,
    .klinikplus-home-page .stats-card {
        min-height: 180px !important;
        margin-bottom: 18px !important;
    }

    /* The type bump stays on the homepage. home-mobile.css sets the
       counter type for a phone column and the homepage is the one page
       that has no other sheet to raise it for a wider card. The other
       twelve get their sizes from stats-team-mobile.css (2.5rem / 1rem),
       a quarter-rem under this and indistinguishable beside it, or from
       their own card. Raising it for them would mean overriding two
       different card designs with one number. */
    .klinikplus-home-page .stats-number {
        font-size: 2.75rem !important;
        line-height: 1.15 !important;
        margin-bottom: 0.35rem !important;
    }

    .klinikplus-home-page .stats-text {
        font-size: 1.0625rem !important;
        line-height: 1.4 !important;
    }

    /* -----------------------------------------------------------------
       6b) HOMEPAGE — HERO FLOATING CARDS
       The three cards that sit over the doctor photo on a laptop are
       switched off below 1025px by `.floating-image {display: none}` in
       klinikplus.css, and below 992px they are also unpinned there —
       `position: relative`, `margin: 15px auto`, `animation: none` — so
       before that hide rule landed they stacked under the photo as three
       280px images. Neither treatment is the designed composition, and a
       tablet has the room for it.

       Bringing it back needs two things:

         •  an anchor. `.hero-image` is the positioning context, but in
            the stacked column it is the full 688px wide while the photo
            inside it is ~413px and centred, so percentage offsets would
            strand the cards up to 130px away from the art they belong
            to. `width: fit-content` shrinks the box onto the photo and
            the auto margins keep it centred in the column. The 15px
            `padding-left` that biases the desktop composition goes with
            it, so the box is exactly the photo.

         •  sizes and offsets as a share of that box rather than fixed
            pixels, so the trio scales with the photo across 768–991px
            the way it does between 1440 and 1920.

       The percentages are not the laptop declarations copied across.
       Each card is a 1024x1024 PNG with the art drawn inside a wide
       transparent margin, so a percentage of the box is not the card's
       own width — and the box carries transparent space above the photo
       too (96px of its 620px at 820px), which shifts every vertical
       offset. These were solved from the visible, non-transparent art
       measured at 1440px, and put each card within ~1% of its laptop
       width and placement relative to the photo.

       Cards 2 and 3 overhang the photo exactly as they do on a laptop.
       They reach into the stacked column's own gutter (~130px each side
       at 820px), so nothing gets near the viewport edge and
       `overflow-x: hidden` on <body> has nothing to clip. Card 1 sits
       just inside the photo's left edge, as it does there.

       Every declaration carries `!important` because the rules being
       undone do.
    ----------------------------------------------------------------- */
    /* The cards are pinned to the photo, so the photo must not move
       independently of them. home-mobile.css already cancels the
       desktop `translateY(-60px)` pull — but its query is `max-width:
       991px`, and at a viewport the browser reports as exactly 991 the
       fractional match went the other way, leaving the photo 60px high
       of the trio. Cancel it for the whole band so the anchor is the
       same at every width in it. */
    .klinikplus-home-page .klinikplus-container .hero-doctor-img {
        transform: none !important;
    }

    .klinikplus-home-page .hero-image {
        width: fit-content;
        max-width: 100%;
        padding-left: 0;
        margin-left: auto;
        margin-right: auto;
    }

    .klinikplus-home-page .floating-image {
        display: block !important;
        position: absolute !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        animation: float 6s ease-in-out infinite !important;
    }

    .klinikplus-home-page .floating-image-1 {
        top: 24% !important;
        left: 0 !important;
        right: auto !important;
        bottom: auto !important;
        max-width: 34% !important;
    }

    .klinikplus-home-page .floating-image-2 {
        top: 12.5% !important;
        right: -7% !important;
        left: auto !important;
        bottom: auto !important;
        max-width: 30% !important;
    }

    .klinikplus-home-page .floating-image-3 {
        bottom: 11% !important;
        right: -20% !important;
        left: auto !important;
        top: auto !important;
        max-width: 60% !important;
    }
}


/* =====================================================================
   BAND B — TABLET LANDSCAPE, 992px to 1199.98px
   (iPad 1024 · iPad Air 1180 · Surface 1112)
   The desktop layout is active here and broadly works — trims only.
   ===================================================================== */
@media (min-width: 992px) and (max-width: 1199.98px) {

    /* -----------------------------------------------------------------
       100px HOLE BETWEEN THE MENU AND THE BREADCRUMB
       Service pages open with a fixed 100px spacer div (inline height,
       hence `!important`). The phone sheet trims it to 24px and the
       desktop bands in breakpoints.css drop it entirely, but this band
       runs the desktop layout with neither of those applying, so 1024px
       carried the full 100px — a ~120px gap under the navigation before
       the breadcrumb. Match the desktop bands; the breadcrumb's own 20px
       is the spacing that remains.
    ----------------------------------------------------------------- */
    .service-top-spacer,
    div[style*="height: 100px"] {
        height: 0 !important;
    }

    /* -----------------------------------------------------------------
       SERVICES MEGA-MENU RAN OFF THE LEFT EDGE
       klinikplus.css positions this menu four different ways as the
       viewport narrows. Two of them matter here:

         @max-width 1200px  width: 850px; left: 50%; translateX(-50%)
         @max-width 1024px  width: 85vw;  left: -20vw; transform: none

       The first centres the panel on its trigger. That is fine on a wide
       screen where the nav sits mid-page, but on a landscape tablet the
       trigger is only ~376px from the left, so an 850px panel centred on
       it started at -49px and lost its first column off the screen. The
       second rule fixes exactly that by anchoring to the viewport — but
       it stops at 1024px, leaving 1025–1199px on the broken one.

       Extending the viewport-anchored placement across the rest of the
       band is the smallest change that closes the gap; it is the same
       declaration the narrower widths already use. Its `height: 520px`
       is deliberately not copied — there is room for the full panel here.
    ----------------------------------------------------------------- */
    .klinikplus-services-dropdown {
        width: 85vw;
        left: -20vw;
        transform: none;
    }

    /* -----------------------------------------------------------------
       THE SAME FOUR-UP GRID, CLIPPED AGAIN
       `repeat(4, 1fr)` keeps its min-content floor here too: the tracks
       still measure 1083px inside a 992px container. At 1280px that only
       pushes the cards past the container edge and they stay on screen,
       but at 1100px the fourth card reached x=1132 against a 1090px
       viewport and `overflow-x: hidden` on <body> swallowed it.

       Landscape has room for the four-up the design intends, so unlike
       the portrait band this only swaps in `minmax(0, 1fr)` to drop the
       floor and let the tracks shrink to fit.
    ----------------------------------------------------------------- */
    .klinikplus-container [style*="repeat(4, 1fr)"] {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    /* -----------------------------------------------------------------
       CTA art
       The CTA visual is sized off the viewport, so on a landscape tablet
       it grew to 567x558 and pushed the CTA copy and button apart.
    ----------------------------------------------------------------- */
    .cta-v2-visual {
        max-height: 380px;
        width: auto;
    }

    /* -----------------------------------------------------------------
       HERO FLOATING CARDS
       The same three cards as the portrait band. The desktop layout is
       already running here, so `.hero-image` is a ~484px half-column the
       photo nearly fills and no anchor fix is needed — but three rules
       get in the way:

         •  `.floating-image {display: none}` below 1025px blanks all
            three on a 1024px iPad while the identical layout one pixel
            wider shows them.

         •  klinikplus.css unpins them at `max-width: 992px`, and 992 is
            also the first width of this band, so at that one width they
            fell out of the composition and stacked under the photo —
            the same off-by-one overlap the header pill hits at 992,
            noted at the end of this file. Re-pinning them here covers
            it without touching either sheet's boundary.

         •  the offsets that do survive above 1024px (`right: -7%` on
            card 2, `right: -20%` on card 3, from updated.css) are drawn
            for a wide viewport's spare margin. Here the container is
            capped at 1024px and centred, so at 1100px card 3 reached
            x=1188 and `overflow-x: hidden` on <body> silently cut ~88px
            off it.

       So: state every offset outright rather than inheriting a mix from
       two sheets, keeping the laptop placement but pulling the two
       right-hand cards in far enough to stay on screen at 992px, the
       tightest width in the band. Card 1 hangs off the left of the
       column and was already clear.
    ----------------------------------------------------------------- */
    .klinikplus-home-page .floating-image {
        display: block !important;
        position: absolute !important;
        width: auto !important;
        height: auto !important;
        margin: 0 !important;
        animation: float 6s ease-in-out infinite !important;
    }

    .klinikplus-home-page .floating-image-1 {
        top: 20% !important;
        left: 0 !important;
        right: auto !important;
        bottom: auto !important;
        max-width: 160px !important;
    }

    .klinikplus-home-page .floating-image-2 {
        top: 8% !important;
        right: -4% !important;
        left: auto !important;
        bottom: auto !important;
        max-width: 148px !important;
    }

    .klinikplus-home-page .floating-image-3 {
        bottom: 15% !important;
        right: -10% !important;
        left: auto !important;
        top: auto !important;
        max-width: 270px !important;
    }
}
