:root {
    /* Define base RGB based on common light/dark themes */
    /* Light theme default */
    --base-rgb: 255, 255, 255;
    --base-rgb-opposite: 15, 15, 15; 
}

[data-theme="dark"] {
    --base-rgb: 15, 15, 15; /* Assuming dark base is near black */
    --base-rgb-opposite: 255, 255, 255;
}

img.emoji{display:inline-block!important;width:1em!important;height:1em!important;max-width:none!important;vertical-align:middle!important}.reference{display:inline-block;background-image:linear-gradient(rgb(255 165 0 / .3),rgb(255 165 0 / .3));background-repeat:repeat-x;background-position:0 100%;background-size:100% 2px;padding-bottom:2px;transition:background-size 0.3s ease,background-position 0.3s ease}.reference:hover{background-size:100% 1em;background-position:0 calc(100%)}#portfolio .portfolio-item{transition:transform 0.3s ease-in-out;position:relative;will-change:transform}#portfolio .gallery__item>.gallery__link{position:relative!important;display:block}#portfolio .portfolio-item:hover,
#portfolio .portfolio-item.mobile-hover {transform:scale(1.05)!important;z-index:10}
#portfolio .portfolio-item.shrink{transform:scale(.95)!important}.portfolio-video-container{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;transition:opacity 0.5s ease;background-color:#fff0;z-index:5;border-radius:inherit;pointer-events:none}.portfolio-video-container.visible{opacity:1}.portfolio-video{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit;pointer-events:none;box-shadow:0 3rem 5rem rgb(0 0 0 / .2)}#portfolio .portfolio-item img,#portfolio .portfolio-item .img-fluid,#portfolio .portfolio-item .portfolio-caption{border-radius:inherit}.services-stack__inner{-webkit-backdrop-filter:blur(.5px)!important;backdrop-filter:blur(.5px)!important;filter:drop-shadow(0 2rem 3rem rgb(0 0 0 / .05))!important;border:.2rem solid rgb(255 255 255 / .5)!important;background-color:#fff0}.services-stack__descr,.services-stack__title{background-color:var(--base)}.cards__card{box-shadow:1rem 1rem 2rem var(--base-shade),-1rem -1rem 2rem var(--base-tint)!important;border:none!important}.about-showcase-container{width:100%;height:500px;position:relative;overflow:hidden;border-radius:var(--_radius);cursor:pointer;margin:2rem 0;box-shadow:0 10px 30px rgb(0 0 0 / .2)}.about-showcase{display:flex;width:100%;height:100%;position:relative;overflow:hidden}.about-showcase__content{padding:4rem;color:var(--neutral-white);position:relative;display:flex;flex-direction:column;justify-content:center;z-index:2;background-color:#fff0;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);background:rgb(15 15 15 / .4);box-shadow:0 0 30px 10px rgb(0 0 0 / .3);border-right:1px solid rgb(255 255 255 / .1);transition:background-color 0.5s ease}.about-showcase__media{flex:1;position:relative;overflow:hidden;border-radius:0 24px 24px 0}.video-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:0 24px 24px 0;overflow:hidden}.showcase-video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.8s ease;position:absolute;top:0;left:0}.showcase-video.active{opacity:1}.slide-title{font-size:2.5rem;margin-bottom:1.5rem;line-height:1.2}@media only screen and (max-width:991px){.about-showcase-container{margin-left:-1rem!important;margin-right:-1rem!important;width:calc(100% + 2rem);height:auto;padding:0!important;box-sizing:border-box}.about-showcase{flex-direction:column;height:auto}.about-showcase__content{width:100%;flex-basis:auto;order:2;padding:2rem 1.5rem;border-radius:0 0 var(--_radius) var(--_radius);border-right:none;height:auto;min-height:300px;position:relative;box-sizing:border-box;padding-bottom:2rem}.about-showcase__media{width:100%;flex-basis:auto;min-height:300px;height:auto;order:1;border-radius:var(--_radius) var(--_radius) 0 0!important;position:relative!important;overflow:hidden!important}.about-showcase__media .progress-indicator{display:none!important}.video-container{border-radius:inherit!important;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden!important}.about-showcase__media .showcase-video, 
.about-showcase__media .about-showcase-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.mobile-progress-bar{position:absolute;top:0;left:0;height:3px;width:0%;background-color:#e69b45;transition:width 0.1s linear;z-index:5;border-radius:0 5px 5px 0}h3.slide-title br{display:none}.content-slide{padding-top:0}}@media only screen and (max-width:767px) and (orientation:portrait){.about-showcase-container{margin-left:-2rem!important;margin-right:-2rem!important;width:calc(100% + 4rem);padding:0!important;height:auto;box-sizing:border-box}.about-showcase{height:auto}.about-showcase__content{height:auto;min-height:240px;padding:1.5rem 1rem 1.5rem 1rem;position:relative;padding-bottom:1.5rem;box-sizing:border-box}.about-showcase__media{min-height:240px;height:auto;border-radius:var(--_radius) var(--_radius) 0 0!important;position:relative!important;overflow:hidden!important}.about-showcase__media .progress-indicator{display:none!important}.video-container{border-radius:inherit!important;overflow:hidden!important}.mobile-progress-bar{height:2px}.slide-title{font-size:2.2rem}.circular-progress{width:24px;height:24px}.next-label{margin-left:.4rem;font-size:.8em}.content-slide{padding-top:0}}.about-showcase__media{position:relative;overflow:hidden;border-radius:0 24px 24px 0}.video-container{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:0 24px 24px 0;overflow:hidden}.showcase-video, .about-showcase-image {width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 0.8s ease;position:absolute;top:0;left:0}
.showcase-video.active, .about-showcase-image.active {opacity:1}.progress-indicator{position:absolute;top:2rem;left:3rem;display:flex;align-items:center}.circular-progress{width:36px;height:36px}.circle-bg{fill:none;stroke:var(--neutral-white);stroke-width:2.5;opacity:.3}.circle{fill:none;stroke:var(--neutral-white);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset 0.5s ease;stroke-dasharray:100,100;stroke-dashoffset:0}.next-label{margin-left:1rem;opacity:.7}.content-slider{position:relative;width:100%;max-width:500px}.content-slide{opacity:0;position:absolute;top:0;left:0;width:100%;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s ease;pointer-events:none}.content-slide.active{opacity:1;position:relative;transform:translateY(0);pointer-events:auto}.slide-title{margin-bottom:1.5rem;line-height:1.6;color:var(--neutral-white)}.slide-description{line-height:1.6;margin-bottom:2rem;opacity:.8;color:var(--neutral-white)}.slide-tags{display:flex;flex-wrap:wrap;gap:.5rem}.tag{padding:.5rem 1.2rem;color:var(--t-bright);background-color:var(--t-opp-bright);border-radius:2rem;font-weight:700}@media only screen and (min-width:1400px){.about-showcase-container{height:600px}.about-showcase__content{padding:4rem}}.btn-default{box-shadow:1rem 1rem 2rem var(--base-shade),-1rem -1rem 2rem var(--base-tint)!important;border:none!important}.hover-jumao:hover{color:var(--t-opp-bright);letter-spacing:1px;background-color:#FCA61D!important;box-shadow:#FCA61D 0 7px 29px 0px!important}.hover-jumao:active{color:var(--t-opp-bright);letter-spacing:1px;box-shadow:#FCA61D 0 7px 29px 0px!important;transform:translateY(10px);transition:100ms}.color-switcher{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;font-size:2.5rem;border:none;cursor:pointer;padding:0;transition:transform 0.2s ease,box-shadow 0.2s ease}.color-switcher:hover{transform:scale(1.1);box-shadow:0 4px 12px rgb(0 0 0 / .15);border-radius:50%}header#header .header__navigation{width:100%!important}header#header .header__navigation nav#menu.menu{width:100%!important}header#header .header__navigation nav#menu.menu ul.menu__list{width:100%!important;justify-content:center!important}@media only screen and (max-width:992px){header#header .header__navigation nav#menu.menu ul.menu__list{justify-content:center!important}}nav#menu.menu{width:100%!important}nav#menu.menu>ul{width:auto!important;margin:0 auto!important;float:none!important;text-align:center!important;display:inline-flex!important;justify-content:center!important}nav#menu.menu>div{width:100%!important;text-align:center!important}nav#menu.menu>div>ul{width:auto!important;margin:0 auto!important;float:none!important;text-align:center!important;display:inline-flex!important;justify-content:center!important}.header__navigation.d-flex.justify-content-center{width:100%!important}@media (min-width:992px){.header__navigation.d-flex.justify-content-center{justify-content:center!important}nav#menu.menu,nav#menu.menu>ul,nav#menu.menu>div,nav#menu.menu>div>ul{justify-content:center!important}}.link-arrow{display:inline-block;vertical-align:middle;transition:opacity 0.3s ease,transform 0.3s ease}.slide-up{animation:0.4s ease-in-out 0s 1 both slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:translateY(0)}}.intro-section{position:relative;z-index:1}.intro-bg-image{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;transition:opacity 0.5s ease}.intro-bg-image img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:600px;width:100%;height:auto;object-fit:contain;opacity:1;transition:opacity 0.5s ease}@media only screen and (max-width:992px),(orientation:portrait){.intro-bg-image img{width:100%;max-width:100%}}.contact-video-container{position:relative;width:100%;height:600px;border-radius:var(--_radius);background-color:#000;cursor:auto;margin:2rem 0;box-shadow:0 10px 30px rgb(0 0 0 / .2)}.contact-background-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:var(--_radius)}.contact-info-overlay{position:absolute;overflow:hidden;cursor:pointer;bottom:2rem;left:2rem;max-width:400px;background-color:rgba(var(--base-rgb),.7)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:2rem;border-radius:var(--_radius);color:#fff;z-index:5;box-shadow:0 4px 30px rgb(0 0 0 / .2);border:1px solid rgb(255 255 255 / .1);transition:transform 0.3s ease,opacity 0.3s ease}.contact-info-title{margin-bottom:1rem}.contact-info-content{font-size:1rem;line-height:1.6}.contact-info-content p{margin-bottom:.5rem}@media only screen and (max-width:768px){.contact-video-container{height:400px;margin-left:-2rem!important;margin-right:-2rem!important;width:calc(100% + 4rem);padding:0!important;box-sizing:border-box}.contact-info-overlay{bottom:1rem;left:1rem;right:1rem;padding:1.5rem}}#contact .contact-info-overlay{display:block!important;visibility:visible!important;opacity:1!important}.arc-title-container{width:100%;text-align:center;margin-top:50px;margin-bottom:30px;position:relative}.arc-title-container .headline__title{font-weight:500;position:relative;display:inline-block;padding:10px 20px}.typing-text-container{width:100%;text-align:center;position:relative;z-index:2;bottom:-8rem}@media only screen and (max-width:768px){.arc-title-container .headline__title{font-size:1.5rem}.typing-text-container{bottom:-5rem}}@media only screen and (min-width:1200px){.typing-text-container{bottom:-10rem}}.headline__subtitle-container{position:relative;min-height:1.5em;transition:min-height 0.4s ease}.headline__subtitle-default{transition:transform 0.4s ease,opacity 0.4s ease;transform:translateY(0);opacity:1;position:relative;backface-visibility:hidden}.headline__subtitle-hover{position:absolute;top:0;left:0;width:100%;transform:translateY(20px);opacity:0;transition:transform 0.4s ease,opacity 0.4s ease;backface-visibility:hidden}.headline__subtitle-qrcode{opacity:0;transition:transform 0.4s ease,opacity 0.4s ease;backface-visibility:hidden;visibility:hidden}.text-hover-active .headline__subtitle-default{transform:translateY(-20px);opacity:0}.text-hover-active .headline__subtitle-hover{transform:translateY(0);opacity:1}.text-qrcode-active{min-height:3.5em}.text-qrcode-active .headline__subtitle-qrcode{transform:translateY(0);opacity:1;visibility:visible}@media (max-width:768px){.text-qrcode-active{min-height:4em}.headline__subtitle-qrcode{font-size:.85em}}.btn.hover-jumao{position:relative;overflow:hidden;z-index:10;width:var(--button-width,auto);text-align:center;transform-origin:top center}.btn.hover-jumao.qr-expanded{height:var(--button-width)!important;padding-top:10px!important;padding-bottom:10px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;transform:translateY(var(--active-offset,2px))!important}.qr-code-svg{width:90%;height:90%;display:block;margin:auto}.btn.hover-jumao .btn-caption{transition:opacity 0.25s ease;white-space:nowrap;display:inline-block;max-width:100%}.btn.hover-jumao.qr-expanded .btn-caption{opacity:0}@media (max-width:768px){.btn.hover-jumao.qr-expanded{height:auto!important;padding:inherit!important}}.btn.hover-jumao.hover{letter-spacing:.05em}#Reading .cards__card,#Reading .col-md-6>div{transition:transform 0.6s ease,opacity 0.6s ease,box-shadow 0.4s ease,background-color 0.4s ease;cursor:pointer;position:relative;overflow:hidden;will-change:transform,opacity,width,box-shadow,background-color}#Reading .cards__card:hover,#Reading .col-md-6>div:hover{background-color:rgb(255 255 255 / .2)}#Reading .cards__card.expanded,#Reading .col-md-6>div.expanded{cursor:default;background-color:rgb(255 255 255 / .2)}#Reading .cards__card.hiding,#Reading .col-md-6>div.hiding{opacity:0!important;pointer-events:none;box-shadow:none!important}.article-content{opacity:0;transition:opacity 0.8s ease;padding:0;margin-top:0;box-sizing:border-box;width:100%}.article-content.visible{opacity:1;margin-top:-3rem}@media only screen and (min-width:1400px){.article-content.visible{margin-top:-4.6rem}}.article-content p,.article-content h3,.article-content ul,.article-content ol,.article-content blockquote{opacity:0;transform:translateY(20px);transition:opacity 0.5s ease,transform 0.5s ease;max-width:100%;word-wrap:break-word;overflow-wrap:break-word;text-indent:2em}.article-content a{text-indent:0;display:inline;word-wrap:break-word}.article-content.visible p,.article-content.visible h3,.article-content.visible ul,.article-content.visible ol,.article-content.visible blockquote{opacity:1;transform:translateY(0)}.article-content h3{transition-delay:0s}.article-content p:nth-of-type(1){transition-delay:0.1s}.article-content p:nth-of-type(2){transition-delay:0.2s}.article-content p:nth-of-type(3){transition-delay:0.3s}.article-content p:nth-of-type(4){transition-delay:0.4s}.article-content p:nth-of-type(5){transition-delay:0.5s}.article-content ul,.article-content ol{transition-delay:0.7s}.article-content blockquote{transition-delay:0.8s}.article-back-btn{text-align:right;opacity:0;transform:translateY(10px)}.article-back-btn i{transition:all 0.3s ease;cursor:pointer;transform:scale(1)}.article-back-btn i:hover{color:rgb(255 165 0 / .3);transform:scale(1.2)}.article-content.visible .article-back-btn{opacity:1;transform:translateY(0)}@media (max-width:767px){#Reading .cards .row{flex-direction:column}}#Reading .cards__title,#Reading .cards__text{opacity:1!important;visibility:visible!important}.width-expanding{transition:width 0.8s cubic-bezier(.22,.61,.36,1)!important}#Reading .grid-item,#Reading .col-md-6{transition:width 0.8s cubic-bezier(.22,.61,.36,1),padding 0.8s cubic-bezier(.22,.61,.36,1);will-change:width,padding}.article-content h3{font-size:1.75rem;margin-bottom:1rem;font-weight:500;line-height:1.2;max-width:100%}.article-content p{margin-bottom:1rem;line-height:1.6;max-width:100%}.article-content .container-fluid{padding-right:15px;padding-left:15px;max-width:100%}.article-content .row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px;max-width:100%}.article-content .mb-4{margin-bottom:1.5rem!important}.article-content .mt-4{margin-top:1.5rem!important}.article-content .py-3{padding-top:1rem!important;padding-bottom:1rem!important}.keep-position-left{margin-right:auto!important}.keep-position-right{margin-left:auto!important}.article-content-container{height:0;overflow:hidden;box-sizing:border-box;width:100%;transition:height 0.8s cubic-bezier(.22,.61,.36,1)}.content-ready{height:auto!important;overflow:visible!important}@media (prefers-color-scheme:dark){#Reading .cards__card:hover,#Reading .col-md-6>div:hover,#Reading .cards__card.expanded,#Reading .col-md-6>div.expanded{background-color:rgb(255 255 255 / .2)}}@media (prefers-color-scheme:light){#Reading .cards__card:hover,#Reading .col-md-6>div:hover,#Reading .cards__card.expanded,#Reading .col-md-6>div.expanded{background-color:rgb(255 255 255 / .2)}}.width-expanding .article-content-container{height:0!important;overflow:hidden!important}.width-expanding{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.article-content-container,.article-content{box-sizing:border-box;max-width:100%}.article-content .container-fluid,.article-content .row,.article-content .col-12{box-sizing:border-box;max-width:100%;padding-left:0;padding-right:0}.article-content p,.article-content h3{word-wrap:break-word;overflow-wrap:break-word;white-space:normal;max-width:100%}.reading-progress{position:fixed;top:0;left:0;width:0;height:3px;background-color:#e69b45;z-index:1000;transition:width 0.3s ease}.article-content .cards__descr{width:100%;max-width:100%}.fixed-height{height:var(--original-height)!important;min-height:var(--original-height)!important;max-height:var(--original-height)!important;overflow:hidden!important}.width-expanding.fixed-height{height:var(--original-height)!important;min-height:var(--original-height)!important;max-height:var(--original-height)!important;overflow:hidden!important}.article-content .cards__descr{margin-top:0;padding-top:0}#Reading{position:relative;z-index:10;margin-bottom:2rem;transition:height 0.8s cubic-bezier(.22,.61,.36,1);overflow:visible}.fade-out{opacity:0;transform:translateY(-10px);transition:opacity 0.4s ease,transform 0.4s ease}#Reading+*{transition:transform 0.8s cubic-bezier(.22,.61,.36,1);will-change:transform}.article-content-container.height-transition{transition:height 0.8s cubic-bezier(.22,.61,.36,1);overflow:hidden}#Reading .row.allow-shrink{align-items:flex-start!important}@media (max-width:767px){.headline__subtitle-container.mobile-min-height{min-height:8em;display:block;overflow:hidden}#headline .row>.col-12{width:100%!important;flex:0 0 100%!important;max-width:100%!important}}@media (min-width:768px){#headline .row>.col-4.btn-group{display:flex!important}#headline .row>.col-8{flex:0 0 auto!important;width:66.66666667%!important}#headline .row>.col-12.col-md-8{flex:0 0 auto!important;width:66.66666667%!important}}.feature-list .feature-unavailable{opacity:.5;color:var(--neutral-mid)}.feature-list .feature-unavailable i{color:var(--neutral-mid)}.cards__price{font-size:1.2em;font-weight:700;color:var(--accent);margin-top:.5rem;margin-bottom:1rem}.contact-info-overlay{position:absolute;overflow:hidden;cursor:pointer}.contact-text-content{transition:opacity 0.4s ease,transform 0.4s ease;opacity:1;transform:translateY(0)}.qr-code-container{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem;box-sizing:border-box;opacity:0;transform:translateY(20px);transition:opacity 0.4s ease,transform 0.4s ease;pointer-events:none}.qr-code-image{display:block;max-width:max-content;max-height:100%;height:auto;border-radius:8px}.contact-info-overlay.qr-active .contact-text-content{opacity:0;transform:translateY(-20px);pointer-events:none}.contact-info-overlay.qr-active .qr-code-container{opacity:1;transform:translateY(0);pointer-events:auto}@media (max-width:767px){.contact-info-overlay{cursor:default}}#header{display:none!important} /*Update 0425*/

/* --- Add mobile hover style for Reading cards --- */
#Reading .cards__card:hover,
#Reading .col-md-6>div:hover,
#Reading .cards__card.mobile-hover, 
#Reading .col-md-6>div.mobile-hover {
    background-color: rgb(255 255 255 / .2);
}

/* Style for mobile hover on links within Reading articles */
#Reading .article-content a.mobile-hover {
    background-image: linear-gradient(rgb(255 165 0 / .3),rgb(255 165 0 / .3));
    background-repeat: repeat-x;
    background-position: 0 100%;
    background-size: 100% 1em; /* Show hover immediately */
    padding-bottom: 2px;
}

/* Initially hide intro button on mobile to prevent FOUC */
@media (max-width: 767px) {
  section#intro .row.content__block .col-4.btn-group {
    display: none !important; /* Use important to ensure override if needed */
  }
}

/* --- Styles for Combo Details Collapse --- */

/* Rotate caret icon for Bootstrap collapse trigger */
/* Use aria-expanded attribute instead of .collapsed class */
a[data-bs-toggle="collapse"] i.ph-caret-down {
    display: inline-block;
    transition: transform 0.35s ease;
}

a[data-bs-toggle="collapse"][aria-expanded="false"] i.ph-caret-down {
    transform: rotate(-90deg); /* Point right when collapsed */
}

a[data-bs-toggle="collapse"][aria-expanded="true"] i.ph-caret-down {
    transform: rotate(0deg); /* Point down when expanded */
}

/* --- Remove old .collapsed rules --- */
/** a[data-bs-toggle="collapse"].collapsed i.ph-caret-down { ... } **/
/** a[data-bs-toggle="collapse"]:not(.collapsed) i.ph-caret-down { ... } **/

/* Service step text colors */
.step-text {
    color: var(--t-medium); /* Muted text color for steps */
}
.step-text strong {
    color: var(--t-bright); /* Active text color for step titles */
}

/* Ensure collapse is hidden by default (reinforce Bootstrap) */
#combo-details.collapse:not(.show) {
    display: none;
}

/* Styling for the collapsible content wrapper - Make it transparent */
.combo-details-wrapper {
    /* Remove background, border, shadow */
    background-color: transparent;
    border: none;
    box-shadow: none;
    opacity: 1; /* Ensure it's visible when expanded */
}

/* Apply responsive font size based on p tag rules */
.combo-details-wrapper.type-basic-160lh {
    /* Base font size (from p) */
    font-size: 1.8rem;
    /* Assuming line-height and weight are handled by type-basic-160lh or inherited */
}

@media only screen and (min-width: 1200px) {
    .combo-details-wrapper.type-basic-160lh {
        font-size: 2rem;
    }
}
@media only screen and (min-width: 1400px) {
    .combo-details-wrapper.type-basic-160lh {
        font-size: 2.2rem;
    }
}
@media only screen and (min-width: 1600px) {
    .combo-details-wrapper.type-basic-160lh {
        font-size: 2.6rem;
    }
}

/* Ensure tables inside collapse take full width and respect theme */
#combo-details .table {
    width: 100%;
    margin-bottom: 1.5rem; /* Add some space below tables */
    border-color: var(--base-shade); /* Match border color */
}

#combo-details .table thead {
    border-bottom-width: 2px;
    border-color: var(--accent); /* Accent for header */
}

#combo-details .table th,
#combo-details .table td {
    vertical-align: middle;
    padding: 0.75rem 1rem;
    border-top-color: var(--base-shade);
    /* Ensure consistent font size within table */
    font-size: inherit; /* Inherit from wrapper */
}

#combo-details .table-hover > tbody > tr:hover > * {
    color: var(--accent);
    background-color: rgba(var(--accent-rgb), 0.07);
}

#combo-details hr {
    border-top-color: rgba(var(--text-rgb), 0.2); /* Subtler hr */
}

/* Ensure list items inside also inherit font size */
#combo-details ol,
#combo-details ul {
    font-size: inherit; /* Inherit from wrapper */
    padding-left: 2rem; /* Standard list padding */
}

/* --- Styling for Enhanced Combo Details --- */

/* Adjust H3 title size and add design */
.combo-details-wrapper h3.detail-section-title {
    font-size: 1.2em; /* Slightly larger than base, relative to wrapper */
    margin-bottom: 2.5rem; /* More spacing below title */
    text-align: center; 
    font-weight: 500;
    position: relative; /* Needed for pseudo-element */
    padding-bottom: 0.8rem; /* Space for the underline */
    color: var(--t-bright); /* Ensure title color is active */
}

/* Underline/decorator for the title */
.combo-details-wrapper h3.detail-section-title::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: 60px; /* Width of the underline */
    height: 3px; /* Thickness of the underline */
    background-color: var(--accent); /* Use accent color */
    border-radius: 2px;
}

/* --- Styling for Service Process --- */

/* NEW Service Process Grid Styles */
.service-process-grid {
    /* Adjust grid gap if needed */
}

.service-step-card {
    display: flex;
    align-items: flex-start; /* Align icon top with text */
    /* Remove card styles */
    background-color: transparent;
    border: none;
    border-radius: 0;
    padding: 0.5rem 0; /* Adjust padding */
    height: auto; /* Reset height */
    transition: none; /* Remove transition */
}

.service-step-card:hover {
    background-color: transparent; /* Remove hover effect */
}

.step-icon {
    flex-shrink: 0; /* Prevent icon from shrinking */
    margin-right: 1rem;
    margin-top: -0.1em; /* Fine-tune vertical alignment for emoji */
}

.step-icon i, /* Target existing i tags if they were used */
.step-icon span /* Target span if using emoji directly */ {
    font-size: 2.2rem; /* Larger size for emoji */
    /* color: var(--accent); Remove fixed color */
    line-height: 1; /* Prevent extra spacing */
    display: block;
}

.step-text {
    line-height: 1.6; /* Slightly more line height */
    /* Ensure it inherits from wrapper */
}

.step-text strong {
    display: block;
    margin-bottom: 0.25rem;
    font-weight: 500;
    color: var(--t-bright); /* Active text color for step titles */
}

/* Value-Added Service & Gift Cards */
.details-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* Responsive grid */
    gap: 1.5rem;
    margin-bottom: 2.5rem; /* More space after grid */
}

.detail-card {
   
    border: none; /* Remove border */
    border-radius: calc(var(--_radius) * 0.75); /* Slightly smaller radius */
    padding: 2.5rem; /* Updated padding */
    display: flex;
    flex-direction: column;
    box-shadow: inset 0.5rem 0.5rem 1rem var(--base-shade), inset -0.5rem -0.5rem 1rem var(--base-tint) !important; /* Apply inset shadow */
    /* Remove transition */
}

/* Remove card's own hover shadow and color change */
.detail-card:hover {
    /* No hover effects on card itself */
}

/* Remove hover effects from inner content */
.detail-card-title,
.detail-card-description,
.detail-card-price,
.detail-card-details {
    /* Remove static drop shadow */
}

.detail-card-title {
    font-weight: 600; /* Slightly bolder */
    color: var(--t-bright); /* Active title color */
    margin-bottom: 0.75rem;
    /* Let it inherit */
}

.detail-card-title i {
    margin-right: 0.5rem; /* Space between icon and text */
    color: var(--accent); /* Keep icon color as accent */
    font-size: 1.2em; /* Make icon slightly larger relative to title */
}

.detail-card-description {
    font-size: 1em; /* Inherit base font size (usually 1.6rem or similar) */
    line-height: 1.6;
    margin-bottom: 1rem;
    flex-grow: 1; /* Push price/details down */
    opacity: 0.85;
    color: var(--t-medium); /* Muted description color */
}

.detail-card-price,
.detail-card-details {
    font-size: 1em; /* Inherit base font size */
    line-height: 1.6;
    font-weight: normal; /* Standard weight */
    color: var(--t-bright); /* Active price/details color */
    margin-top: auto; /* Push to bottom */
}

/* Responsive grid for detail cards on mobile */
@media (max-width: 767px) {
    .details-card-grid {
        grid-template-columns: 1fr; /* Stack cards vertically */
    }

    .detail-card {
        padding: 1.8rem; /* Adjust mobile padding */
    }

    /* Make the container full width on mobile - Corrected Selector */
    /* Target the specific row holding the col-2/col-8/col-2 structure */
    #combo .content__block.grid-block > .container-fluid > .row.g-0 > .col-8 {
        width: 100%;
        flex: 0 0 100%; 
        max-width: 100%;
        /* Add padding to prevent content touching edges */
        padding-left: var(--grid-gutter-width, 1.5rem); 
        padding-right: var(--grid-gutter-width, 1.5rem);
    }

    #combo .content__block.grid-block > .container-fluid > .row.g-0 > .col-2 {
        display: none; /* Hide spacers on mobile */
    }
}

/* --- Combo Offer Styles --- */

.offer-badge {
    position: absolute;
    top: 0.6rem; /* Adjust vertical position */
    right: 0.6rem; /* Adjust horizontal position */
    background-color: var(--accent, #fca61d);
    color: var(--t-opp-bright, #ffffff);
    padding: 0.5rem 1.2rem; /* Increase padding */
    font-size: 1em; /* Increase font size (relative to parent maybe) */
    font-weight: 700; 
    border-radius: calc(var(--_radius) * 0.5); /* Adjust radius for fit */
    transform: rotate(7deg); /* Reduce rotation slightly */
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
    z-index: 2;
    /* Ensure it's relative to the card descr font size if needed */
    /* Consider if the parent font size changes */
}

.price-container {
    display: flex;
    align-items: baseline; /* Align prices nicely */
    gap: 0.5rem; /* Space between prices */
    margin-top: 0.5rem; /* Adjust spacing */
    margin-bottom: 0.5rem; /* Reduce bottom margin */
}

.original-price {
    text-decoration: line-through;
    color: var(--t-medium); /* Muted color */
    font-size: 0.9em; /* Slightly smaller */
}

.current-price {
    font-size: 1.2em; /* Same as original .cards__price */
    font-weight: 700;
    color: var(--accent); /* Highlight offer price */
}

/* Ensure badge is positioned correctly within its container */
#combo .grid-item > .d-flex.flex-column {
    position: relative; /* Parent needs to be relative for absolute badge */
    overflow: visible; /* Allow badge to slightly overflow if needed */
}

#combo .cards .row {
    display: flex; /* Use flexbox for alignment */
    flex-wrap: wrap; /* Allow wrapping on smaller screens */
}

#combo .cards .grid-item {
    display: flex; /* Make grid items flex containers */
    flex-direction: column; /* Stack content vertically */
}

#combo .cards .grid-item > .d-flex {
    flex-grow: 1; /* Allow the inner container to grow */
    display: flex; /* Keep it as a flex container */
    flex-direction: column; /* Stack card description vertically */
    height: 100%; /* Make inner container take full height */
}

#combo .cards__descr {
    flex-grow: 1; 
    display: flex; 
    flex-direction: column; 
    padding: 2.5rem; 
    border-radius: var(--_radius); 
    background-color: rgba(var(--base-rgb), 0.2); 
    /* Apply responsive base font size */
    font-size: 1.8rem;
    line-height: 1.6;
    margin-bottom: 0; 
    height: 100%; 
}

/* Add responsive font size media queries for .cards__descr */
@media only screen and (min-width: 1200px) {
    #combo .cards__descr {
        font-size: 2rem;
    }
}
@media only screen and (min-width: 1400px) {
    #combo .cards__descr {
        font-size: 2.2rem;
    }
}
@media only screen and (min-width: 1600px) {
    #combo .cards__descr {
        font-size: 2.6rem;
    }
}

/* Adjust inner elements font size relative to .cards__descr */
#combo .cards__title {
    /* Example: Make title slightly larger than base */
    
    font-weight: 500; /* Adjust weight as needed */
    margin-bottom: 0.75rem; /* Adjust spacing */
}

#combo .cards__text {
    /* Example: Make descriptive text smaller, similar to detail-card-description */
    
    line-height: 1.5; /* Adjust line height */
    opacity: 0.85; /* Optional: match opacity */
    margin-bottom: 1rem; /* Adjust spacing */
}

#combo .feature-list {
    margin-top: auto; 
    padding-top: 1rem; /* Reduce top padding */
}

#combo .feature-list li {
    /* Example: Make list items same size as descriptive text */
    
    line-height: 1.5; /* Adjust line height */
    margin-bottom: 0.5rem; /* Adjust spacing */
}

/* Ensure icons in feature list don't become too large/small */
#combo .feature-list li i {
    
    margin-right: 0.5rem; /* Adjust spacing */
    vertical-align: middle; /* Adjust alignment */
}

/* Keep price styles potentially relative as they were */
#combo .price-container {
    /* ... existing styles ... */
}
#combo .original-price {
    /* font-size: 0.9em; */ /* Keep existing relative size or adjust */
}
#combo .current-price {
     /* font-size: 1.2em; */ /* Keep existing relative size or adjust */
}

/* ... (rest of the CSS) ... */

/* --- Enhanced Combo Details Card Font Size --- */

/* REMOVE specific font-size rules for .detail-card as it now uses type-basic-160lh class */
.detail-card {
    /* Keep other styles like padding, background, border-radius etc. */
    padding: 2.5rem;
}

/* Keep Adjustments for inner elements font size relative to the card's base size */
.detail-card-description,
.detail-card-price,
.detail-card-details {
    font-size: 0.85em; /* Relative to parent (.detail-card) */
    line-height: 1.5;
}

.detail-card-title {
    font-size: 1em; /* Title can be base size */
    font-weight: 500;
    color: var(--t-bright);
    margin-bottom: 0.75rem;
}

.detail-card-title i {
    font-size: 1.1em; /* Icon relative to title */
    margin-right: 0.5rem;
    color: var(--accent);
}

/* --- Collapse Trigger Button Font Size --- */
/* REMOVE specific font-size rules for button as it now uses type-basic-160lh class */
/*a[data-bs-toggle="collapse"][href="#combo-details"] { ... }*/

/* Keep icon size adjustment within the button */
a[data-bs-toggle="collapse"][href="#combo-details"] i {
   font-size: 0.9em; /* Slightly smaller than button text */
   vertical-align: baseline; /* Adjust alignment */
}

/* --- Collapse Animation --- */
#combo-details.collapsing {
    transition: height 0.5s cubic-bezier(.22,.61,.36,1); /* Smooth height transition */
}

#combo-details .combo-details-wrapper > * {
    transition: opacity 0.4s ease 0.1s, transform 0.4s ease 0.1s; /* Add delay */
    opacity: 0;
    transform: translateY(10px);
}

#combo-details.collapse.show .combo-details-wrapper > * {
    opacity: 1;
    transform: translateY(0);
}

/* Stagger animation for elements inside wrapper */
#combo-details.collapse.show .combo-details-wrapper > *:nth-child(1) { transition-delay: 0.15s; }
#combo-details.collapse.show .combo-details-wrapper > *:nth-child(2) { transition-delay: 0.2s; }
#combo-details.collapse.show .combo-details-wrapper > *:nth-child(3) { transition-delay: 0.25s; }
#combo-details.collapse.show .combo-details-wrapper > *:nth-child(4) { transition-delay: 0.3s; }
#combo-details.collapse.show .combo-details-wrapper > *:nth-child(5) { transition-delay: 0.35s; }
/* Add more if needed */

/* Apply responsive font size matching type-basic-160lh */
a[data-bs-toggle="collapse"][href="#combo-details"] {
    /* Base font size */
    font-size: 1.8rem;
    line-height: 1.6;
    /* Ensure vertical alignment if needed */
    vertical-align: middle; 
}

@media only screen and (min-width: 1200px) {
    a[data-bs-toggle="collapse"][href="#combo-details"] {
        font-size: 2rem;
    }
}
@media only screen and (min-width: 1400px) {
    a[data-bs-toggle="collapse"][href="#combo-details"] {
        font-size: 2.2rem;
    }
}
@media only screen and (min-width: 1600px) {
    a[data-bs-toggle="collapse"][href="#combo-details"] {
        font-size: 2.6rem;
    }
}

/* Adjust icon size within the button */
a[data-bs-toggle="collapse"][href="#combo-details"] i {
   font-size: 0.9em; /* Slightly smaller than button text */
   vertical-align: baseline; /* Adjust alignment */
}

/* --- Feature Item Expand/Collapse Styling --- */

/* Ensure consistent spacing for all list items in feature lists */
#combo .feature-list li {
    margin: 0;  /* Reset all margins */
    padding: 0.2rem 0;  /* Reduce padding to make list more compact */
    position: relative; /* Ensure all items have position set */
    line-height: 1.5; /* Consistent line height */
}

/* Add style for feature list items that are expandable */
#combo .feature-list li.expandable {
    cursor: pointer;
    transition: color 0.3s ease;
    padding-right: 2rem; /* Space for arrow */
}

/* Non-expandable items should look disabled but maintain same spacing */
#combo .feature-list li.feature-unavailable {
    opacity: 0.5;
    color: var(--t-medium);
    cursor: default;
    padding-right: 2rem; /* Match the padding of expandable items */
}

/* Feature list general spacing */
#combo .feature-list {
    margin-top: auto;
    padding-top: 0.8rem; /* Reduced top padding */
}

/* Make all internal span elements consistent */
#combo .feature-list li .feature-content,
#combo .feature-list li i:first-child {
    display: inline-block;
    vertical-align: middle;
}

/* Arrow icon styles */
#combo .feature-list li.expandable .feature-arrow {
    position: absolute;
    right: 0;
    top: 50%; /* Set to 50% of container height */
    transform: translateY(-50%) rotate(-90deg); /* Center vertically and rotate */
    transition: transform 0.3s ease;
    font-size: 0.9em;
    color: inherit;
    display: inline-block;
    width: 1.5rem;
    height: 1.5rem;
    text-align: center;
    line-height: 1.5rem;
}

/* Active state (open) for arrow */
#combo .feature-list li.expandable.show .feature-arrow {
    transform: translateY(-50%) rotate(0deg); /* Keep vertical centering when open */
}

/* Ensure list items have proper height for absolute positioning */
#combo .feature-list li {
    min-height: 1.5rem; /* Ensure minimum height for arrow positioning */
}

/* Container for the description */
.feature-description {
    font-size: 0.9em;
    margin-top: 0.2rem; /* Reduced top margin */
    margin-bottom: 0.2rem; /* Reduced bottom margin */
    color: var(--t-medium);
    line-height: 1.5;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.35s ease, opacity 0.35s ease, margin 0.35s ease;
    opacity: 0;
    margin-left: 1.5rem; /* Indent under the feature */
    padding-right: 1.5rem; /* Don't overlap with arrow */
}

/* Active state for description */
.feature-description.show {
    max-height: 50rem; /* Large enough for any description */
    opacity: 1;
}

/* Feature content spacing */
#combo .feature-list li.expandable .feature-content {
    margin-right: 1rem; /* Space for the arrow */
}