.savio-page-builder { --savio-primary: var(--global-palette1, #2b6f54); --savio-primary-alt: var(--global-palette2, #245d47); --savio-light: var(--global-palette8, #f3f6f4); }
.savio-page-has-banner .entry-hero.page-hero-section { display: none; }
.savio-page-banner { position: relative; display: grid; min-height: clamp(225px, 25vw, 330px); overflow: hidden; isolation: isolate; background-image: var(--savio-page-banner-image); background-position: center 48%; background-size: cover; }
.savio-page-banner__overlay { position: absolute; inset: 0; z-index: -1; background: rgba(25, 31, 36, .42); }
.savio-page-banner__inner { display: grid; place-items: center; width: min(1120px, calc(100% - 2rem)); margin-inline: auto; padding: 55px 0; text-align: center; }
.savio-page-banner h1 { margin: 0; color: #fff; font-size: clamp(2.5rem, 5vw, 4.25rem); line-height: 1.05; text-shadow: 0 2px 12px rgba(0, 0, 0, .28); }
.savio-block { margin: 0 0 clamp(1.5rem, 4vw, 3.5rem); border-radius: 8px; }
.savio-block__inner { width: min(100% - 2rem, 1120px); margin-inline: auto; padding: clamp(1.5rem, 4vw, 3.5rem); }
.savio-block--normal .savio-block__inner { max-width: 900px; }
.savio-block--bg-white .savio-block__inner { padding-top: 0; padding-bottom: 0; }
.savio-block--bg-light { background: var(--savio-light); }
.savio-block--bg-primary { color: #fff; background: var(--savio-primary); }
.savio-block--bg-primary :is(h2,h3,h4,a) { color: inherit; }
.savio-block__title { margin: 0 0 1.25rem; }
.savio-richtext > :first-child { margin-top: 0; }
.savio-richtext > :last-child { margin-bottom: 0; }

/* Responsive trusted video embeds (YouTube / YouTube Privacy Enhanced Mode). */
.savio-richtext iframe[src*="youtube.com/embed/"],
.savio-richtext iframe[src*="youtube-nocookie.com/embed/"] {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	border: 0;
}
.savio-media-text { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: clamp(1.5rem, 5vw, 4rem); }
.savio-media-text__image { margin: 0; }
.savio-media-text__image img { display: block; width: 100%; height: auto; border-radius: 8px; }
.savio-block--image-right .savio-media-text__image { order: 2; }
.savio-columns { display: grid; gap: clamp(1.25rem, 3vw, 2.5rem); }
.savio-columns--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.savio-columns--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.savio-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(.6rem, 2vw, 1.25rem); }
.savio-gallery figure { margin: 0; overflow: hidden; border-radius: 8px; aspect-ratio: 4 / 3; }
.savio-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.savio-gallery img:hover { transform: scale(1.025); }
.savio-block--highlight { border-left: 5px solid var(--savio-primary); background: var(--savio-light); }
.savio-cta { margin: 0; text-align: center; }
.savio-button { display: inline-block; padding: .8em 1.45em; border: 2px solid var(--savio-primary); border-radius: 4px; font-weight: 700; text-decoration: none; transition: .2s ease; }
.savio-button--primary { color: #fff; background: var(--savio-primary); }
.savio-button--outline { color: var(--savio-primary); background: transparent; }
.savio-button:hover { color: #fff; border-color: var(--savio-primary-alt); background: var(--savio-primary-alt); }
@media (max-width: 767px) {
	.savio-block__inner { width: min(100% - 1rem, 1120px); }
	.savio-media-text, .savio-columns--2, .savio-columns--3 { grid-template-columns: 1fr; }
	.savio-block--image-right .savio-media-text__image { order: 0; }
	.savio-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) { .savio-gallery { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .savio-gallery img, .savio-button { transition: none; } }

/* Fixed homepage: its structure is intentionally controlled by the plugin. */
.savio-home { --savio-orange:#e69016; --savio-coral:#df5640; --savio-pink:#eea397; --savio-ink:var(--global-palette4,#253745); --savio-cream:var(--global-palette8,#fff8ee); margin-top:0; overflow:hidden; }
.savio-home-container { width:min(1120px,calc(100% - 2rem)); margin-inline:auto; }
.savio-home h1,.savio-home h2,.savio-home h3 { color:var(--savio-ink); }
.savio-home-hero { position:relative; color:#fff; background:linear-gradient(135deg,#f2bb6b 0%,var(--savio-orange) 68%); }
.savio-home-hero::after { content:""; position:absolute; right:-5%; bottom:-2px; left:-5%; height:55px; background:var(--savio-cream); clip-path:polygon(0 65%,12% 35%,25% 70%,39% 30%,53% 68%,67% 25%,82% 62%,100% 25%,100% 100%,0 100%); }
.savio-home-hero__inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(320px,1.15fr); align-items:center; width:min(1120px,calc(100% - 2rem)); min-height:610px; margin-inline:auto; padding:70px 0 105px; }
.savio-home-hero__content { position:relative; z-index:2; }
.savio-home-hero h1 { margin:0 0 22px; color:#fff; font-size:clamp(2.5rem,5.2vw,4.7rem); line-height:.98; }
.savio-home-hero p { max-width:580px; margin:0 0 30px; font-size:clamp(1rem,1.5vw,1.2rem); }
.savio-home-hero__image { align-self:end; margin:0 -7% -40px 0; }
.savio-home-hero__image img { display:block; width:100%; max-height:560px; object-fit:contain; object-position:center bottom; }
.savio-home-button { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:.75rem 1.6rem; border-radius:999px; color:#fff!important; background:var(--savio-coral); font-weight:700; text-decoration:none; box-shadow:0 8px 20px rgba(54,36,20,.15); transition:transform .2s ease,background .2s ease; }
.savio-home-button:hover { color:#fff; background:var(--savio-ink); transform:translateY(-2px); }
.savio-home-intro { padding:80px 0 30px; background:var(--savio-cream); }
.savio-home-centered { max-width:760px; text-align:center; }
.savio-home-centered h2 { margin:0 0 12px; font-size:clamp(2rem,4vw,3.25rem); }
.savio-home-centered p { margin:0; font-size:1.15rem; }
.savio-home-shortcuts { padding:35px 0 100px; background:var(--savio-cream); }
.savio-home-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.savio-home-card { position:relative; min-height:275px; padding:36px 30px; overflow:hidden; border-radius:28px; color:#fff; box-shadow:0 15px 35px rgba(56,39,25,.1); }
.savio-home-card--1 { background:var(--savio-coral); }.savio-home-card--2 { background:var(--savio-orange); }.savio-home-card--3 { background:#658f79; }
.savio-home-card h2,.savio-home-card a { color:#fff; }.savio-home-card h2 { position:relative; margin:20px 0 10px; font-size:1.8rem; }.savio-home-card p { position:relative; min-height:54px; }.savio-home-card a { position:relative; font-weight:700; text-decoration:none; }
.savio-home-card__number { position:absolute; top:4px; right:15px; color:rgba(255,255,255,.14); font-size:6.5rem; font-weight:900; line-height:1; }
.savio-home-about { padding:100px 0; }
.savio-home-about__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); align-items:center; gap:clamp(2rem,7vw,6rem); }
.savio-home-about figure { position:relative; margin:0; }.savio-home-about figure::before { content:""; position:absolute; inset:-18px 25px 25px -18px; z-index:-1; border-radius:42% 58% 48% 52%; background:#f5cac3; transform:rotate(-3deg); }.savio-home-about img { display:block; width:100%; border-radius:30px; }
.savio-home-eyebrow { display:block; margin-bottom:9px; color:var(--savio-coral); font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.savio-home-about h2,.savio-home-section-heading h2,.savio-home-gallery h2 { margin:0 0 20px; font-size:clamp(2rem,4vw,3rem); }
.savio-home-news { padding:95px 0; background:#f8e9e6; }
.savio-home-section-heading { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:2rem; margin-bottom:38px; }.savio-home-section-heading p { margin:0 0 20px; }
.savio-home-posts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.savio-home-post { overflow:hidden; border-radius:22px; background:#fff; box-shadow:0 12px 30px rgba(50,40,35,.08); }.savio-home-post__image { display:block; aspect-ratio:16/10; overflow:hidden; }.savio-home-post__image img { width:100%; height:100%; object-fit:cover; }.savio-home-post > div { padding:24px; }.savio-home-post time { color:var(--savio-coral); font-size:.85rem; font-weight:700; }.savio-home-post h3 { margin:7px 0 10px; font-size:1.35rem; }.savio-home-post h3 a { color:inherit; text-decoration:none; }.savio-home-post p { margin:0; }
.savio-home-gallery { padding:95px 0; }.savio-home-gallery h2 { text-align:center; }.savio-home-gallery__grid { display:grid; grid-template-columns:repeat(12,1fr); gap:14px; }.savio-home-gallery figure { grid-column:span 4; margin:0; overflow:hidden; border-radius:20px; aspect-ratio:4/3; }.savio-home-gallery figure:nth-child(5n+1),.savio-home-gallery figure:nth-child(5n+5) { grid-column:span 6; }.savio-home-gallery img { width:100%; height:100%; object-fit:cover; }
.savio-home-contact { padding:45px 0; color:#fff; background:var(--savio-coral); }.savio-home-contact__inner { display:flex; align-items:center; justify-content:space-between; gap:2rem; }.savio-home-contact h2 { margin:0 0 8px; color:#fff; }.savio-home-contact p { margin:0; }.savio-home-button--light { flex:0 0 auto; color:var(--savio-coral)!important; background:#fff; }
@media (max-width:800px) {
	.savio-home-hero__inner { grid-template-columns:1fr; padding-top:60px; text-align:center; }.savio-home-hero__content { max-width:650px; margin-inline:auto; }.savio-home-hero__image { max-width:570px; margin:20px auto -50px; }.savio-home-card-grid,.savio-home-posts { grid-template-columns:1fr; }.savio-home-card { min-height:220px; }.savio-home-about__grid,.savio-home-section-heading { grid-template-columns:1fr; }.savio-home-about { padding:75px 0; }.savio-home-gallery__grid { grid-template-columns:repeat(2,1fr); }.savio-home-gallery figure,.savio-home-gallery figure:nth-child(5n+1),.savio-home-gallery figure:nth-child(5n+5) { grid-column:span 1; }.savio-home-contact__inner { flex-direction:column; align-items:flex-start; }
}
@media (max-width:480px) { .savio-home-hero__inner { min-height:auto; }.savio-home-gallery__grid { grid-template-columns:1fr; } }
