.elementor-106 .elementor-element.elementor-element-327b9e38{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:1em;--padding-bottom:1em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-5ea15224{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--overlay-opacity:0.5;--border-radius:24px 24px 24px 24px;--padding-top:9em;--padding-bottom:3em;--padding-left:3em;--padding-right:3em;}.elementor-106 .elementor-element.elementor-element-5ea15224:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-5ea15224 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://grandmeca.us/wp-content/uploads/2025/11/Copy-of-封面-scaled.jpg");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-106 .elementor-element.elementor-element-5ea15224::before, .elementor-106 .elementor-element.elementor-element-5ea15224 > .elementor-background-video-container::before, .elementor-106 .elementor-element.elementor-element-5ea15224 > .e-con-inner > .elementor-background-video-container::before, .elementor-106 .elementor-element.elementor-element-5ea15224 > .elementor-background-slideshow::before, .elementor-106 .elementor-element.elementor-element-5ea15224 > .e-con-inner > .elementor-background-slideshow::before, .elementor-106 .elementor-element.elementor-element-5ea15224 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:var( --e-global-color-primary );--background-overlay:'';}.elementor-106 .elementor-element.elementor-element-70625759{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-70625759.e-con{--flex-grow:0;--flex-shrink:0;}.elementor-106 .elementor-element.elementor-element-6efb3708{--iteration-count:infinite;--animation-duration:1200ms;margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;--dynamic-text-color:var( --e-global-color-secondary );}.elementor-106 .elementor-element.elementor-element-6efb3708 .elementor-headline{text-align:left;}.elementor-106 .elementor-element.elementor-element-6efb3708 .elementor-headline-plain-text{color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-6efb3708 .elementor-headline-dynamic-wrapper path{stroke:#02010100;}.elementor-106 .elementor-element.elementor-element-23b5cc90 .elementor-icon-list-icon i{color:var( --e-global-color-f180651 );transition:color 0.3s;}.elementor-106 .elementor-element.elementor-element-23b5cc90 .elementor-icon-list-icon svg{fill:var( --e-global-color-f180651 );transition:fill 0.3s;}.elementor-106 .elementor-element.elementor-element-23b5cc90{--e-icon-list-icon-size:14px;--icon-vertical-offset:0px;}.elementor-106 .elementor-element.elementor-element-23b5cc90 .elementor-icon-list-text{color:var( --e-global-color-f180651 );transition:color 0.3s;}.elementor-106 .elementor-element.elementor-element-23b5cc90 .elementor-icon-list-item:hover .elementor-icon-list-text{color:var( --e-global-color-accent );}.elementor-106 .elementor-element.elementor-element-1126c8f0{--display:flex;--justify-content:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-58369495{--divider-border-style:solid;--divider-color:var( --e-global-color-f180651 );--divider-border-width:1px;}.elementor-106 .elementor-element.elementor-element-58369495 .elementor-divider-separator{width:100%;}.elementor-106 .elementor-element.elementor-element-58369495 .elementor-divider{padding-block-start:2px;padding-block-end:2px;}.elementor-106 .elementor-element.elementor-element-4b5a0475{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;text-align:right;color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-4842e2d4 .elementor-button{background-color:var( --e-global-color-accent );fill:var( --e-global-color-f180651 );color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-4842e2d4 .elementor-button:hover, .elementor-106 .elementor-element.elementor-element-4842e2d4 .elementor-button:focus{background-color:var( --e-global-color-primary );}.elementor-106 .elementor-element.elementor-element-4842e2d4{width:auto;max-width:auto;}.elementor-106 .elementor-element.elementor-element-6af7f467{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:4em;--padding-bottom:4em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-168297be{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-4eac39e{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-2e55a4af{text-align:left;}.elementor-106 .elementor-element.elementor-element-35676e8d{--iteration-count:infinite;--animation-duration:1200ms;margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;--dynamic-text-color:var( --e-global-color-accent );}.elementor-106 .elementor-element.elementor-element-35676e8d .elementor-headline{text-align:left;}.elementor-106 .elementor-element.elementor-element-35676e8d .elementor-headline-plain-text{color:var( --e-global-color-primary );}.elementor-106 .elementor-element.elementor-element-35676e8d .elementor-headline-dynamic-wrapper path{stroke:#02010100;}.elementor-106 .elementor-element.elementor-element-230c57df{--display:flex;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-22d15808{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;text-align:right;}.elementor-106 .elementor-element.elementor-element-5329c06{--spacer-size:20px;}.elementor-106 .elementor-element.elementor-element-48ff189{--display:flex;}.elementor-106 .elementor-element.elementor-element-6d69757{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 2em) 0em;}.elementor-106 .elementor-element.elementor-element-946479e{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-ac1aee1{--display:flex;--border-radius:20px 20px 20px 20px;box-shadow:0px 3px 10px 0px rgba(0, 0, 0, 0.08);--padding-top:1.5em;--padding-bottom:1.5em;--padding-left:1.5em;--padding-right:1.5em;}.elementor-106 .elementor-element.elementor-element-ac1aee1:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-ac1aee1 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-106 .elementor-element.elementor-element-bb89119 .elementor-heading-title{font-size:30px;font-weight:600;letter-spacing:0px;}.elementor-106 .elementor-element.elementor-element-16bd517{margin:-10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-106 .elementor-element.elementor-element-16bd517 .elementor-heading-title{font-size:14px;font-weight:400;letter-spacing:0px;color:var( --e-global-color-text );}.elementor-106 .elementor-element.elementor-element-b12ae8a{font-size:16px;font-weight:400;letter-spacing:0px;}.elementor-106 .elementor-element.elementor-element-b12ae8a p{margin-block-end:0px;}.elementor-106 .elementor-element.elementor-element-36d5a64{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-b57ecef img{width:100%;height:200px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-8897b0f img{width:100%;height:200px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-240dbf6 img{width:100%;height:200px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-b313dec{width:var( --container-widget-width, 50% );max-width:50%;--container-widget-width:50%;--container-widget-flex-grow:0;}.elementor-106 .elementor-element.elementor-element-b313dec img{width:100%;height:500px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-46cfa450{--display:flex;--overflow:hidden;--border-radius:24px 24px 24px 24px;--padding-top:2em;--padding-bottom:2em;--padding-left:2em;--padding-right:2em;}.elementor-106 .elementor-element.elementor-element-46cfa450:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-46cfa450 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url("https://grandmeca.us/wp-content/uploads/2025/10/architectural-house-exterior-2024-09-23-04-00-14-utc.jpg");background-position:bottom center;background-repeat:no-repeat;background-size:cover;}.elementor-106 .elementor-element.elementor-element-7ad0c4fa{--display:flex;--align-items:flex-start;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--border-radius:24px 24px 24px 24px;--padding-top:1em;--padding-bottom:1em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-7ad0c4fa:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-7ad0c4fa > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-8ec3981{margin:-10px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;}.elementor-106 .elementor-element.elementor-element-8ec3981 .elementor-heading-title{font-size:14px;font-weight:400;letter-spacing:0px;color:var( --e-global-color-text );}.elementor-106 .elementor-element.elementor-element-334626d2{text-align:left;}.elementor-106 .elementor-element.elementor-element-2c9e6bc{--display:grid;--e-con-grid-template-columns:repeat(3, 1fr);--e-con-grid-template-rows:repeat(1, 1fr);--grid-auto-flow:row;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-bc003d9 img{width:100%;height:120px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-083a0b3 img{width:100%;height:120px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-ef23284 img{width:100%;height:120px;object-fit:cover;object-position:center center;border-radius:20px 20px 20px 20px;}.elementor-106 .elementor-element.elementor-element-1ebdc333{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--flex-wrap:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-106 .elementor-element.elementor-element-74c479a9{width:auto;max-width:auto;background-color:var( --e-global-color-accent );padding:8px 20px 8px 20px;border-radius:100px 100px 100px 100px;}.elementor-106 .elementor-element.elementor-element-74c479a9 .elementor-heading-title{color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-6345d692{width:auto;max-width:auto;background-color:var( --e-global-color-accent );padding:8px 20px 8px 20px;border-radius:100px 100px 100px 100px;}.elementor-106 .elementor-element.elementor-element-6345d692 .elementor-heading-title{color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-6f310ad9{width:auto;max-width:auto;background-color:var( --e-global-color-accent );padding:8px 20px 8px 20px;border-radius:100px 100px 100px 100px;}.elementor-106 .elementor-element.elementor-element-6f310ad9 .elementor-heading-title{color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-13ce473c{width:auto;max-width:auto;background-color:var( --e-global-color-accent );padding:8px 20px 8px 20px;border-radius:100px 100px 100px 100px;}.elementor-106 .elementor-element.elementor-element-13ce473c .elementor-heading-title{color:var( --e-global-color-f180651 );}.elementor-106 .elementor-element.elementor-element-a44d65d{text-align:left;}@media(min-width:768px){.elementor-106 .elementor-element.elementor-element-327b9e38{--content-width:1440px;}.elementor-106 .elementor-element.elementor-element-70625759{--width:59.13%;}.elementor-106 .elementor-element.elementor-element-6af7f467{--content-width:1440px;}.elementor-106 .elementor-element.elementor-element-ac1aee1{--width:50%;}.elementor-106 .elementor-element.elementor-element-46cfa450{--width:100%;}.elementor-106 .elementor-element.elementor-element-7ad0c4fa{--width:39%;}}@media(max-width:1024px) and (min-width:768px){.elementor-106 .elementor-element.elementor-element-70625759{--width:100%;}.elementor-106 .elementor-element.elementor-element-1126c8f0{--width:100%;}.elementor-106 .elementor-element.elementor-element-7ad0c4fa{--width:50%;}}@media(min-width:1025px){.elementor-106 .elementor-element.elementor-element-5ea15224:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-5ea15224 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}.elementor-106 .elementor-element.elementor-element-46cfa450:not(.elementor-motion-effects-element-type-background), .elementor-106 .elementor-element.elementor-element-46cfa450 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-attachment:scroll;}}@media(max-width:1024px){.elementor-106 .elementor-element.elementor-element-5ea15224{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:2em;--padding-bottom:2em;--padding-left:2em;--padding-right:2em;}.elementor-106 .elementor-element.elementor-element-4b5a0475{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 8em;text-align:right;}.elementor-106 .elementor-element.elementor-element-6af7f467{--padding-top:3em;--padding-bottom:3em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-22d15808{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 2em;}.elementor-106 .elementor-element.elementor-element-36d5a64{--grid-auto-flow:row;}.elementor-106 .elementor-element.elementor-element-46cfa450{--padding-top:1em;--padding-bottom:1em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-2c9e6bc{--grid-auto-flow:row;}}@media(max-width:767px){.elementor-106 .elementor-element.elementor-element-5ea15224{--padding-top:2em;--padding-bottom:2em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-4b5a0475{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;text-align:left;}.elementor-106 .elementor-element.elementor-element-4842e2d4.elementor-element{--align-self:stretch;--flex-grow:1;--flex-shrink:0;}.elementor-106 .elementor-element.elementor-element-4842e2d4 .elementor-button .elementor-button-content-wrapper{justify-content:center;}.elementor-106 .elementor-element.elementor-element-22d15808{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;text-align:left;}.elementor-106 .elementor-element.elementor-element-5329c06{--spacer-size:10px;}.elementor-106 .elementor-element.elementor-element-6d69757{margin:0em 0em calc(var(--kit-widget-spacing, 0px) + 0em) 0em;}.elementor-106 .elementor-element.elementor-element-36d5a64{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}.elementor-106 .elementor-element.elementor-element-46cfa450{--padding-top:1em;--padding-bottom:1em;--padding-left:1em;--padding-right:1em;}.elementor-106 .elementor-element.elementor-element-2c9e6bc{--e-con-grid-template-columns:repeat(1, 1fr);--grid-auto-flow:row;}}/* Start custom CSS for shortcode, class: .elementor-element-6d69757 */.portfolio-filter {
    width: 100%;
}

.portfolio-inner {
    width: 100%; 
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

.portfolio-tabs {
    display: flex;
    gap: 1em;
    justify-content: center;
    flex-wrap: wrap; 
    padding: .5em 0;
    margin-bottom: 20px;
}

.portfolio-tab {
    padding: .5em 1.5em;
    border-radius: 999px;
    border: 1px solid #e6e6e6;
    background: #fff;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 14px;
    font-weight: 500;
}

.portfolio-tab:hover {
    background: #000;
    color: #fff;
    border-color: #000;
}

.portfolio-tab.active {
    background: #000;
    border-color: #000;
    color: #fff;
}

.por-tag-pill {
    display: inline-block;
    background: var(--e-global-color-accent);
    color: #fff;
    padding: 6px 16px;
    border-radius: 50px; 
    margin-right: 10px;
    margin-bottom: 5px;
    font-size: 14px;
    line-height: 1.4;
    transition: opacity 0.3s;
}

.por-tag-pill:last-child {
    margin-right: 0;
}

.clickable-element {
    cursor: pointer !important;
    transition: opacity 0.2s;
}
/*.clickable-element:hover {*/
/*    opacity: 0.8;*/
/*}*/

.portfolio-pager {
    margin-top: 2rem;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: .5rem;
    user-select: none;
}

.pager-numbers {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.pager-btn,
.pager-number,
.pager-dots {
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.pager-number {
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%; 
    border: 1px solid #e6e6e6;
    background: #fff;
    font-weight: 600;
    color: #333;
}

.pager-number:hover {
    border-color: #000;
    color: #000;
}

.pager-number.active {
    background: #000;
    border-color: #000;
    color: #fff;
}

.pager-dots {
    width: 1rem;
    cursor: default;
    color: #999;
}

.pager-btn {
    width: auto;
    height: 2.5rem;
    padding: 0 10px;
    border: none;
    background: transparent;
    font-size: 1.2rem;
    color: #333;
}

.pager-btn:hover {
    background: transparent;
    color: #000;
    transform: scale(1.1);
}

.pager-btn.disabled {
    opacity: 0.3;
    pointer-events: none;
    cursor: not-allowed;
}


.portfolio-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 100;
    backdrop-filter: blur(2px);
    border-radius: inherit;
    transition: opacity 0.3s;
}

.portfolio-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid var(--e-global-color-accent);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-b57ecef */.imagehoverbox {
    overflow: hidden;
    border-radius: 20px;
}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-b313dec */.imagehoverbox1 {
    overflow: hidden;
    border-radius: 20px;
}/* End custom CSS */
/* Start custom CSS for image, class: .elementor-element-bc003d9 */.imagehoverbox {
    overflow: hidden;
    border-radius: 20px;
}/* End custom CSS */