/*
Theme Name: Almatea Studio
Theme URI: https://almateastudio.com
Author: Almatea Studio
Description: Lightweight foundation theme for Almatea Studio. Global design tokens and small motion utilities only; every page, the header and the footer are built with native Elementor containers and XPRO Theme Builder.
Version: 2.0.0
Requires at least: 6.4
Requires PHP: 8.0
Text Domain: almatea-studio
*/
:root{
  --as-ivory:#FAFAF8; --as-cream:#FFFFFF; --as-sand:#EAE7E3; --as-line:#D6D1CC;
  --as-ink:#2F3433; --as-text:#2F3433; --as-stone-dark:#2F3433;
  --as-gold:#C9A96E; --as-gold-text:#8A6B33; --as-gold-soft:#E4CFA0;
  --as-sage:#B7C0B6; --as-slate:#6B7E8A; --as-peach:#F4D7C8; --as-mist:#D9E1E6;
  --as-font-display:'Cormorant Garamond', Georgia, serif;
  --as-font-body:'EB Garamond', Georgia, serif;
  --as-font-script:'Caveat', cursive;
  --as-ease:cubic-bezier(.22,.68,.24,1);
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html, body{ overflow-x:hidden; max-width:100%; }
body{ margin:0; background:var(--as-ivory); color:var(--as-text); font-family:var(--as-font-body); -webkit-font-smoothing:antialiased; }
img{ max-width:100%; height:auto; }
a{ color:inherit; }
::selection{ background:var(--as-gold-soft); color:var(--as-ink); }
:focus-visible{ outline:2px solid var(--as-gold); outline-offset:3px; }
.as-skip-link{ position:absolute; left:-9999px; top:0; z-index:99999; background:var(--as-ink); color:var(--as-ivory); padding:14px 22px; }
.as-skip-link:focus{ left:12px; top:12px; }

/* type accents */
.as-em{ font-style:italic; color:var(--as-gold-text); font-weight:500; }
.as-em-soft{ font-style:italic; color:var(--as-gold-soft); font-weight:500; }
.as-num{ display:inline-block; min-width:56px; font-family:var(--as-font-display); font-style:italic; font-size:28px; color:var(--as-gold-text); }
.as-list p{ margin:0 0 14px; }
.as-badge{ display:inline-block; padding:4px 12px; border:1px solid var(--as-gold); border-radius:999px; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--as-gold-text); background:rgba(252,250,246,.9); }

/* ===== Buttons: gentle lift, animated underline, colour change ===== */
.elementor-widget-button .elementor-button,
.wpforms-container .wpforms-submit{ transition:transform .35s var(--as-ease), background-color .35s, color .35s, border-color .35s; }
.elementor-widget-button .elementor-button:hover,
.wpforms-container .wpforms-submit:hover{ transform:translateY(-3px); }
.elementor-widget-button .elementor-button:active{ transform:translateY(0); }
.elementor-widget-button .elementor-button-text{ background:linear-gradient(currentColor,currentColor) 0 100% / 0 1px no-repeat; padding-bottom:3px; transition:background-size .4s var(--as-ease); }
.elementor-widget-button .elementor-button:hover .elementor-button-text{ background-size:100% 1px; }
.elementor-widget-button .elementor-button-icon{ transition:transform .35s var(--as-ease); }
.elementor-widget-button .elementor-button:hover .elementor-button-icon{ transform:translateX(6px); }
.wpforms-container .wpforms-submit:hover{ background:var(--as-gold-text) !important; border-color:var(--as-gold-text) !important; color:#fff !important; }

/* round icon buttons + links */
.elementor-widget-icon .elementor-icon{ transition:transform .4s var(--as-ease), background-color .3s, color .3s, border-color .3s; }
.elementor-widget-icon .elementor-icon:hover{ transform:translateY(-3px); background-color:var(--as-gold); color:var(--as-ink); border-color:var(--as-gold); }
.xpro-elementor-nav-link{ transition:color .3s; }

/* cards: lift + border colour, no shadows */
.as-lift{ transition:transform .55s var(--as-ease), border-color .4s; }
.as-lift:hover{ transform:translateY(-8px); border-color:var(--as-gold) !important; }

/* header sits on top of the hero; single-line menu */
.xpro-theme-builder-header{ position:absolute; top:0; left:0; right:0; z-index:60; background:transparent; }
.xpro-theme-builder-header .xpro-elementor-horizontal-navbar-nav{ flex-wrap:nowrap !important; white-space:nowrap; }
.xpro-theme-builder-header .xpro-elementor-nav-link{ white-space:nowrap; }
.as-header-light .xpro-theme-builder-header .xpro-elementor-nav-link{ color:#fff !important; }
.as-header-light .xpro-theme-builder-header .xpro-elementor-nav-link:hover,
.as-header-light .xpro-theme-builder-header .current-menu-item .xpro-elementor-nav-link{ color:var(--as-gold-soft) !important; }
.as-header-light .xpro-theme-builder-header .elementor-widget-heading:nth-child(2) .elementor-heading-title{ color:var(--as-gold-soft) !important; }
.as-header-light .xpro-theme-builder-header .elementor-button{ color:var(--as-gold-soft) !important; border-color:var(--as-gold-soft) !important; }
.as-header-light .xpro-theme-builder-header .elementor-button:hover{ color:var(--as-ink) !important; background:var(--as-gold-soft) !important; }

/* ===== Motion (CSS only, no JavaScript) ===== */
@keyframes as-rise{ from{ opacity:0; transform:translateY(34px); } to{ opacity:1; transform:none; } }
@keyframes as-drift{ 0%,100%{ background-position:0% 50%; } 50%{ background-position:100% 50%; } }
@keyframes as-floaty{ 0%,100%{ transform:translateY(0) rotate(-3deg); } 50%{ transform:translateY(-12px) rotate(-3deg); } }
@keyframes as-textglow{ 0%,100%{ text-shadow:0 0 0 rgba(228,207,160,0); } 50%{ text-shadow:0 0 20px rgba(228,207,160,.7); } }

/* scroll reveal where supported; elsewhere content is simply visible */
@supports (animation-timeline: view()){
  main .elementor-widget{ animation:as-rise linear both; animation-timeline:view(); animation-range:entry 4% entry 42%; }
}
/* hero / page-top: staged entrance on load */
main .as-hero .elementor-widget{ animation:as-rise 1s var(--as-ease) both; animation-timeline:auto; animation-range:normal; }
main .as-hero .e-con .e-con .elementor-widget:nth-child(1){ animation-delay:.05s; }
main .as-hero .e-con .e-con .elementor-widget:nth-child(2){ animation-delay:.2s; }
main .as-hero .e-con .e-con .elementor-widget:nth-child(3){ animation-delay:.35s; }
main .as-hero .e-con .e-con .elementor-widget:nth-child(4){ animation-delay:.5s; }

.as-drift{ background-size:220% 220% !important; animation:as-drift 24s ease-in-out infinite; }
.as-script-float .elementor-heading-title{ display:inline-block; animation:as-floaty 8s ease-in-out infinite; }

/* forms (WPForms) */
.wpforms-container .wpforms-field-label{ font-family:var(--as-font-body); color:var(--as-ink); font-size:15px; }
.wpforms-container input[type=text],.wpforms-container input[type=email],.wpforms-container textarea,.wpforms-container select{
  background:var(--as-cream); border:1px solid var(--as-line); border-radius:4px; font-family:var(--as-font-body); font-size:16px; padding:12px 14px; transition:border-color .3s, box-shadow .3s;
}
.wpforms-container input:focus,.wpforms-container textarea:focus,.wpforms-container select:focus{ border-color:var(--as-gold); box-shadow:0 0 0 3px rgba(201,169,110,.25); outline:none; }
.wpforms-container .wpforms-submit{ background:var(--as-gold) !important; color:var(--as-ink) !important; border:1px solid var(--as-gold) !important; border-radius:4px !important; font-family:var(--as-font-body); letter-spacing:2px; text-transform:uppercase; font-size:13px; padding:15px 28px; width:100%; }

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition-duration:.001ms !important; }
}
.xpro-theme-builder-header .elementor-heading-title{ white-space:nowrap; }

.as-kick{ display:block; font-size:13px; letter-spacing:2.5px; text-transform:uppercase; font-weight:500; margin-bottom:12px; }

/* ===== Carousel (featured projects) ===== */
.as-slide{ cursor:default; }
.as-slide .as-title .elementor-heading-title{ transition:font-size .5s var(--as-ease); }
@media (min-width:1025px){
  .as-cards > .e-con-inner{ flex-wrap:nowrap; }
  .as-cards > .e-con-inner > .as-slide{ flex:1 1 0 !important; width:auto !important; max-width:none !important; min-width:0; cursor:pointer; transition:flex-grow .75s var(--as-ease), border-color .4s; }
  .as-cards > .e-con-inner > .as-slide.is-active{ flex-grow:3.6 !important; cursor:default; }
  .as-slide:not(.is-active) .as-detail{ display:none; }
  .as-slide.is-active .as-title .elementor-heading-title{ font-size:46px; }
  .as-slide:hover{ border-color:var(--as-gold) !important; }
}
@media (max-width:1024px){ .as-carousel .as-controls{ display:none !important; } }
.as-count .elementor-heading-title{ white-space:nowrap; }

/* ===== Header / footer single-line fixes ===== */
.xpro-theme-builder-header .elementor-heading-title,
.xpro-theme-builder-header .elementor-button-text,
#xpro-theme-builder-footer .elementor-heading-title{ white-space:nowrap; }
#xpro-theme-builder-footer .xpro-elementor-horizontal-navbar-nav{ flex-wrap:nowrap !important; white-space:nowrap; }
#xpro-theme-builder-footer .xpro-elementor-nav-link{ white-space:nowrap; padding-left:11px !important; padding-right:11px !important; }
#xpro-theme-builder-footer .elementor-icon:hover{ background-color:var(--as-gold); color:var(--as-ink); }
/* ===== Index + newsletter ===== */
.as-idx{ transition:opacity .3s; opacity:.6; }
.as-idx.is-active, .as-idx:hover{ opacity:1; }
.as-idx.is-active .elementor-heading-title{ color:var(--as-gold-text); }
#newsletter .wpforms-form{ display:grid; grid-template-columns:1fr auto; gap:12px; align-items:end; }
#newsletter .wpforms-field-container{ display:contents; }
#newsletter .wpforms-field-email{ grid-area:1 / 1; padding:0; }
#newsletter .wpforms-field-checkbox{ grid-area:2 / 1 / 3 / 3; padding:0; }
#newsletter .wpforms-submit-container{ grid-area:1 / 2; padding:0; }
#newsletter .wpforms-field-email .wpforms-field-label{ display:none; }
#newsletter .wpforms-field-email input{ border-radius:999px; padding:14px 22px; }
#newsletter .wpforms-submit{ border-radius:999px !important; width:auto; padding:15px 32px; }
/* Photo boxes */
.as-imgbox{position:relative;overflow:hidden}
.as-imgbox>.elementor-widget-image{position:absolute;inset:0;width:100%;height:100%;margin:0}
.as-imgbox .elementor-widget-container{height:100%}
.as-imgbox img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.as-imgbox:hover img{transform:scale(1.05)}

/* Legal pages */
.as-legal{max-width:820px;margin:0 auto;padding:190px 24px 96px}
.as-legal h1{font-family:'Cormorant Garamond',serif;font-size:clamp(38px,5vw,56px);font-weight:500;margin:.2em 0 .1em;color:#2F3433}
.as-legal h2{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:500;margin:1.6em 0 .4em;color:#2F3433}
.as-legal p,.as-legal li{font-size:17px;line-height:1.75;color:#2F3433}
.as-legal a{color:#8A6B33;text-decoration:underline;text-underline-offset:3px}
.as-legal-date{font-style:italic;color:#8A6B33!important}

/* Header legibility over photos */
.as-header-light .xpro-theme-builder-header{background:linear-gradient(180deg,rgba(47,52,51,.62) 0%,rgba(47,52,51,.3) 60%,rgba(47,52,51,0) 100%)}

/* Responsive header + heroes */
@media(max-width:1024px){
.xpro-theme-builder-header .elementor-element-b2f0456>.e-con-inner{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding-top:6px}
.xpro-theme-builder-header .elementor-element-368d553{width:auto!important;flex:1 1 auto!important;min-width:0}
.xpro-theme-builder-header .elementor-element-d17879f{width:auto!important;flex:0 0 auto!important}
.xpro-theme-builder-header .elementor-element-a43ae3f{display:none!important}
.as-header-light .xpro-elementor-horizontal-menu-toggler,.as-header-light .xpro-elementor-horizontal-menu-toggler i,.as-header-light .xpro-elementor-horizontal-menu-toggler svg{color:#fff!important;fill:#fff!important}
.as-hero .as-script-float{animation:none!important}
}
@media(max-width:767px){
.xpro-theme-builder-header .elementor-element-4007f3a .elementor-heading-title{font-size:22px!important}
.xpro-theme-builder-header .elementor-element-0815542{display:none}
.as-hero>.e-con-inner>.e-con-boxed>.e-con-inner,.as-hero .e-con-inner{gap:22px}
}
@media(max-width:767px){.as-hero .elementor-element-1afbba7{display:none!important}.as-hero .elementor-element-5494654{width:100%!important}.as-hero .elementor-element-5494654 .elementor-heading-title{text-align:left!important}.as-hero .elementor-element-e3d00d9{padding-top:0!important;width:100%!important}}

/* Contrast on coloured bands */
.as-on-sage .as-em,.as-on-sage .as-em-soft,.as-on-sage .as-num,.as-on-sage .as-kick{color:#2F3433!important}
.as-on-sage .as-num{color:#5C4826!important}
.as-on-blue .as-em,.as-on-blue .as-em-soft,.as-on-blue .as-num,.as-on-blue .as-kick{color:#FFFFFF!important}

.as-on-band .as-em,.as-on-band .as-em-soft,.as-on-band .as-num,.as-on-band .as-kick{color:#6F5424!important}

/* Section dividers */
.elementor>.e-con.e-parent+.e-con.e-parent{position:relative}
.elementor>.e-con.e-parent+.e-con.e-parent::after{content:'';position:absolute;top:0;left:50%;width:min(360px,70vw);height:14px;transform:translate(-50%,-50%);background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27360%27%20height%3D%2714%27%20viewBox%3D%270%200%20360%2014%27%3E%3Cdefs%3E%3ClinearGradient%20id%3D%27g%27%20x1%3D%270%27%20x2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23C9A96E%27%20stop-opacity%3D%270%27%2F%3E%3Cstop%20offset%3D%27.3%27%20stop-color%3D%27%23C9A96E%27%2F%3E%3Cstop%20offset%3D%27.7%27%20stop-color%3D%27%23C9A96E%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23C9A96E%27%20stop-opacity%3D%270%27%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20x%3D%270%27%20y%3D%276.5%27%20width%3D%27360%27%20height%3D%271%27%20fill%3D%27url%28%23g%29%27%2F%3E%3Cpath%20d%3D%27M180%201%20L187%207%20L180%2013%20L173%207%20Z%27%20fill%3D%27%23FAFAF8%27%20stroke%3D%27%23C9A96E%27%2F%3E%3C%2Fsvg%3E") center/100% 100% no-repeat;z-index:6;pointer-events:none}
@supports(animation-timeline:view()){.elementor>.e-con.e-parent+.e-con.e-parent::after{animation:as-gem linear both;animation-timeline:view();animation-range:entry 0% entry 60%}}
@keyframes as-gem{from{opacity:0;transform:translate(-50%,-50%) scaleX(.2)}to{opacity:1;transform:translate(-50%,-50%) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.elementor>.e-con.e-parent+.e-con.e-parent::after{animation:none!important}}

/* Fixed header that turns solid on scroll */
.xpro-theme-builder-header{position:fixed!important;top:0;left:0;right:0;width:100%;z-index:999;transition:background .35s,padding .35s,box-shadow .35s}
body.as-scrolled .xpro-theme-builder-header{background:rgba(47,52,51,.94)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
