.g55-services-section {
--card-bg: #ffffff;
--text-main: #111111;
--text-muted: #737373;
--border-color: #e5e5e5;
--accent: var(--g55-brand-sage);
padding: 100px max(40px, calc((100vw - 1400px) / 2));
background: transparent;
color: var(--text-main);
box-sizing: border-box;
}
.g55-services-section *,
.g55-services-section *::before,
.g55-services-section *::after {
box-sizing: border-box;
}
.g55-services-section .g55-services-grid {
display: grid;
grid-template-columns: minmax(280px, 360px) 1fr;
grid-template-rows: auto 1fr;
column-gap: 80px;
row-gap: 30px;
align-items: start;
} .g55-services-left,
.g55-services-right {
display: contents;
}
.g55-services-section .g55-section-label    { grid-column: 1; grid-row: 1; }
.g55-services-section .g55-testimonial-card { grid-column: 1; grid-row: 2; }
.g55-services-section .g55-header-row       { grid-column: 2; grid-row: 1; }
.g55-services-section .g55-accordion        { grid-column: 2; grid-row: 2; } .g55-services-section--no-testimonial .g55-services-grid {
grid-template-columns: 1fr;
grid-template-rows: auto auto auto;
column-gap: 0;
row-gap: 24px;
}
.g55-services-section--no-testimonial .g55-section-label { grid-column: 1; grid-row: 1; }
.g55-services-section--no-testimonial .g55-header-row    { grid-column: 1; grid-row: 2; }
.g55-services-section--no-testimonial .g55-accordion     { grid-column: 1; grid-row: 3; }
.g55-section-label {
display: flex;
align-items: center;
gap: 8px;
color: var(--text-muted);
font-size: 14px;
}
.g55-dot {
width: 6px;
height: 6px;
background-color: var(--g55-brand-navy);
border-radius: 50%;
}
.g55-testimonial-card {
background-color: var(--card-bg);
border-radius: 16px;
padding: 30px;
box-shadow: 0 4px 12px rgba(0,0,0,0.03);
}
.g55-card-stats {
display: flex;
justify-content: space-between;
margin-bottom: 24px;
}
.g55-stat-val {
color: var(--text-main);
margin: 0;
font-size: 24px;
font-weight: 600;
}
.g55-stat-label {
color: var(--text-muted);
margin: 4px 0 0;
font-size: 12px;
}
.g55-card-divider {
border: none;
border-top: 1px solid var(--border-color);
margin: 0 0 20px 0;
}
.g55-stars {
color: var(--accent);
margin-bottom: 16px;
letter-spacing: 2px;
}
.g55-quote-text {
color: var(--text-main);
margin: 0 0 24px 0;
font-size: 16px;
line-height: 1.5;
}
.g55-author {
display: flex;
align-items: center;
gap: 12px;
}
.g55-author img {
width: 40px;
height: 40px;
border-radius: 50%;
object-fit: cover;
}
.g55-author-info strong {
display: block;
color: var(--text-main);
font-size: 14px;
}
.g55-author-info span {
color: var(--text-muted);
font-size: 12px;
} .g55-header-row {
display: flex;
justify-content: space-between;
align-items: center;
}
.g55-header-row h2 {
color: var(--text-main);
margin: 0;
font-size: var(--g55-h2-size);
line-height: var(--g55-h2-line);
font-weight: var(--g55-h2-weight);
letter-spacing: var(--g55-h2-tracking);
}
.g55-btn-primary {
background-color: #000;
color: #fff;
border: none;
border-radius: 30px;
padding: 12px 24px;
cursor: pointer;
transition: opacity 0.2s;
text-decoration: none;
font-size: 14px;
font-weight: 500;
display: inline-block;
}
.g55-btn-primary:hover {
opacity: 0.8;
} .g55-accordion {
width: 100%;
}
.g55-accordion-item {
border-top: 1px solid var(--border-color);
padding: 24px 0;
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.g55-accordion-item:last-child {
border-bottom: 1px solid var(--border-color);
}
.g55-acc-num {
color: var(--text-muted);
width: 60px;
flex-shrink: 0;
padding-top: 5px;
font-family: monospace;
}
.g55-acc-main-content {
flex-grow: 1;
padding-right: 20px;
} .g55-collapsed-title {
color: var(--text-main);
margin: 0;
padding-top: 2px;
max-height: 40px;
opacity: 1;
overflow: hidden;
transition: all 0.3s ease;
font-size: 20px;
font-weight: 600;
}
.g55-expanded-content {
display: grid;
grid-template-rows: 0fr;
transition: grid-template-rows 0.4s ease-out;
}
.g55-expanded-inner {
overflow: hidden;
min-height: 0;
display: flex;
align-items: flex-start;
gap: 24px;
opacity: 0;
transition: opacity 0.3s ease-out 0.1s; 
}
.g55-acc-img {
width: 160px;
height: 110px;
min-height: 110px;
border-radius: 8px;
object-fit: cover;
flex-shrink: 0;
}
.g55-acc-details .g55-acc-title {
color: var(--text-main);
display: block;
margin-bottom: 8px;
font-size: 20px;
font-weight: 600;
}
.g55-acc-desc {
color: var(--text-muted);
margin: 0 0 16px 0;
max-width: 400px;
font-size: 14px;
line-height: 1.6;
}
.g55-acc-tags {
display: flex;
gap: 8px;
flex-wrap: wrap;
}
.g55-tag {
background-color: var(--card-bg);
border: 1px solid var(--border-color);
color: var(--text-main);
padding: 6px 12px;
border-radius: 20px;
font-size: 12px;
} .g55-toggle-btn {
width: 36px;
height: 36px;
border-radius: 50%;
border: none;
background: #ffffff;
color: #000000;
position: relative;
cursor: pointer;
flex-shrink: 0;
transition: background-color 0.3s ease, color 0.3s ease;
box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.g55-toggle-btn::before {
content: '';
position: absolute;
background-color: currentColor;
width: 14px;
height: 2px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: background-color 0.3s ease;
}
.g55-toggle-btn::after {
content: '';
position: absolute;
background-color: currentColor;
width: 2px;
height: 14px;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
} .g55-accordion-item.g55-active .g55-collapsed-title {
max-height: 0;
opacity: 0;
}
.g55-accordion-item.g55-active .g55-expanded-content {
grid-template-rows: 1fr;
}
.g55-accordion-item.g55-active .g55-expanded-inner {
opacity: 1;
}
.g55-accordion-item.g55-active .g55-toggle-btn {
background: #000000;
color: #ffffff;
}
.g55-accordion-item.g55-active .g55-toggle-btn::after {
transform: translate(-50%, -50%) rotate(90deg);
opacity: 0;
} @media (max-width: 900px) {
.g55-services-section {
padding: 60px 20px;
}
.g55-services-section .g55-services-grid {
grid-template-columns: 1fr;
grid-template-rows: none;
column-gap: 0;
row-gap: 30px;
}
.g55-services-section .g55-section-label,
.g55-services-section .g55-testimonial-card,
.g55-services-section .g55-header-row,
.g55-services-section .g55-accordion {
grid-column: auto;
grid-row: auto;
}
.g55-expanded-inner {
flex-direction: column;
}
.g55-acc-img {
width: 100%;
height: 200px;
min-height: 200px;
}
}
@media (max-width: 500px) {
.g55-header-row {
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
.g55-header-row h2 {
font-size: 28px;
} .g55-acc-num {
width: 38px;
font-size: 12px;
}
.g55-acc-main-content {
padding-right: 12px;
}
.g55-collapsed-title,
.g55-acc-details .g55-acc-title {
font-size: 17px;
}
.g55-accordion-item {
padding: 20px 0;
}
.g55-testimonial-card {
padding: 24px;
}
}.g55-stats-section {
padding: 100px max(40px, calc((100vw - 1400px) / 2));
background: transparent;
color: #000;
box-sizing: border-box;
}
.g55-stats-section *,
.g55-stats-section *::before,
.g55-stats-section *::after { box-sizing: border-box; } .g55-stats-section .g55-content-wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 40px;
align-items: stretch;
padding-bottom: 90px;
}
.g55-stats-section .g55-col-left {
display: flex;
flex-direction: column;
gap: 40px;
} .g55-stats-section .g55-col-left .g55-testimonial {
margin-top: auto;
}
.g55-stats-section .g55-col-right {
display: flex;
flex-direction: column;
gap: 40px;
}
.g55-stats-section .g55-eco-stat {
display: flex;
align-items: center;
gap: 10px;
color: #6b6b6b;
padding-top: 10px;
white-space: nowrap;
font-size: 14px;
}
.g55-stats-section .g55-dot {
width: 7px;
height: 7px;
background: var(--g55-brand-navy);
border-radius: 50%;
flex-shrink: 0;
display: inline-block;
}
.g55-stats-section .g55-heading {
margin: 0;
color: #0a0a0a;
max-width: 100%;
font-size: var(--g55-h2-size);
line-height: var(--g55-h2-line);
font-weight: var(--g55-h2-weight);
letter-spacing: var(--g55-h2-tracking);
}
.g55-stats-section .g55-grey { color: var(--g55-brand-navy); font-weight: 600; }
.g55-stats-section .g55-testimonial {
display: flex;
align-items: center;
gap: 22px;
}
.g55-stats-section .g55-quote {
color: #000;
font-size: clamp(15px, 1.05vw, 17px);
line-height: 1.4;
font-weight: 500;
letter-spacing: -0.005em;
max-width: 320px;
}
.g55-stats-section .g55-divider {
width: 1px;
height: 60px;
background: #e2e2e2;
flex-shrink: 0;
}
.g55-stats-section .g55-author {
display: flex;
align-items: center;
gap: 12px;
}
.g55-stats-section .g55-avatar-wrap {
width: 44px;
height: 44px;
border-radius: 50% !important;
overflow: hidden;
flex-shrink: 0;
display: block;
position: relative;
}
.g55-stats-section .g55-avatar-wrap .g55-avatar {
width: 100% !important;
height: 100% !important;
object-fit: cover !important;
display: block !important;
border-radius: 50% !important;
border: 0 !important;
margin: 0 !important;
padding: 0 !important;
max-width: none !important;
}
.g55-stats-section .g55-author-name {
color: #000;
margin-bottom: 2px;
font-weight: 500;
font-size: 15px;
}
.g55-stats-section .g55-author-title {
color: #8a8a8a;
font-size: 13px;
}
.g55-stats-section .g55-video-promo {
display: flex;
align-items: center;
gap: 20px;
}
.g55-stats-section .g55-video-thumb {
width: 110px;
height: 75px;
border-radius: 12px;
background-size: cover;
background-position: center;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
flex-shrink: 0;
position: relative;
overflow: hidden;
} .g55-stats-section button.g55-video-thumb {
border: 0;
padding: 0;
margin: 0;
color: inherit;
font: inherit;
appearance: none;
}
.g55-stats-section .g55-video-thumb--clickable:focus-visible {
outline: 2px solid var(--g55-brand-navy);
outline-offset: 3px;
}
.g55-stats-section .g55-video-thumb::before {
content: '';
position: absolute;
inset: 0;
background: rgba(0,0,0,0.12);
}
.g55-stats-section .g55-play {
width: 30px;
height: 30px;
background: #fff;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #000;
z-index: 2;
transition: transform 0.2s ease;
padding-left: 2px;
}
.g55-stats-section .g55-video-thumb:hover .g55-play { transform: scale(1.1); }
.g55-stats-section .g55-video-text {
color: #1a1a1a;
max-width: 420px;
font-size: 15px;
line-height: 1.45;
} .g55-stats-section .g55-stats-row {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 20px;
}
.g55-stats-section .g55-stat-card {
background: #ffffff;
border: 1px solid #ececec;
border-radius: 18px;
padding: 28px 32px 30px;
min-height: 240px;
display: flex;
flex-direction: column;
justify-content: space-between;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.02);
}
.g55-stats-section .g55-stat-num {
color: #9a9a9a;
font-size: 14px;
font-variant-numeric: tabular-nums;
}
.g55-stats-section .g55-stat-value {
color: #0a0a0a;
margin: 30px 0 16px;
font-variant-numeric: tabular-nums;
font-size: clamp(48px, 5.5vw, 72px);
line-height: 1;
font-weight: 600;
letter-spacing: -0.02em;
}
.g55-stats-section .g55-stat-label {
color: #8a8a8a;
font-size: 15px;
line-height: 1.4;
} @media (max-width: 960px) {
.g55-stats-section .g55-content-wrapper {
display: flex;
flex-direction: column;
gap: 30px;
padding-bottom: 40px;
} .g55-stats-section .g55-col-left,
.g55-stats-section .g55-col-right {
display: contents;
}
.g55-stats-section .g55-eco-stat    { order: 1; }
.g55-stats-section .g55-heading     { order: 2; }
.g55-stats-section .g55-testimonial { order: 3; }
.g55-stats-section .g55-video-promo { order: 4; }
.g55-stats-section .g55-eco-stat { white-space: normal; }
.g55-stats-section .g55-stats-row { grid-template-columns: 1fr; }
.g55-stats-section .g55-stat-card { min-height: auto; padding: 24px; }
.g55-stats-section .g55-stat-value { margin: 16px 0 12px; }
}
@media (max-width: 560px) {
.g55-stats-section { padding: 30px 18px; } .g55-stats-section .g55-testimonial {
flex-direction: column;
align-items: stretch;
gap: 16px;
}
.g55-stats-section .g55-divider {
display: block;
width: 100%;
height: 1px;
} .g55-stats-section .g55-video-promo {
flex-direction: column;
align-items: stretch;
gap: 16px;
}
.g55-stats-section .g55-video-thumb {
width: 100%;
height: auto;
aspect-ratio: 16 / 9;
}
.g55-stats-section .g55-video-text { max-width: none; }
} dialog.g55-video-dialog {
width: min(960px, calc(100vw - 32px));
max-width: 960px;
max-height: calc(100vh - 32px);
margin: auto;
padding: 0;
border: 0;
border-radius: 16px;
background: #000;
color: #fff;
overflow: hidden;
box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55); opacity: 0;
transition: opacity 0.2s ease, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
}
dialog.g55-video-dialog[open] { opacity: 1; }
@starting-style {
dialog.g55-video-dialog[open] { opacity: 0; }
}
dialog.g55-video-dialog::backdrop {
background: rgba(0, 0, 0, 0);
transition: background 0.2s ease, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
}
dialog.g55-video-dialog[open]::backdrop { background: rgba(0, 0, 0, 0.7); }
@starting-style {
dialog.g55-video-dialog[open]::backdrop { background: rgba(0, 0, 0, 0); }
}
.g55-video-dialog-frame {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
background: #000;
}
.g55-video-dialog-frame iframe {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
border: 0;
display: block;
} .g55-video-dialog-close {
position: absolute;
top: 12px;
right: 12px;
z-index: 2;
width: 38px;
height: 38px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.55);
border: 0;
border-radius: 50%;
font-size: 24px;
line-height: 1;
color: #ffffff;
cursor: pointer;
-webkit-backdrop-filter: blur(6px);
backdrop-filter: blur(6px);
transition: background 0.15s ease, transform 0.15s ease;
}
.g55-video-dialog-close:hover,
.g55-video-dialog-close:focus-visible {
background: rgba(0, 0, 0, 0.8);
transform: scale(1.05);
outline: none;
}