.elementor-kit-40{--e-global-color-primary:#33AB9E;--e-global-color-secondary:#2A8C81;--e-global-color-text:#2D2D2A;--e-global-color-accent:#F5F2ED;--e-global-color-c-teal:#33AB9E;--e-global-color-c-teal-dark:#2A8C81;--e-global-color-c-teal-light:#E6F5F3;--e-global-color-c-warm-white:#FDFCFB;--e-global-color-c-cream:#F5F2ED;--e-global-color-c-sand:#EAE5DC;--e-global-color-c-stone:#DDD8CF;--e-global-color-c-grey-light:#C8C4BE;--e-global-color-c-grey-mid:#8A8680;--e-global-color-c-charcoal:#2D2D2A;--e-global-color-c-body:#4A4743;--e-global-color-c-muted:#7A7570;--e-global-color-c-border:#E0DDD7;--e-global-color-c-dark-bg:#232D28;--e-global-typography-primary-font-family:"Cormorant Garamond";--e-global-typography-primary-font-weight:600;--e-global-typography-primary-text-transform:none;--e-global-typography-primary-line-height:1.2em;--e-global-typography-primary-letter-spacing:-0.3px;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-weight:600;--e-global-typography-secondary-text-transform:none;--e-global-typography-secondary-line-height:1.35em;--e-global-typography-secondary-letter-spacing:-0.1px;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.8em;--e-global-typography-text-letter-spacing:0px;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-size:12px;--e-global-typography-accent-font-weight:600;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.5em;--e-global-typography-accent-letter-spacing:2px;--e-global-typography-ct-intro-font-family:"Inter";--e-global-typography-ct-intro-font-size:19px;--e-global-typography-ct-intro-font-weight:300;--e-global-typography-ct-intro-line-height:1.85em;--e-global-typography-ct-intro-letter-spacing:-0.1px;--e-global-typography-ct-nav-font-family:"Inter";--e-global-typography-ct-nav-font-size:14px;--e-global-typography-ct-nav-font-weight:500;--e-global-typography-ct-nav-line-height:1.4em;--e-global-typography-ct-nav-letter-spacing:0.1px;--e-global-typography-ct-btn-font-family:"Inter";--e-global-typography-ct-btn-font-size:14px;--e-global-typography-ct-btn-font-weight:600;--e-global-typography-ct-btn-text-transform:none;--e-global-typography-ct-btn-line-height:1.4em;--e-global-typography-ct-btn-letter-spacing:0.2px;--e-global-typography-ct-small-font-family:"Inter";--e-global-typography-ct-small-font-size:13px;--e-global-typography-ct-small-font-weight:400;--e-global-typography-ct-small-line-height:1.7em;--e-global-typography-ct-small-letter-spacing:0px;background-color:#FDFCFB;color:#4A4743;font-family:"Inter", sans-serif;font-size:16px;font-weight:400;line-height:1.8em;letter-spacing:0px;}.elementor-kit-40 button,.elementor-kit-40 input[type="button"],.elementor-kit-40 input[type="submit"],.elementor-kit-40 .elementor-button{background-color:#33AB9E;font-family:"Inter", sans-serif;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0.2px;color:#FFFFFF;border-radius:5px 5px 5px 5px;padding:13px 28px 13px 28px;}.elementor-kit-40 button:hover,.elementor-kit-40 button:focus,.elementor-kit-40 input[type="button"]:hover,.elementor-kit-40 input[type="button"]:focus,.elementor-kit-40 input[type="submit"]:hover,.elementor-kit-40 input[type="submit"]:focus,.elementor-kit-40 .elementor-button:hover,.elementor-kit-40 .elementor-button:focus{background-color:#2A8C81;color:#FFFFFF;}.elementor-kit-40 e-page-transition{background-color:#FFBC7D;}.elementor-kit-40 a{color:#33AB9E;}.elementor-kit-40 a:hover{color:#2A8C81;}.elementor-kit-40 h1{color:#2D2D2A;font-family:"Cormorant Garamond", sans-serif;font-size:56px;font-weight:600;text-transform:none;line-height:1.12em;letter-spacing:-0.3px;}.elementor-kit-40 h2{color:#2D2D2A;font-family:"Cormorant Garamond", sans-serif;font-size:40px;font-weight:600;text-transform:none;line-height:1.18em;letter-spacing:-0.2px;}.elementor-kit-40 h3{color:#2D2D2A;font-family:"Inter", sans-serif;font-size:22px;font-weight:600;text-transform:none;line-height:1.35em;letter-spacing:-0.1px;}.elementor-kit-40 h4{color:#2D2D2A;font-family:"Inter", sans-serif;font-size:18px;font-weight:600;text-transform:none;line-height:1.4em;letter-spacing:0px;}.elementor-kit-40 h5{color:#4A4743;font-family:"Inter", sans-serif;font-size:15px;font-weight:500;line-height:1.5em;letter-spacing:0px;}.elementor-kit-40 h6{color:#33AB9E;font-family:"Inter", sans-serif;font-size:12px;font-weight:600;text-transform:uppercase;line-height:1.5em;letter-spacing:2px;}.elementor-kit-40 img{border-radius:5px 5px 5px 5px;}.elementor-kit-40 label{color:#4A4743;}.elementor-kit-40 input:not([type="button"]):not([type="submit"]),.elementor-kit-40 textarea,.elementor-kit-40 .elementor-field-textual{background-color:#FFFFFF;border-style:solid;border-color:#DDD8CF;border-radius:4px 4px 4px 4px;}.elementor-kit-40 input:focus:not([type="button"]):not([type="submit"]),.elementor-kit-40 textarea:focus,.elementor-kit-40 .elementor-field-textual:focus{border-style:solid;border-color:#33AB9E;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:24px;--container-default-padding-bottom:0px;--container-default-padding-left:24px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-kit-40 h1{font-size:42px;}.elementor-kit-40 h2{font-size:32px;}.elementor-kit-40 h3{font-size:20px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-40{font-size:15px;}.elementor-kit-40 h1{font-size:32px;}.elementor-kit-40 h2{font-size:26px;}.elementor-kit-40 h3{font-size:18px;}.elementor-kit-40 h4{font-size:16px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ── Portimmo Projects – Global Utility CSS ─────────────────────────────── */

/* Typography scale responsive helpers */
:root {
    --pp-teal:        #33AB9E;
    --pp-teal-dark:   #2A8C81;
    --pp-teal-light:  #E6F5F3;
    --pp-warm-white:  #FDFCFB;
    --pp-cream:       #F5F2ED;
    --pp-sand:        #EAE5DC;
    --pp-stone:       #DDD8CF;
    --pp-border:      #E0DDD7;
    --pp-charcoal:    #2D2D2A;
    --pp-body:        #4A4743;
    --pp-muted:       #7A7570;
    --pp-radius-sm:   4px;
    --pp-radius-md:   6px;
    --pp-radius-lg:   10px;
    --pp-shadow-sm:   0 1px 4px rgba(0,0,0,0.06);
    --pp-shadow-md:   0 4px 16px rgba(0,0,0,0.08);
    --pp-transition:  0.2s ease;
    --pp-section-pad: 88px 24px;
    --pp-section-pad-mobile: 56px 20px;
}

/* ── Section rhythm ────────────────────────────────────────────────────── */
.pp-section {
    padding: var(--pp-section-pad);
}
@media (max-width: 767px) {
    .pp-section { padding: var(--pp-section-pad-mobile); }
}

/* ── Card style ─────────────────────────────────────────────────────────── */
.pp-card {
    background: var(--pp-cream);
    border-radius: var(--pp-radius-md);
    padding: 36px 32px;
    border: 1px solid var(--pp-border);
    box-shadow: var(--pp-shadow-sm);
    transition: box-shadow var(--pp-transition);
}
.pp-card:hover {
    box-shadow: var(--pp-shadow-md);
}

/* ── Eyebrow / label ─────────────────────────────────────────────────────── */
.pp-eyebrow {
    font-family: Inter, sans-serif;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: var(--pp-teal);
    display: block;
    margin-bottom: 12px;
}

/* ── Focus states — accessibility ───────────────────────────────────────── */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
    outline: 2px solid var(--pp-teal);
    outline-offset: 3px;
    border-radius: var(--pp-radius-sm);
}

/* ── Links ───────────────────────────────────────────────────────────────── */
a { color: var(--pp-teal); transition: color var(--pp-transition); }
a:hover { color: var(--pp-teal-dark); }

/* ── Primary button ─────────────────────────────────────────────────────── */
.elementor-button.pp-btn-primary,
.elementor-button.elementor-button-info {
    background: var(--pp-teal);
    color: #fff;
    border: none;
    border-radius: var(--pp-radius-sm);
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.2px;
    padding: 13px 28px;
    transition: background var(--pp-transition), transform var(--pp-transition);
}
.elementor-button.pp-btn-primary:hover,
.elementor-button.elementor-button-info:hover {
    background: var(--pp-teal-dark);
    transform: translateY(-1px);
}

/* ── Secondary button ───────────────────────────────────────────────────── */
.elementor-button.pp-btn-secondary {
    background: transparent;
    color: var(--pp-teal);
    border: 1.5px solid var(--pp-teal);
    border-radius: var(--pp-radius-sm);
    font-family: Inter, sans-serif;
    font-size: 14px;
    font-weight: 600;
    padding: 12px 28px;
    transition: background var(--pp-transition), color var(--pp-transition);
}
.elementor-button.pp-btn-secondary:hover {
    background: var(--pp-teal-light);
    color: var(--pp-teal-dark);
}

/* ── Form inputs ─────────────────────────────────────────────────────────── */
.elementor-form input[type="text"],
.elementor-form input[type="email"],
.elementor-form input[type="tel"],
.elementor-form textarea,
.elementor-form select {
    border: 1px solid var(--pp-border);
    border-radius: var(--pp-radius-sm);
    padding: 12px 14px;
    font-family: Inter, sans-serif;
    font-size: 15px;
    background: #fff;
    color: var(--pp-body);
    transition: border-color var(--pp-transition), box-shadow var(--pp-transition);
}
.elementor-form input:focus,
.elementor-form textarea:focus,
.elementor-form select:focus {
    border-color: var(--pp-teal);
    box-shadow: 0 0 0 3px rgba(51,171,158,0.12);
    outline: none;
}

/* ── Subtle fade-in animation ─────────────────────────────────────────── */
@keyframes pp-fadein {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
.pp-animate {
    animation: pp-fadein 0.5s ease both;
}

/* ── Horizontal rule / divider ──────────────────────────────────────────── */
.pp-divider {
    border: none;
    border-top: 1px solid var(--pp-border);
    margin: 0;
}

/* ── Teal accent bar (top border on cards) ─────────────────────────────── */
.pp-card-accented {
    border-top: 3px solid var(--pp-teal);
}

/* ── Image ratios ───────────────────────────────────────────────────────── */
.pp-ratio-landscape { aspect-ratio: 16/9; object-fit: cover; }
.pp-ratio-portrait  { aspect-ratio: 3/4;  object-fit: cover; }
.pp-ratio-square    { aspect-ratio: 1/1;  object-fit: cover; }

/* ── Body mobile size ───────────────────────────────────────────────────── */
@media (max-width: 767px) {
    body { font-size: 15px; }
}/* End custom CSS */