/* ===== Utilities ===== */
.u-container {
  margin-left: auto;
  margin-right: auto;
  width: calc(var(--general--global-width) - var(--general--global-margin) * 2);
  max-width: var(--general--global-max-width);
}

.u-section {
  padding-block: 5rem;
}

.u-relative {
  position: relative;
}

.u-absolute {
  position: absolute;
}

.u-inset-0 {
  inset: 0;
}

.u-playfair {
  font-family: var(--font-serif) !important;
}

.u-italic {
  font-style: italic;
}

.u-inherit-color {
  color: inherit;
  text-decoration: none;
}

@media (max-width: 991px) {
  .u-break-mobile {
    display: inline-block;
    max-width: 100%;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word !important;
    hyphens: auto;
  }
}

/* =========================
   GRID UTILITIES (Layout)
   ========================= */

/* Base 12-column grid */
.u-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--general--global-gutter);
}
.u-grid-8 {   display: grid;  grid-template-columns: repeat(8, minmax(0, 1fr));  gap: var(--general--global-gutter, 1rem); }
.u-grid-6 {   display: grid;  grid-template-columns: repeat(6, minmax(0, 1fr));  gap: var(--general--global-gutter, 1rem); }
.u-grid-4 {   display: grid;  grid-template-columns: repeat(4, minmax(0, 1fr));  gap: var(--general--global-gutter, 1rem); }

/* Column span utilities */
.u-col-span-1  { grid-column: span 1; }
.u-col-span-2  { grid-column: span 2; }
.u-col-span-3  { grid-column: span 3; }
.u-col-span-4  { grid-column: span 4; }
.u-col-span-5  { grid-column: span 5; }
.u-col-span-6  { grid-column: span 6; }
.u-col-span-7  { grid-column: span 7; }
.u-col-span-8  { grid-column: span 8; }
.u-col-span-9  { grid-column: span 9; }
.u-col-span-10 { grid-column: span 10; }
.u-col-span-11 { grid-column: span 11; }
.u-col-span-12 { grid-column: span 12; }

/* Optional: column start utilities (offsets like Webflow) */
.u-col-start-1  { grid-column-start: 1; }
.u-col-start-2  { grid-column-start: 2; }
.u-col-start-3  { grid-column-start: 3; }
.u-col-start-4  { grid-column-start: 4; }
.u-col-start-5  { grid-column-start: 5; }
.u-col-start-6  { grid-column-start: 6; }
.u-col-start-7  { grid-column-start: 7; }
.u-col-start-8  { grid-column-start: 8; }
.u-col-start-9  { grid-column-start: 9; }
.u-col-start-10 { grid-column-start: 10; }
.u-col-start-11 { grid-column-start: 11; }
.u-col-start-12 { grid-column-start: 12; }

/* Column end utilities */
.u-col-end-1{grid-column-end:1;} .u-col-end-2{grid-column-end:2;} .u-col-end-3{grid-column-end:3;} .u-col-end-4{grid-column-end:4;} .u-col-end-5{grid-column-end:5;} .u-col-end-6{grid-column-end:6;} .u-col-end-7{grid-column-end:7;} .u-col-end-8{grid-column-end:8;} .u-col-end-9{grid-column-end:9;} .u-col-end-10{grid-column-end:10;} .u-col-end-11{grid-column-end:11;} .u-col-end-12{grid-column-end:12;} .u-col-end-13{grid-column-end:13;}

/* Full-width column helper */
.u-col-full{grid-column:1 / -1;}

.u-grid-rows-auto{grid-template-rows:auto;}
.u-grid-rows-fr{grid-template-rows:1fr;}
.u-grid-rows-fr-auto{grid-template-rows:1fr auto;}
.u-grid-rows-auto-fr{grid-template-rows:auto 1fr;}

/* Row start utilities */
.u-row-start-1{grid-row-start:1;} .u-row-start-2{grid-row-start:2;} .u-row-start-3{grid-row-start:3;} .u-row-start-4{grid-row-start:4;} .u-row-start-5{grid-row-start:5;} .u-row-start-6{grid-row-start:6;}

/* Row span utilities */
.u-row-span-1{grid-row:span 1;} .u-row-span-2{grid-row:span 2;} .u-row-span-3{grid-row:span 3;} .u-row-span-4{grid-row:span 4;} .u-row-span-5{grid-row:span 5;} .u-row-span-6{grid-row:span 6;}

/* Row end utilities */
.u-row-end-1{grid-row-end:1;} .u-row-end-2{grid-row-end:2;} .u-row-end-3{grid-row-end:3;} .u-row-end-4{grid-row-end:4;} .u-row-end-5{grid-row-end:5;} .u-row-end-6{grid-row-end:6;} .u-row-end-7{grid-row-end:7;}

/* Container alignment (apply to the grid container) */
.u-place-items-start{place-items:start;} .u-place-items-center{place-items:center;} .u-place-items-end{place-items:end;} .u-place-items-stretch{place-items:stretch;}
.u-justify-items-start{justify-items:start;} .u-justify-items-center{justify-items:center;} .u-justify-items-end{justify-items:end;} .u-justify-items-stretch{justify-items:stretch;}
.u-align-items-start{align-items:start;} .u-align-items-center{align-items:center;} .u-align-items-end{align-items:end;} .u-align-items-stretch{align-items:stretch;}

/* Item alignment (apply to a grid child) */
.u-place-self-start{place-self:start;} .u-place-self-center{place-self:center;} .u-place-self-end{place-self:end;} .u-place-self-stretch{place-self:stretch;}
.u-justify-self-start{justify-self:start;} .u-justify-self-center{justify-self:center;} .u-justify-self-end{justify-self:end;} .u-justify-self-stretch{justify-self:stretch;}
.u-align-self-start{align-self:start;} .u-align-self-center{align-self:center;} .u-align-self-end{align-self:end;} .u-align-self-stretch{align-self:stretch;}

/* =========================
   Responsive behavior
   ========================= */

@media (max-width: 767px) {

  /* common collapse patterns */
  .u-col-span-8,
  .u-col-span-7,
  .u-col-span-6,
  .u-col-span-5,
  .u-col-span-4 {
    grid-column: span 12;
  }
}
/* =========================
   FLEX UTILITIES
   ========================= */
.u-flex{display:flex;} .u-inline-flex{display:inline-flex;}

/* Direction */
.u-flex-row{flex-direction:row;} .u-flex-col{flex-direction:column;}

/* Wrap */
.u-flex-wrap{flex-wrap:wrap;} .u-flex-nowrap{flex-wrap:nowrap;}

/* Align items */
.u-items-start{align-items:flex-start;} .u-items-center{align-items:center;}
.u-items-end{align-items:flex-end;} .u-items-stretch{align-items:stretch;}

/* Justify content */
.u-justify-start{justify-content:flex-start;} .u-justify-center{justify-content:center;}
.u-justify-end{justify-content:flex-end;} .u-justify-between{justify-content:space-between;}
.u-justify-around{justify-content:space-around;}

/* Gap scale */
.u-gap-0{gap:0;}
.u-gap-xs{gap:0.25rem;}
.u-gap-sm{gap:0.5rem;}
.u-gap-md{gap:1rem;}
.u-gap-lg{gap:2rem;}
.u-gap-xl{gap:4rem;} /* 👈 NEW */

/* Flex sizing */
.u-flex-1{flex:1 1 0%;}
.u-flex-auto{flex:0 0 auto;}

/* Width / Height helpers */
.u-w-100{width:100%;}
.u-h-100{height:100%;}

@media (max-width:767px){
  .u-flex-col-mobile{flex-direction:column;}
  .u-flex-row-mobile{flex-direction:row;}
  .u-flex-wrap-mobile{flex-wrap:wrap;}
  .u-items-stretch-mobile{align-items:stretch;}
  .u-items-center-mobile{align-items:center;}
  .u-justify-start-mobile{justify-content:flex-start;}
  .u-justify-center-mobile{justify-content:center;}
  .u-gap-xs-mobile{gap:0.25rem;}
  .u-gap-sm-mobile{gap:0.5rem;}
  .u-gap-md-mobile{gap:1rem;}
  .u-w-100-mobile{width:100%;}
}

/* Typography utilities */
.u-heading-h1 {
  font-family: var(--h1-font-family);
  font-size: var(--h1-font-size);
  letter-spacing: var(--h1-letter-spacing);
  font-weight: var(--h1-font-weight);
  line-height: var(--h1-line-height);
}

.u-heading-h2 {
  font-family: var(--h2-font-family);
  font-size: var(--h2-font-size);
  letter-spacing: var(--h2-letter-spacing);
  font-weight: var(--h2-font-weight);
  line-height: var(--h2-line-height);
}

.u-heading-h3 {
  font-family: var(--h3-font-family);
  font-size: var(--h3-font-size);
  letter-spacing: var(--h3-letter-spacing);
  font-weight: var(--h3-font-weight);
  line-height: var(--h3-line-height);
}

.u-heading-h4 {
  font-family: var(--h4-font-family);
  font-size: var(--h4-font-size);
  letter-spacing: var(--h4-letter-spacing);
  font-weight: var(--h4-font-weight);
  line-height: var(--h4-line-height);
}

.u-heading-h5 {
  font-family: var(--h5-font-family);
  font-size: var(--h5-font-size);
  letter-spacing: var(--h5-letter-spacing);
  font-weight: var(--h5-font-weight);
  line-height: var(--h5-line-height);
}

.u-heading-h6 {
  font-family: var(--h6-font-family);
  font-size: var(--h6-font-size);
  letter-spacing: var(--h6-letter-spacing);
  font-weight: var(--h6-font-weight);
  line-height: var(--h6-line-height);
}

.u-body-large {
  font-family: var(--body-large-font-family);
  font-size: var(--body-large-font-size);
  letter-spacing: var(--body-large-letter-spacing);
  font-weight: var(--body-large-font-weight);
  line-height: var(--body-large-line-height);
}

.u-body-regular {
  font-family: var(--body-regular-font-family);
  font-size: var(--body-regular-font-size);
  letter-spacing: var(--body-regular-letter-spacing);
  font-weight: var(--body-regular-font-weight);
  line-height: var(--body-regular-line-height);
}

.u-body-small {
  font-family: var(--body-small-font-family);
  font-size: var(--body-small-font-size);
  letter-spacing: var(--body-small-letter-spacing);
  font-weight: var(--body-small-font-weight);
  line-height: var(--body-small-line-height);
}



@keyframes breathe-float-soft {
  0%, 100% {
    transform: translateY(0) scale(1);
    box-shadow:
      0 6px 18px rgba(255, 193, 79, 0.25),
      0 12px 32px rgba(255, 193, 79, 0.18);
  }
  50% {
    transform: translateY(-0.375rem) scale(1.06);
    box-shadow:
      0 10px 24px rgba(255, 193, 79, 0.35),
      0 18px 40px rgba(255, 193, 79, 0.22);
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.05);
    opacity: 0.85;
  }
}

@keyframes gradient-sweep {
  0% { background-position: 0% center; filter: brightness(1); }
  50% { background-position: 100% center; filter: brightness(1.1); }
  100% { background-position: 0% center; filter: brightness(1); }
}
