/* =========================================================================
   ICONIC · Design tokens + components
   -------------------------------------------------------------------------
   Índice (Ctrl+F para saltar):
     1. Tokens · paleta física
     2. Tokens · escalas (font, space, radius, motion, letter-spacing)
     3. Tokens · semânticos (dark default + [data-theme=light] override)
     4. Aliases retrocompatíveis (--c-*, --t-*, --pad-*)
     5. Reset + base
     6. Intro overlay
     7. Layout primitives (container, section)
     8. Tipografia (eyebrow, title, text, quote, hex)
     9. Botões e tabs
    10. Nav e menu
    11. Hero
    12. Pull quote + marquee
    13. Section header
    14. Cards, tiles, tailor
    15. Fleet
    16. Testemunhos + rating
    17. Final CTA
    18. Footer
    19. FAB
    20. Booking sheet + form
    21. Cookie consent
    22. Legal pages
    23. Media queries base
    24. Sub-páginas (page hero, values, blog)
   ========================================================================= */

/* -------------------------------------------------------------------------
   1. Tokens · paleta física (imutável, não muda com tema)
   ------------------------------------------------------------------------- */
:root {
  --c-black:          #000;
  --c-white:          #fff;
  --c-grey-950:       #0d0d0d;
  --c-grey-900:       #181818;
  --c-grey-850:       #202020;
  --c-grey-800:       #2a2a2a;
  --c-grey-700:       #313131;
  --c-grey-600:       #494949;
  --c-grey-500:       #555;
  --c-grey-400:       #7D7D7D;
  --c-grey-300:       #969696;
  --c-grey-200:       #f5f5f5;
  --c-grey-100:       #EEEEEE;
  --c-grey-50:        #F7F7F7;

  --c-gold:           #E0B77A;   /* dourado base — texto sobre escuro, backgrounds gold */
  --c-gold-strong:    #A8683C;   /* dourado escuro — texto sobre claro (AA 4.6:1 sobre #FFF) */
  --c-gold-hover:     #A8683C;   /* alias histórico == gold-strong */
  --c-secondary:      #004A50;   /* teal profundo */
  --c-secondary-soft: #0E7B82;   /* teal iluminado — focus/glow */

  --grad-gold: linear-gradient(141deg,
    #B0713D 0%,
    #F0BC80 20%,
    #A8683C 40%,
    #E0B77A 58%,
    #C89A5B 82%,
    #A66744 100%);
  --grad-gold-strip-x: 100%;

  /* -----------------------------------------------------------------------
     2. Tokens · escalas
     ----------------------------------------------------------------------- */

  /* Tipografia — famílias */
  --f-display: 'Instrument Serif', 'Playfair Display', Georgia, 'Times New Roman', serif;
  --f-body:    'Saira', 'Helvetica Neue', Arial, sans-serif;

  /* Escala tipográfica — t-shirt sizes (fluidos ficam inline nos componentes) */
  --font-2xs:   11px;
  --font-xs:    12px;
  --font-sm:    14px;
  --font-md:    16px;
  --font-lg:    18px;
  --font-xl:    22px;
  --font-2xl:   28px;
  --font-3xl:   34px;
  --font-4xl:   48px;
  --font-5xl:   80px;
  --font-6xl:  120px;

  /* Escala de espaçamento — t-shirt sizes (base 4) */
  --space-2xs:   4px;
  --space-xs:    8px;
  --space-sm:   12px;
  --space-md:   16px;
  --space-lg:   24px;
  --space-xl:   32px;
  --space-2xl:  48px;
  --space-3xl:  64px;
  --space-4xl:  80px;
  --space-5xl:  96px;

  /* Border-radius — sharp editorial (só pills e círculos) */
  --radius-none:   0;
  --radius-sm:     2px;
  --radius-pill:   999px;
  --radius-round:  50%;

  /* Letter-spacing */
  --ls-title:      0.5px;
  --ls-body:       0.4px;
  --ls-eyebrow-sm: 1.2px;
  --ls-eyebrow:    1.4px;
  --ls-eyebrow-md: 1.6px;
  --ls-eyebrow-lg: 2.4px;
  --ls-marquee:    2px;
  --ls-hero:       3px;
  --ls-hero-lg:    3.6px;
  --ls-logo:       7px;

  /* Espaçamento de layout */
  --pad-section-y: clamp(56px, 7vw, 96px);
  --pad-section-x: clamp(20px, 5vw, 40px);
  --pad-nav-y:     22px;
  --pad-nav-y-sm:  14px;
  --max-content:   1440px;

  /* Motion */
  --ease-out:      cubic-bezier(.25,1,.5,1);
  --ease-media:    cubic-bezier(.2,.7,.2,1);
  --ease-sheet:    cubic-bezier(.22,.85,.2,1);
  --dur-fast:      .2s;
  --dur-base:      .25s;
  --dur-slow:      .35s;
  --dur-media:     .8s;

  /* Formas */
  --hex-clip: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);

  /* -----------------------------------------------------------------------
     3. Tokens · semânticos (tema dark é o default no :root)
        Aplicar [data-theme="light"] a uma <section> herda o override abaixo.
     ----------------------------------------------------------------------- */
  --color-bg:                var(--c-black);
  --color-surface:           var(--c-grey-900);
  --color-surface-alt:       var(--c-grey-850);
  --color-surface-hover:     var(--c-grey-800);

  --color-text:              var(--c-white);
  --color-text-soft:         var(--c-grey-200);
  --color-text-mute:         var(--c-grey-400);
  --color-text-dim:          var(--c-grey-500);
  --color-text-tag:          var(--c-grey-300);
  --color-text-tag-on:       var(--c-black);            /* texto sobre a chip cinza */

  --color-border:            var(--c-grey-850);
  --color-border-strong:     var(--c-grey-700);
  --color-border-input:      var(--c-grey-600);

  --color-scrim:             rgba(255,255,255,0.5);      /* border sobre imagens escuras */
  --color-backdrop:          rgba(0,0,0,0.7);
  --color-nav-scrolled:      rgba(0,0,0,0.9);
  --color-btn-primary-bg:    rgba(0,0,0,0.35);           /* interior blur do pill primary */
  --color-btn-icon-bg:       rgba(0,0,0,0.30);           /* interior blur do ícone circular */
  --color-switch-thumb:      var(--c-white);
  --color-gold-text:         var(--c-gold);              /* dourado como texto — escuro→gold, claro→gold-strong */
  --color-gold-text-hover:   var(--c-gold-strong);       /* hover em texto dourado */
}

/* Tema claro — aplica-se a <section data-theme="light"> ou body inteiro.
   Só sobrescreve tokens semânticos; paleta física + escalas mantêm-se. */
[data-theme="light"]{
  --color-bg:                var(--c-white);
  --color-surface:           var(--c-grey-50);
  --color-surface-alt:       var(--c-grey-100);
  --color-surface-hover:     #E5E5E5;

  --color-text:              var(--c-black);
  --color-text-soft:         #1A1A1A;
  --color-text-mute:         #666666;
  --color-text-dim:          #999999;
  --color-text-tag:          #333333;
  --color-text-tag-on:       var(--c-white);

  --color-border:            rgba(0,0,0,0.08);
  --color-border-strong:     rgba(0,0,0,0.16);
  --color-border-input:      rgba(0,0,0,0.24);

  --color-scrim:             rgba(0,0,0,0.10);
  --color-backdrop:          rgba(0,0,0,0.55);
  --color-nav-scrolled:      rgba(255,255,255,0.9);
  --color-btn-primary-bg:    rgba(0,0,0,0.88);           /* light: inverte para pill preto sobre branco */
  --color-btn-icon-bg:       rgba(0,0,0,0.80);
  --color-switch-thumb:      var(--c-white);
  --color-gold-text:         var(--c-gold-strong);
  --color-gold-text-hover:   #7A4926;                    /* dourado ainda mais escuro sobre claro */
}

/* Botões primary/secondary preservam texto branco no tema claro (contraste sobre o interior escuro). */
[data-theme="light"] .ic-btn--primary,
[data-theme="light"] .ic-btn--primary .ic-btn__label{
  color: var(--c-white);
}
[data-theme="light"] .ic-btn__icon{
  color: var(--c-gold);
}

/* -------------------------------------------------------------------------
   4. Aliases retrocompatíveis
      Mantêm os nomes históricos a apontar para os novos tokens semânticos.
      NÃO usar em código novo — usar --color-* e --font-* directamente.
   ------------------------------------------------------------------------- */
:root{
  /* Cor */
  --c-bg:          var(--color-bg);
  --c-surface-1:   var(--color-surface);
  --c-surface-2:   var(--color-surface-alt);
  --c-surface-3:   var(--color-surface-hover);
  --c-line:        var(--color-border);
  --c-line-strong: var(--color-border-strong);
  --c-line-input:  var(--color-border-input);
  --c-text:        var(--color-text);
  --c-text-soft:   var(--color-text-soft);
  --c-text-mute:   var(--color-text-mute);
  --c-text-dim:    var(--color-text-dim);
  --c-text-tag:    var(--color-text-tag);
  --c-veil-05:     var(--color-scrim);
  --c-veil-70:     var(--color-backdrop);
  --c-veil-90:     var(--color-nav-scrolled);

  /* Type — mapeamento aproximado para os t-shirts novos */
  --t-2xs:  10px;                    /* legado, mantido para small print */
  --t-xs:   var(--font-2xs);         /* 11px */
  --t-sm:   var(--font-xs);          /* 12px */
  --t-md:   13px;                    /* legado */
  --t-base: var(--font-sm);          /* 14px */
  --t-lg:   15px;                    /* legado */
  --t-xl:   var(--font-md);          /* 16px */
  --t-2xl:  var(--font-lg);          /* 18px */
  --t-3xl:  21px;                    /* legado */
  --t-4xl:  var(--font-xl);          /* 22px */
  --t-5xl:  var(--font-2xl);         /* 28px */
  --t-6xl:  30px;                    /* legado */
  --t-quote: var(--font-3xl);        /* 34px */
  --t-marquee:  clamp(20px, 2.6vw, 32px);
  --t-h2:       clamp(34px, 5.4vw, 54px);
  --t-h2-lg:    clamp(38px, 6.5vw, 80px);
  --t-h2-pos:   clamp(34px, 6.5vw, 80px);
  --t-h2-sheet: clamp(28px, 4.4vw, 48px);
  --t-h1:       clamp(56px, 13vw, 150px);
  --t-cta:      clamp(44px, 9vw, 120px);
  --t-quote-lg: clamp(18px, 2.2vw, 24px);
}

/* =========================================================================
   Reset + base
   ========================================================================= */
*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--c-bg);
  color: var(--c-text);
  font-family: var(--f-body);
  overflow-x: hidden;
}
::selection{ background: var(--c-gold); color: var(--c-black); }

/* Focus visível (teclado) — usa a cor secundária como sinal de foco */
:focus-visible{
  outline: 2px solid var(--c-secondary-soft);
  outline-offset: 3px;
}
.ic-field:focus-visible{ outline: none; }

/* =========================================================================
   Keyframes
   ========================================================================= */
@keyframes ic-fade      { 0%{opacity:0} 3%{opacity:1} 21%{opacity:1} 25%{opacity:0} 100%{opacity:0} }
@keyframes ic-ken       { from{transform:scale(1.02)} to{transform:scale(1.12)} }
@keyframes ic-prog      { from{width:0} to{width:100%} }
@keyframes ic-down      { 0%,100%{transform:translateY(0);opacity:.5} 50%{transform:translateY(8px);opacity:1} }
@keyframes ic-marq      { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* =========================================================================
   Intro overlay — state-driven (page-load progress)
   ========================================================================= */
/* Overlay só existe enquanto html.ic-loading — se o JS falhar,
   nada disto sequer se aplica e o site aparece normal. */
#ic-intro{ display: none; }
html.ic-loading #ic-intro{
  display: block;
  position: fixed; inset: 0; z-index: 100;
  pointer-events: none;
  opacity: 1; visibility: visible;
  transition: opacity 900ms linear, visibility 0s linear 900ms;
}
html.ic-loading #ic-intro.ic-fadeout{ opacity: 0; visibility: hidden; }

html.ic-loading #ic-intro-base,
html.ic-loading #ic-intro-left,
html.ic-loading #ic-intro-right,
html.ic-loading #ic-intro-mid{
  opacity: 0;
  transform: scaleY(0);
  transform-origin: 50% 100%;
  transform-box: fill-box;
  transition: opacity 700ms var(--ease-out), transform 850ms var(--ease-out);
}
html.ic-loading #ic-intro-base.ic-active,
html.ic-loading #ic-intro-left.ic-active,
html.ic-loading #ic-intro-right.ic-active,
html.ic-loading #ic-intro-mid.ic-active{ opacity: 1; transform: scaleY(1); }

html.ic-loading #ic-intro-group{
  transform-box: fill-box;
  transform-origin: 50% 50%;
  transform: scale(1);
  transition: transform 900ms cubic-bezier(.55,0,.85,.1);
}
html.ic-loading #ic-intro-group.ic-portal{ transform: scale(14); }

html.ic-loading #ic-root{
  filter: blur(16px);
  transition: filter 900ms linear;
}
html.ic-loading #ic-root.ic-portal-in{ filter: blur(0); }

/* Mask reveal — hero content sobe por trás de uma linha invisível */
.ic-reveal{
  overflow: hidden;
  display: inline-block;
  vertical-align: bottom;
  line-height: 1.15;
}
.ic-reveal--block{ display: block; line-height: inherit; }
.ic-reveal__inner{ display: block; }
/* Estado inicial só existe durante o loading; sem loading, os elementos aparecem em posição. */
html.ic-loading .ic-reveal__inner{
  transform: translateY(110%);
  transition: transform 900ms var(--ease-out);
}
html.ic-loading body.ic-hero-reveal .ic-reveal__inner--1{ transform: translateY(0); transition-delay: 100ms; }
html.ic-loading body.ic-hero-reveal .ic-reveal__inner--2{ transform: translateY(0); transition-delay: 280ms; }
html.ic-loading body.ic-hero-reveal .ic-reveal__inner--3{ transform: translateY(0); transition-delay: 500ms; }
html.ic-loading body.ic-hero-reveal .ic-reveal__inner--4{ transform: translateY(0); transition-delay: 720ms; }
/* Depois do reveal terminar, liberta o overflow (permite hovers com translateY nos filhos). */
body.ic-hero-revealed .ic-reveal{ overflow: visible; }

/* =========================================================================
   Layout primitives
   ========================================================================= */
.ic-container{ max-width: var(--max-content); margin: 0 auto; }
.ic-container--pad{ padding: 0 var(--pad-section-x); }
.ic-section{
  padding: var(--pad-section-y) var(--pad-section-x);
  scroll-margin-top: 80px;
}
.ic-section--flush{ padding-left: 0; padding-right: 0; }
.ic-section--bg{ background: var(--c-bg); }
.ic-section--surface{ background: var(--c-surface-1); }
.ic-section--cover{
  position: relative;
  min-height: 90vh;
  width: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ic-section--cover-tall{ min-height: 100vh; }
.ic-section--cover-cta{ min-height: 86vh; }
.ic-scroll-hide::-webkit-scrollbar{ height: 0; }

.ic-cover__bg{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.42) contrast(1.06);
}
.ic-cover__bg--dim{ filter: brightness(0.38) contrast(1.06); }
.ic-cover__bg--tint{ filter: brightness(0.4) contrast(1.06); }
.ic-cover__content{
  position: relative;
  z-index: 3;
  text-align: center;
  padding: 120px 24px;
}

/* =========================================================================
   Tipografia
   ========================================================================= */
.ic-eyebrow{
  font-family: var(--f-body);
  font-size: var(--t-sm);
  font-weight: 500;
  letter-spacing: var(--ls-eyebrow-lg);
  text-transform: uppercase;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-eyebrow--hero{ letter-spacing: var(--ls-hero-lg); }
.ic-eyebrow--pos { letter-spacing: var(--ls-hero); }
.ic-eyebrow--muted{ color: var(--c-text-mute); }

.ic-title{
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--c-text);
  text-transform: uppercase;
  letter-spacing: var(--ls-title);
  font-optical-sizing: auto;
  margin: 0;
}
.ic-title--hero{
  font-size: var(--t-h1);
  line-height: 0.9;
  letter-spacing: 0;
}
.ic-title--display{
  font-size: var(--t-h2-lg);
  line-height: 0.96;
}
.ic-title--positioning{
  font-size: var(--t-h2-pos);
  line-height: 0.98;
  max-width: 18ch;
  margin: 22px auto 0;
}
.ic-title--section{
  font-size: var(--t-h2);
  line-height: 1.05;
}
.ic-title--sheet{
  font-size: var(--t-h2-sheet);
  line-height: 0.98;
}
.ic-title--card{
  font-size: var(--t-4xl);
}
.ic-title--card-lg{
  font-size: var(--t-5xl);
  line-height: 1.0;
}
.ic-title--fleet{
  font-size: var(--t-3xl);
}
.ic-title--tile{
  font-size: var(--t-6xl);
  letter-spacing: 1px;
}
.ic-title--cta{
  font-size: var(--t-cta);
  line-height: 0.9;
  letter-spacing: 0;
}
.ic-title--logo{
  font-size: var(--t-4xl);
  font-family: var(--f-body);
  font-weight: 600;
  letter-spacing: var(--ls-logo);
  padding-left: 7px;
}

.ic-text{ font-size: var(--t-xl); line-height: 1.55; color: var(--c-text-soft); }
.ic-text--muted{ color: var(--c-text-mute); }
.ic-text--sm   { font-size: var(--t-base); line-height: 1.5; color: var(--c-text-mute); }

/* Quote */
.ic-quote{
  font-family: var(--f-display);
  font-size: var(--t-quote);
  line-height: 0.6;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-quote__text{
  font-family: var(--f-display);
  font-weight: 400;
  font-style: italic;
  font-size: var(--t-quote-lg);
  line-height: 1.35;
  letter-spacing: 0.3px;
  color: var(--c-text-soft);
  margin: 0;
  max-width: 720px;
}
.ic-quote__attr{
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
}

/* Hex marker */
.ic-hex{
  display: inline-block;
  width: 7px; height: 8px;
  background: var(--grad-gold);
  background-color: var(--c-gold);
  flex: 0 0 auto;
  clip-path: var(--hex-clip);
}
.ic-hex--md{ width: 15px; height: 17px; }
.ic-hex--sm{ width: 6px; height: 6px; background: currentColor; }

/* =========================================================================
   Botões
   ========================================================================= */
.ic-btn{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-family: var(--f-body);
  font-size: var(--t-md);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  padding: 13px 24px;
  text-decoration: none;
  border: 1px solid transparent;
  background: transparent;
  color: var(--c-text);
  cursor: pointer;
  transition: background var(--dur-base) ease, color var(--dur-base) ease,
              border-color var(--dur-base) ease, border-width var(--dur-base) ease,
              padding var(--dur-base) ease, opacity var(--dur-base) ease,
              filter var(--dur-base) ease, box-shadow var(--dur-base) ease,
              transform var(--dur-base) ease;
}
.ic-btn--gold{
  background: var(--grad-gold);
  background-color: var(--c-gold);
  color: var(--c-black);
}
.ic-btn--gold:hover{ filter: brightness(1.12) saturate(1.08); }

/* ------ Primário: pill branca com anel de gradiente animado ------
   Anima o ângulo do conic-gradient via @property (não roda a forma).
   Fallback: quem não suporta @property vê o anel estático. */
@property --grad-angle{
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: true;
}
@keyframes ic-btn-spin{
  to{ --grad-angle: 360deg; }
}

.ic-btn--primary{
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 7.5px 25.5px 7.5px 7.5px;
  border: none;
  border-radius: var(--radius-pill);
  background: var(--color-btn-primary-bg);
  backdrop-filter: blur(14px) saturate(1.2);
  -webkit-backdrop-filter: blur(14px) saturate(1.2);
  color: var(--c-text);
  font-size: var(--t-lg);
  letter-spacing: 0.6px;
  text-transform: none;
  animation: ic-btn-spin 4s linear infinite;
}
/* Anel bronze isolado num ::before + máscara — o interior fica puro escuro/blur */
.ic-btn--primary::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from var(--grad-angle),
    #B0713D  0%,
    #F0BC80 18%,
    #A66744 34%,
    #E0B77A 52%,
    #C89A5B 70%,
    #F0BC80 86%,
    #B0713D 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
          mask-composite: exclude;
  pointer-events: none;
  transition: padding var(--dur-base) ease;
}
.ic-btn--primary:hover{
  transform: translateY(-1px);
  animation-duration: 2.2s;
}
.ic-btn--primary:hover::before{
  padding: 3px;
}
/* ------ Secundário (ghost): interior transparente, anel bronze isolado em ::before.
   Hover inverte: fundo branco + texto escuro. Mesmo border-radius do primário. */
.ic-btn--secondary{
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  padding: 7.5px 23.5px;
  border: none;
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--c-text);
  font-size: var(--t-md);
  letter-spacing: 0.6px;
  text-transform: none;
  animation: ic-btn-spin 4s linear infinite;
}
.ic-btn--secondary::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from var(--grad-angle),
    #B0713D  0%,
    #F0BC80 18%,
    #A66744 34%,
    #E0B77A 52%,
    #C89A5B 70%,
    #F0BC80 86%,
    #B0713D 100%);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
          mask-composite: exclude;
  pointer-events: none;
  transition: padding var(--dur-base) ease;
}
.ic-btn--secondary:hover{
  transform: translateY(-1px);
  animation-duration: 2.2s;
  background: var(--color-text);
  color: var(--color-bg);
}
.ic-btn--secondary:hover::before{
  padding: 3px;
}

/* Utility: desliga a rotação do anel (usado com primary/secondary quando
   não queremos ruído visual — ex.: nav e menu). */
.ic-btn--static,
.ic-btn--static::before,
.ic-btn--static .ic-btn__icon,
.ic-btn--static .ic-btn__icon::before{
  animation: none !important;
}

/* Ícone circular à esquerda: interior transparente/blur, moldura em gradiente, glifo em bronze */
.ic-btn__icon{
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px; height: 34px;
  padding: 0;
  border: none;
  border-radius: var(--radius-pill);
  background: var(--color-btn-icon-bg);
  backdrop-filter: blur(10px) saturate(1.2);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
  color: var(--color-gold-text);
  line-height: 1;
  animation: ic-btn-spin 4s linear infinite;
}
.ic-btn__icon::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: conic-gradient(from calc(var(--grad-angle) + 90deg),
    #B0713D, #F0BC80, #A66744, #E0B77A, #C89A5B, #F0BC80, #B0713D);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
          mask-composite: exclude;
  pointer-events: none;
  transition: padding var(--dur-base) ease;
}
.ic-btn--primary:hover .ic-btn__icon::before{
  padding: 3px;
}
.ic-btn__icon svg{ width: 16px; height: 16px; display: block; }
.ic-btn__label{
  color: inherit;
}

/* Sweep de luz premium — soft, difuso, cadência lenta. Combina com .ic-btn--gold. */
.ic-btn--shine{
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.ic-btn--shine::before{
  content: "";
  position: absolute;
  top: -50%;
  bottom: -50%;
  left: 0;
  width: 55%;
  background: linear-gradient(105deg,
    transparent 0%,
    rgba(255, 245, 220, 0.00) 30%,
    rgba(255, 245, 220, 0.22) 50%,
    rgba(255, 245, 220, 0.00) 70%,
    transparent 100%);
  transform: translateX(-140%) skewX(-14deg);
  filter: blur(8px);
  animation: ic-btn-shine 7s cubic-bezier(.4, .0, .2, 1) infinite;
  animation-delay: 1.8s;
  pointer-events: none;
  mix-blend-mode: soft-light;
  will-change: transform;
}
@keyframes ic-btn-shine{
  0%   { transform: translateX(-140%) skewX(-14deg); }
  45%  { transform: translateX(240%)  skewX(-14deg); }
  100% { transform: translateX(240%)  skewX(-14deg); }
}
.ic-btn--ghost{
  border-color: var(--c-veil-05);
  opacity: 0.85;
}
.ic-btn--ghost:hover{
  background: var(--c-secondary);
  border-color: var(--c-secondary);
  opacity: 1;
}
.ic-btn--lg{ padding: 19px 34px; font-size: var(--t-lg); }
.ic-btn--xl{ padding: 19px 38px; font-size: var(--t-lg); }
.ic-btn--sm{ padding: 9px 16px; font-size: var(--t-xs); letter-spacing: 0.8px; }
.ic-btn--wide{ padding: 17px 40px; font-size: var(--t-base); }
.ic-btn--menu{ padding: 16px 34px; font-size: var(--t-base); margin-top: 10px; }
.ic-btn--icon{
  width: 52px; height: 52px;
  padding: 0;
  justify-content: center;
  font-size: 17px;
  font-weight: 400;
}
.ic-btn--icon-sm{
  width: 42px; height: 42px;
  padding: 0;
  justify-content: center;
  font-size: 15px;
}

/* Tabs (booking sheet) */
.ic-tab{
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 13px 24px;
  cursor: pointer;
  font-family: var(--f-body);
  font-size: var(--t-sm);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
  user-select: none;
  transition: background var(--dur-base), color var(--dur-base), border-color var(--dur-base);
  border: 1px solid var(--c-line-input);
  color: var(--c-text);
  background: transparent;
}
.ic-tab[data-active="1"]{ background: var(--grad-gold); background-color: var(--c-gold); color: var(--c-black); border-color: transparent; }

/* =========================================================================
   Nav
   ========================================================================= */
.ic-nav{
  position: fixed; top: 0; left: 0; right: 0;
  z-index: 70;
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px;
  padding: var(--pad-nav-y) 32px;
  background: transparent;
  border-bottom: 1px solid transparent;
  backdrop-filter: blur(12px) saturate(1.2);
  -webkit-backdrop-filter: blur(12px) saturate(1.2);
  transition: background var(--dur-slow) ease, padding var(--dur-slow) ease, border-color var(--dur-slow) ease;
}
.ic-nav.is-scrolled{
  background: var(--c-veil-90);
  padding-top: var(--pad-nav-y-sm);
  padding-bottom: var(--pad-nav-y-sm);
  border-bottom-color: var(--c-line);
}
.ic-nav__toggle{
  display: flex; align-items: center; gap: 12px;
  cursor: pointer; flex: 1;
}
.ic-nav__burger{ display: flex; flex-direction: column; gap: 4px; }
.ic-nav__burger > span{ width: 24px; height: 2px; background: var(--c-text); }
.ic-nav__label{
  font-size: var(--t-md);
  font-weight: 400;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--c-text);
}
.ic-nav__logo{
  color: var(--c-text);
  text-decoration: none;
  display: block;
  position: relative;
  flex: 0 0 auto;
  width: 176px; height: 88px;
  transition: width var(--dur-slow) ease, height var(--dur-slow) ease;
}
.ic-nav__logo svg{
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: auto; display: block;
  transition: opacity var(--dur-slow) ease, height var(--dur-slow) ease;
}
.ic-nav__logo svg.ic-nav__logo-full{ height: 88px; opacity: 1; }
.ic-nav__logo svg.ic-nav__logo-mark{ height: 44px; opacity: 0; }
.ic-nav.is-scrolled .ic-nav__logo{ width: 32px; height: 44px; }
.ic-nav.is-scrolled .ic-nav__logo svg.ic-nav__logo-full{ opacity: 0; }
.ic-nav.is-scrolled .ic-nav__logo svg.ic-nav__logo-mark{ opacity: 1; }

/* Easter egg — varrimento dourado que percorre o interior das letras do logo no hover. */
.ic-nav__logo{ isolation: isolate; }
.ic-nav__logo::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(100deg,
    transparent 40%,
    var(--c-gold) 50%,
    transparent 60%);
  background-size: 260% 100%;
  background-position: 130% 0;
  -webkit-mask-image: url('/assets/logo/iconic-travel-logotype.svg');
          mask-image: url('/assets/logo/iconic-travel-logotype.svg');
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  transition: opacity var(--dur-fast) ease;
}
.ic-nav.is-scrolled .ic-nav__logo::after{
  -webkit-mask-image: url('/assets/logo/iconic-travel-signo.svg');
          mask-image: url('/assets/logo/iconic-travel-signo.svg');
}
.ic-nav__logo:hover::after{
  opacity: 1;
  animation: ic-logo-shine 950ms cubic-bezier(.4, 0, .2, 1) 1;
}
@keyframes ic-logo-shine{
  from { background-position: 130% 0; }
  to   { background-position: -30% 0; }
}
.ic-nav__right{
  display: flex; align-items: center; justify-content: flex-end;
  gap: 22px; flex: 1;
}

.ic-navlink{ transition: color var(--dur-fast) ease; text-decoration: none; }
.ic-navlink:hover{ color: var(--color-gold-text); }
.ic-navlink--lang{
  cursor: pointer;
  color: var(--c-text);
  font-size: var(--t-md);
  font-weight: 400;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
}

/* Menu overlay */
.ic-menu{
  position: fixed; inset: 0;
  z-index: 69;
  background: var(--c-bg);
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: 30px;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity var(--dur-slow) ease;
}
.ic-menu.is-open{ opacity: 1; visibility: visible; pointer-events: auto; }
.ic-menu__close{
  position: absolute; top: 24px; right: 32px;
  cursor: pointer;
  color: var(--c-text);
  font-size: 26px;
  line-height: 1;
}
.ic-menu__link{
  text-decoration: none;
  color: var(--c-text);
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 34px;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* =========================================================================
   Hero
   ========================================================================= */
.ic-hero{
  position: relative;
  height: 100vh;
  min-height: 640px;
  width: 100%;
  overflow: hidden;
  background: var(--c-bg);
}
.ic-hero__bg-wrap{ position: absolute; inset: 0; }
.ic-hero__bg{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.55) contrast(1.06);
  animation: ic-fade 32s infinite, ic-ken 32s ease-in-out infinite;
}
.ic-hero__bg--2, .ic-hero__bg--3, .ic-hero__bg--4{ opacity: 0; filter: brightness(0.5) contrast(1.06); }
.ic-hero__bg--2{ animation-delay: 8s; }
.ic-hero__bg--3{ animation-delay: 16s; }
.ic-hero__bg--4{ animation-delay: 24s; }
.ic-hero__veil{
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0.55), transparent 26%, transparent 62%, rgba(0,0,0,0.75));
}
.ic-hero__content{
  position: relative; z-index: 5;
  height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center;
  padding: 0 24px;
}
.ic-hero__eyebrow{ margin-bottom: 22px; }
.ic-hero__lede{
  font-size: var(--t-xl);
  font-weight: 400;
  letter-spacing: var(--ls-body);
  line-height: 1.55;
  color: var(--c-text-soft);
  max-width: 620px;
  margin: 20px 0 40px;
}
.ic-hero__ctas{ display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

.ic-hero__progress{
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 6;
  height: 2px; background: rgba(255,255,255,0.18);
}
.ic-hero__progress > div{ height: 100%; background: var(--grad-gold); background-color: var(--c-gold); animation: ic-prog 8s linear infinite; }
.ic-hero__scroll{
  position: absolute; bottom: 26px; left: 50%; z-index: 5;
  transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  animation: ic-down 2.6s ease-in-out infinite;
}
.ic-hero__scroll span:first-child{
  font-size: var(--t-2xs);
  font-weight: 500;
  letter-spacing: 2.6px;
  text-transform: uppercase;
  color: rgba(255,255,255,0.7);
}
.ic-hero__scroll span:last-child{
  width: 1px; height: 30px;
  background: linear-gradient(to bottom, var(--c-text), transparent);
}

/* =========================================================================
   Pull quote + marquee
   ========================================================================= */
.ic-pullquote{
  background: var(--c-bg);
  border-top: 1px solid var(--c-line);
  padding: 34px var(--pad-section-x);
}
.ic-pullquote__inner{
  max-width: 1000px; margin: 0 auto;
  display: flex; align-items: baseline; gap: 18px;
  flex-wrap: wrap; justify-content: center; text-align: center;
}

.ic-marquee{
  background: var(--c-bg);
  border-top: 1px solid var(--c-line);
  border-bottom: 1px solid var(--c-line);
  padding: 18px 0;
  overflow: hidden;
}
.ic-marquee__track{
  display: flex; align-items: center; gap: 30px;
  width: max-content; white-space: nowrap;
  animation: ic-marq 32s linear infinite;
}
.ic-marquee__item{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: var(--t-marquee);
  letter-spacing: var(--ls-marquee);
  text-transform: uppercase;
  color: var(--c-line-input);
  font-style: italic;
}

/* =========================================================================
   Section header (eyebrow + title lockup)
   ========================================================================= */
.ic-header{
  display: flex; flex-wrap: wrap;
  align-items: flex-end; justify-content: space-between;
  gap: 20px;
  margin-bottom: 44px;
  border-bottom: 1px solid var(--c-line);
  padding-bottom: 28px;
}
.ic-header--plain{ border: 0; padding-bottom: 0; margin-bottom: 40px; }
.ic-header--center{ text-align: center; justify-content: center; margin-bottom: 42px; border: 0; padding: 0; display: block; }
.ic-header__title{ margin: 10px 0 0; }
.ic-header__desc{
  font-size: var(--t-xl);
  line-height: 1.55;
  color: var(--c-text-mute);
  max-width: 340px;
  margin: 0;
}

/* =========================================================================
   Cards (Experiências)
   ========================================================================= */
.ic-grid-cards{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-grid-tiles{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-card{
  background: var(--c-surface-2);
  display: flex; flex-direction: column;
  text-decoration: none;
  color: var(--c-text);
  transition: background var(--dur-slow) ease;
}
.ic-card:hover{ background: var(--c-surface-3); }
.ic-card__media{
  height: 210px;
  overflow: hidden;
}
.ic-card__img{
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform var(--dur-media) var(--ease-media);
}
.ic-card:hover .ic-card__img{ transform: scale(1.05); }
.ic-card__body{
  padding: 22px 20px;
  display: flex; flex-direction: column;
  gap: 9px; flex: 1;
}
.ic-card__body--full{
  padding: 24px;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.ic-card__tag{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-sm);
  text-transform: uppercase;
  color: var(--color-text-tag-on);
  background: var(--c-text-tag);
  padding: 4px 8px;
  align-self: flex-start;
}
.ic-card__tag--gold{
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  padding: 0;
  letter-spacing: var(--ls-eyebrow-md);
}
.ic-card__title{ margin: 4px 0 0; }
.ic-card__desc{
  font-size: var(--t-base);
  line-height: 1.5;
  color: var(--c-text-mute);
  margin: 0 0 8px;
}
.ic-card__foot{
  margin-top: auto;
  display: flex; align-items: center; justify-content: flex-start;
  padding-top: 14px;
  border-top: 1px solid var(--c-line-strong);
}
.ic-card__price{ font-size: var(--t-md); color: var(--c-text-soft); }
.ic-card__price small{ color: var(--c-text-mute); }
.ic-card__price strong{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 19px;
  margin-left: 4px;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

/* Tiles (Regiões) */
.ic-tile{
  text-decoration: none;
  position: relative;
  height: 340px;
  overflow: hidden;
  display: block;
}
.ic-tile__img{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.6);
  transition: transform var(--dur-media) var(--ease-media);
}
.ic-tile:hover .ic-tile__img{ transform: scale(1.06); }
.ic-tile__label{
  position: absolute; left: 22px; bottom: 20px;
  font-family: var(--f-display);
  font-weight: 400;
  color: var(--c-text);
  text-transform: uppercase;
}

/* =========================================================================
   Split — imagem à esquerda, painel à direita (ou empilhado no mobile)
   ========================================================================= */
.ic-split{
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: min(720px, 90vh);
  background: var(--c-bg);
}
.ic-split__media{
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  min-height: 480px;
}
.ic-split__panel{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(48px, 8vh, 120px) var(--pad-section-x);
}
@media (max-width: 900px){
  .ic-split{ grid-template-columns: 1fr; min-height: 0; }
  .ic-split__media{ min-height: 320px; }
  .ic-split__panel{ padding: 64px var(--pad-section-x); }
}

/* =========================================================================
   Tailor-Made
   ========================================================================= */
.ic-tailor{ max-width: 660px; }
.ic-tailor__list{
  display: flex; flex-direction: column;
  border-top: 1px solid var(--c-line);
  margin-bottom: 38px;
}
.ic-tailor__step{
  display: flex; gap: 22px; align-items: baseline;
  padding: 18px 0;
  border-bottom: 1px solid var(--c-line);
}
.ic-tailor__step-num{
  font-family: var(--f-body);
  font-weight: 600;
  font-size: var(--t-2xl);
  min-width: 38px;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-tailor__step-text{
  font-size: var(--t-lg);
  font-weight: 400;
  letter-spacing: var(--ls-eyebrow-sm);
  text-transform: uppercase;
  color: var(--c-text-soft);
}

/* =========================================================================
   Frota
   ========================================================================= */
.ic-fleet{
  display: flex; gap: 2px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 var(--pad-section-x) 4px;
  scrollbar-width: none;
}
.ic-fleet__slide{
  flex: 0 0 clamp(300px, 32vw, 400px);
  scroll-snap-align: start;
  background: var(--c-surface-2);
}
.ic-fleet__media{ height: 230px; overflow: hidden; }
.ic-fleet__img{
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  filter: brightness(0.92);
}
.ic-fleet__body{
  display: flex; align-items: flex-end; justify-content: space-between;
  padding: 20px;
}
.ic-fleet__label{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-fleet__pax{ font-size: var(--t-md); color: var(--c-text-mute); }
.ic-fleet__foot{ max-width: var(--max-content); margin: 32px auto 0; padding: 0 var(--pad-section-x); }

.ic-nav-actions{ display: flex; gap: 10px; }

/* =========================================================================
   Testemunhos
   ========================================================================= */
.ic-header--testimonials{ align-items: center; gap: 28px; }
.ic-header--testimonials > div:first-child{ flex: 1 1 260px; }
.ic-nav-actions--testimonials{ margin-left: auto; }

.ic-stars{
  font-size: var(--t-md);
  letter-spacing: 2px;
  line-height: 1;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}

.ic-rating-badge{
  display: flex;
  align-items: center;
}
.ic-rating-badge__body{ display: flex; align-items: center; gap: 14px; }
.ic-rating-badge__stars{ display: block; line-height: 1; margin-bottom: 4px; }
.ic-rating-badge__score{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: var(--t-2xl);
  line-height: 1;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-rating-badge__score small{
  font-size: 0.5em;
  color: var(--c-text-mute);
  -webkit-text-fill-color: var(--c-text-mute);
  margin-left: 2px;
}
.ic-rating-badge__meta{ display: flex; flex-direction: column; gap: 2px; }
.ic-rating-badge__label{
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text);
}
.ic-rating-badge__sub{
  font-size: var(--t-2xs);
  color: var(--c-text-mute);
  letter-spacing: var(--ls-body);
}

.ic-testimonials{
  display: flex; gap: 2px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding: 0 var(--pad-section-x) 4px;
  scrollbar-width: none;
}
.ic-testimonial{
  flex: 0 0 clamp(280px, 30vw, 400px);
  scroll-snap-align: start;
  background: var(--c-surface-2);
  padding: 30px 28px;
  display: flex; flex-direction: column;
  min-height: 320px;
}
.ic-testimonial__head{
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px;
  margin-bottom: 22px;
}
.ic-testimonial__source{
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.ic-testimonial__text{
  font-size: var(--t-lg);
  line-height: 1.55;
  color: var(--c-text);
  flex: 1;
  margin: 0 0 26px;
  font-weight: 400;
}
.ic-testimonial__foot{ display: flex; flex-direction: column; gap: 4px; }
.ic-testimonial__role{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.ic-testimonial__name{
  font-size: var(--t-md);
  color: var(--c-text-soft);
}

.ic-testimonials__foot{ text-align: center; }
.ic-testimonials__cta{
  font-size: var(--t-md);
  color: var(--c-text-mute);
  line-height: 1.6;
  margin: 0;
}
.ic-testimonials__cta strong{
  font-weight: 600;
  color: var(--c-text);
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}

/* =========================================================================
   Final CTA
   ========================================================================= */
.ic-cta__lede{
  font-size: var(--t-lg);
  font-weight: 400;
  letter-spacing: var(--ls-body);
  line-height: 1.55;
  color: var(--c-text-soft);
  max-width: 520px;
  margin: 0 auto 36px;
}
.ic-cta__contacts{
  display: flex; flex-wrap: wrap; justify-content: center;
  gap: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--c-line);
}
.ic-cta__contact{
  text-decoration: none;
  color: var(--c-text);
  font-size: var(--t-md);
  font-weight: 400;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
}

/* =========================================================================
   Footer
   ========================================================================= */
.ic-footer{
  background: var(--c-surface-1);
  border-top: 1px solid var(--c-line);
}
.ic-footer__inner{
  max-width: 1400px;
  margin: 0 auto;
  padding: clamp(80px, 10vw, 140px) var(--pad-section-x) 32px;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.ic-footer__hero{
  display: flex;
  justify-content: center;
  margin-bottom: clamp(56px, 8vw, 96px);
}
.ic-footer__logo{
  width: clamp(220px, 32vw, 380px);
  height: auto;
  display: block;
  color: var(--c-text);
}
.ic-footer__legal{
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(24px, 4vw, 44px);
  margin-bottom: clamp(48px, 6vw, 72px);
}
.ic-footer__link{
  text-decoration: none;
  color: var(--c-text-soft);
  font-family: var(--f-body);
  font-size: var(--t-md);
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  transition: color .2s ease;
}
.ic-footer__link:hover{ color: var(--color-gold-text); }
.ic-footer__link--btn{
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.ic-footer__foot{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 24px;
  border-top: 1px solid var(--c-line);
}
.ic-footer__meta{
  font-size: var(--t-sm);
  color: var(--c-text-dim);
  letter-spacing: 0.4px;
}
.ic-footer__social{
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-bottom: clamp(48px, 6vw, 72px);
}
.ic-footer__social-link{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--c-line-strong);
  border-radius: var(--radius-round);
  color: var(--c-text-soft);
  transition: color .2s ease, border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.ic-footer__social-link:hover{
  color: var(--color-gold-text);
  border-color: var(--color-gold-text);
  background-color: rgba(224, 183, 122, 0.08);
  transform: translateY(-1px);
}
.ic-footer__signature{
  font-size: var(--t-sm);
  color: var(--c-text-dim);
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
}
.ic-footer__signature strong{
  color: var(--c-text-soft);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-lg);
}
@media (max-width: 640px){
  .ic-footer__foot{
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 20px;
  }
}

/* =========================================================================
   FAB
   ========================================================================= */
/* FAB — só posicionamento e estado. Visual vem de .ic-btn--primary aplicado no HTML. */
.ic-fab{
  position: fixed; bottom: 24px; right: 24px;
  z-index: 60;
  opacity: 0;
  transform: translateY(20px);
  pointer-events: none;
  transition: opacity .4s ease, transform .4s ease;
}
.ic-fab.is-visible{ opacity: 1; transform: translateY(0); pointer-events: auto; }
.ic-fab.ic-btn--primary:hover{ transform: translateY(-1px); }

/* =========================================================================
   Booking sheet
   ========================================================================= */
.ic-backdrop{
  position: fixed; inset: 0;
  z-index: 80;
  background: var(--c-veil-70);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .4s ease, visibility .4s;
}
.ic-backdrop.is-open{ opacity: 1; visibility: visible; pointer-events: auto; }

.ic-sheet{
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 81;
  width: 100%;
  max-height: 94vh;
  overflow-y: auto;
  background: var(--c-surface-1);
  border-top: 1px solid transparent;
  border-image: var(--grad-gold) 1;
  transform: translateY(100%);
  transition: transform .5s var(--ease-sheet);
  padding: 20px var(--pad-section-x) clamp(40px, 5vw, 56px);
  color: var(--c-text);
}
.ic-sheet.is-open{ transform: translateY(0); }
.ic-sheet__handle{
  display: flex; justify-content: center;
  margin-bottom: 8px;
}
.ic-sheet__handle span{
  width: 46px; height: 3px;
  background: var(--c-line-input);
}
.ic-sheet__close{
  position: absolute; top: 22px;
  right: var(--pad-section-x);
}
.ic-sheet__inner{ max-width: 1120px; margin: 0 auto; }
.ic-sheet__header{ text-align: center; margin-bottom: 34px; }
.ic-sheet__title{ margin: 12px 0 0; }
.ic-sheet__tabs{
  display: flex; justify-content: center; gap: 10px; margin-bottom: 32px;
}
.ic-sheet__row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-bottom: 18px;
}
.ic-sheet__row--four{
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  margin-bottom: 30px;
}
.ic-sheet__foot{
  display: flex; align-items: center; justify-content: flex-end;
}
.ic-sheet__note{
  text-align: center;
  font-size: var(--t-xs);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--c-text-dim);
  margin: 24px 0 0;
}

.ic-field__label{
  display: block;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
  margin-bottom: 10px;
}
.ic-field{
  width: 100%;
  background: var(--c-bg);
  border: 1px solid var(--c-line-input);
  color: var(--c-text);
  font-family: var(--f-body);
  font-size: var(--t-lg);
  padding: 14px 16px;
  outline: none;
  transition: border-color var(--dur-base) ease, box-shadow var(--dur-base) ease;
}
.ic-field:focus{
  border-color: var(--c-secondary-soft);
  box-shadow: 0 0 0 3px rgba(14, 123, 130, 0.22);
}
.ic-field--date{ font-size: var(--t-base); padding: 13px 14px; color-scheme: dark; }
.ic-field--select{ padding: 14px 12px; cursor: pointer; }

/* =========================================================================
   Cookie consent
   ========================================================================= */
.ic-cookie{
  position: fixed;
  right: var(--pad-section-x);
  bottom: calc(var(--pad-section-x) + 12px);
  z-index: 79;
  width: min(380px, calc(100vw - 32px));
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity var(--dur-slow) var(--ease-sheet),
              transform var(--dur-slow) var(--ease-sheet);
}
.ic-cookie[hidden]{ display: none; }
.ic-cookie.is-open{
  opacity: 1;
  transform: none;
  pointer-events: auto;
}
.ic-cookie.is-suppressed{
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
}
.ic-cookie__card{
  position: relative;
  background: var(--c-surface-1);
  border-top: 1px solid transparent;
  border-image: var(--grad-gold) 1;
  padding: 26px 24px 22px;
  min-height: 260px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.55);
  color: var(--c-text);
}
.ic-cookie__close{
  position: absolute;
  top: 12px;
  right: 12px;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  background: transparent;
  color: var(--c-text-mute);
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  transition: color var(--dur-base) ease;
}
.ic-cookie__close:hover{ color: var(--color-gold-text); }

.ic-cookie__view{ display: none; }
.ic-cookie:not(.is-prefs) .ic-cookie__view--intro{ display: block; }
.ic-cookie.is-prefs .ic-cookie__view--prefs{ display: block; }

.ic-cookie__eyebrow{
  display: block;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
  margin-bottom: 12px;
}
.ic-cookie__title{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.15;
  margin: 0 0 12px;
  color: var(--c-text);
}
.ic-cookie__text{
  color: var(--c-text-mute);
  font-size: var(--t-md);
  line-height: 1.6;
  margin: 0 0 20px;
}
.ic-cookie__actions{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ic-cookie__actions .ic-btn{
  justify-content: center;
  width: 100%;
}
.ic-cookie__link{
  display: inline-block;
  margin-top: 16px;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--color-gold-text);
  text-decoration: none;
  transition: color var(--dur-base) ease;
}
.ic-cookie__link:hover{ color: var(--color-gold-text-hover); }

.ic-cookie__toggles{
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
  display: flex;
  flex-direction: column;
}
.ic-cookie__row{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--c-line);
}
.ic-cookie__row:last-child{ border-bottom: none; }
.ic-cookie__row-text{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ic-cookie__row-text > span{
  color: var(--c-text);
  font-size: var(--t-base);
  font-weight: 600;
  letter-spacing: 0.3px;
}
.ic-cookie__row-text > small{
  color: var(--c-text-mute);
  font-size: var(--t-xs);
  line-height: 1.5;
}

.ic-cookie__switch{
  position: relative;
  flex-shrink: 0;
  display: inline-block;
  width: 40px;
  height: 22px;
  cursor: pointer;
  margin-top: 2px;
}
.ic-cookie__switch input{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.ic-cookie__switch-track{
  position: absolute;
  inset: 0;
  background: var(--c-line-input);
  border-radius: var(--radius-pill);
  transition: background var(--dur-base) ease, opacity var(--dur-base) ease;
}
.ic-cookie__switch-thumb{
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: var(--color-switch-thumb);
  border-radius: var(--radius-pill);
  transition: transform var(--dur-base) var(--ease-out);
}
.ic-cookie__switch input:checked ~ .ic-cookie__switch-track{
  background: var(--grad-gold);
  background-color: var(--c-gold);
}
.ic-cookie__switch input:checked ~ .ic-cookie__switch-track .ic-cookie__switch-thumb{
  transform: translateX(18px);
}
.ic-cookie__switch input:disabled ~ .ic-cookie__switch-track{
  opacity: 0.55;
  cursor: not-allowed;
}
.ic-cookie__switch input:focus-visible ~ .ic-cookie__switch-track{
  outline: 2px solid var(--c-secondary-soft);
  outline-offset: 3px;
}

/* =========================================================================
   Legal pages (Política de Privacidade, Termos)
   ========================================================================= */
.ic-legal{
  padding-top: clamp(100px, 14vw, 160px);
  padding-bottom: clamp(80px, 10vw, 128px);
  background: var(--c-bg);
  color: var(--c-text);
}
.ic-legal__header{
  max-width: 780px;
  margin: 0 auto clamp(40px, 6vw, 72px);
  padding-bottom: clamp(28px, 4vw, 40px);
  border-bottom: 1px solid var(--c-line);
}
.ic-legal__header .ic-eyebrow{ display: block; margin-bottom: 16px; }
.ic-legal__header .ic-title{ text-transform: none; letter-spacing: 0; margin-bottom: 14px; }
.ic-legal__meta{
  margin: 0;
  color: var(--c-text-mute);
  font-size: var(--t-sm);
  letter-spacing: 0.4px;
}

.ic-legal__body{
  max-width: 780px;
  margin: 0 auto;
  color: var(--c-text-soft);
  font-size: var(--t-lg);
  line-height: 1.75;
}
.ic-legal__lede{
  font-size: var(--t-xl);
  color: var(--c-text);
  line-height: 1.6;
  margin: 0 0 clamp(32px, 4vw, 48px);
}
.ic-legal__body section{ margin-bottom: clamp(28px, 3.6vw, 44px); }
.ic-legal__body h2{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: var(--t-3xl);
  line-height: 1.2;
  color: var(--c-text);
  margin: 0 0 14px;
  letter-spacing: 0.2px;
}
.ic-legal__body p{ margin: 0 0 14px; color: var(--c-text-soft); }
.ic-legal__body ul{
  margin: 0 0 14px;
  padding-left: 22px;
  color: var(--c-text-soft);
}
.ic-legal__body li{ margin-bottom: 10px; }
.ic-legal__body li::marker{ color: var(--color-gold-text); }
.ic-legal__body strong{ color: var(--c-text); font-weight: 600; }
.ic-legal__body a{
  color: var(--color-gold-text);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) ease, color var(--dur-base) ease;
}
.ic-legal__body a:hover{
  color: var(--color-gold-text-hover);
  border-bottom-color: currentColor;
}
.ic-legal__inline-btn{
  border: none;
  background: transparent;
  padding: 0;
  font: inherit;
  color: var(--color-gold-text);
  cursor: pointer;
  border-bottom: 1px solid transparent;
  transition: border-color var(--dur-base) ease, color var(--dur-base) ease;
}
.ic-legal__inline-btn:hover{
  color: var(--color-gold-text-hover);
  border-bottom-color: currentColor;
}

/* =========================================================================
   Media queries
   ========================================================================= */
@media (max-width: 860px){
  .ic-cta-desktop{ display: none !important; }
  .ic-menu-label{ display: none !important; }
  .ic-grid-cards{ grid-template-columns: repeat(2, 1fr); }
  .ic-grid-tiles{ grid-template-columns: repeat(2, 1fr); }
  .ic-header--testimonials{ flex-direction: column; align-items: flex-start; }
  .ic-rating-badge{ align-items: flex-start; }
  .ic-nav-actions--testimonials{ margin-left: 0; }
  .ic-sheet__row{ grid-template-columns: 1fr; }
  .ic-sheet__row--four{ grid-template-columns: 1fr 1fr; }
  .ic-cookie{
    right: 0;
    left: 0;
    bottom: 0;
    width: 100%;
  }
  .ic-cookie__card{ min-height: 0; padding-bottom: 26px; }
}

@media (prefers-reduced-motion: reduce){
  html.ic-loading #ic-intro{ display: none; }
  html.ic-loading #ic-root{ filter: none !important; transition: none !important; }
  html.ic-loading .ic-reveal__inner{ transform: none !important; transition: none !important; }
  .ic-hero__bg,
  .ic-marquee__track,
  .ic-hero__scroll,
  .ic-hero__progress > div,
  .ic-btn--shine::before,
  .ic-btn--primary,
  .ic-btn--secondary,
  .ic-btn__icon,
  .ic-nav__logo:hover::after{ animation: none !important; }
  .ic-btn--shine::before,
  .ic-nav__logo::after{ display: none; }
  .ic-cookie{ transition: none !important; transform: none !important; }
  .ic-cookie.is-suppressed{ transform: none !important; }
  .ic-cookie__switch-thumb{ transition: none !important; }
}

/* =========================================================================
   Página interna — hero curto (sobre/frota/experiencias/blog)
   ========================================================================= */
.ic-page-hero{
  position: relative;
  min-height: 58vh;
  padding: 160px var(--pad-section-x) 80px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--c-bg);
}
.ic-page-hero__bg{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.42) contrast(1.06);
}
.ic-page-hero__veil{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.65) 100%);
}
.ic-page-hero__content{
  position: relative;
  z-index: 2;
  max-width: var(--max-content);
  margin: 0 auto;
  width: 100%;
}
.ic-page-hero__eyebrow{ display: block; margin-bottom: 18px; }
.ic-page-hero__title{
  font-size: clamp(44px, 8vw, 92px);
  line-height: 0.94;
  letter-spacing: 0;
  margin: 0;
  max-width: 18ch;
}
.ic-page-hero__lede{
  font-size: var(--t-xl);
  line-height: 1.55;
  color: var(--c-text-soft);
  max-width: 640px;
  margin: 22px 0 0;
}
.ic-page-hero__meta{
  display: flex; flex-wrap: wrap;
  gap: 18px 28px;
  margin-top: 26px;
  color: var(--c-text-mute);
  font-size: var(--t-sm);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
}
.ic-page-hero__meta strong{
  color: var(--c-text);
  font-weight: 500;
  letter-spacing: 0.4px;
  text-transform: none;
  display: block;
  font-size: var(--t-lg);
  margin-top: 4px;
}

/* =========================================================================
   Sobre — pilares
   ========================================================================= */
.ic-values{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-value{
  background: var(--c-surface-1);
  padding: 44px 32px;
  display: flex; flex-direction: column;
  gap: 14px;
}
.ic-value__num{
  font-family: var(--f-display);
  font-size: var(--t-5xl);
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  line-height: 1;
}
.ic-value__title{
  font-family: var(--f-display);
  font-size: var(--t-4xl);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text);
  margin: 0;
}
.ic-value__text{
  font-size: var(--t-lg);
  line-height: 1.6;
  color: var(--c-text-mute);
  margin: 0;
}
@media (max-width: 900px){
  .ic-values{ grid-template-columns: 1fr; }
}

/* Prosa curta (sobre / listagens) */
.ic-lede-block{
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.ic-lede-block p{
  font-family: var(--f-display);
  font-size: clamp(22px, 2.8vw, 30px);
  line-height: 1.35;
  font-style: italic;
  color: var(--c-text-soft);
  margin: 0;
}

/* =========================================================================
   FAQ — <details> com animação suave via grid-template-rows
   ========================================================================= */
.ic-faq{
  max-width: 780px;
  margin: 40px auto 0;
}
.ic-faq__item{
  border-top: 1px solid rgba(255,255,255,.08);
  padding: 22px 0;
}
.ic-faq__item:last-child{
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ic-faq__q{
  list-style: none;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  font-family: 'Instrument Serif', serif;
  font-size: 24px;
}
.ic-faq__q::-webkit-details-marker{ display: none; }
.ic-faq__icon{
  color: var(--color-gold-text);
  font-family: 'Saira', sans-serif;
  font-size: 22px;
  font-weight: 300;
  line-height: 1;
  display: inline-block;
  transform-origin: 50% 50%;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}
.ic-faq__item[open] .ic-faq__icon{ transform: rotate(45deg); }
.ic-faq__item > .ic-faq__body{
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .35s cubic-bezier(.4,0,.2,1);
}
.ic-faq__item[open] > .ic-faq__body{ grid-template-rows: 1fr; }
.ic-faq__body > *{ overflow: hidden; min-height: 0; }
.ic-faq__a{
  margin: 0;
  padding-top: 14px;
  font-family: 'Saira', sans-serif;
  font-size: 15px;
  line-height: 1.65;
  color: var(--c-text-soft);
  text-align: left;
}
@media (prefers-reduced-motion: reduce){
  .ic-faq__icon,
  .ic-faq__item > .ic-faq__body{ transition: none; }
}

/* =========================================================================
   Frota — grid vertical (frota.html)
   ========================================================================= */
.ic-fleet-grid{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-fleet-card{
  background: var(--c-surface-1);
  display: flex; flex-direction: column;
  transition: background var(--dur-slow) ease;
}
.ic-fleet-card:hover{ background: var(--c-surface-3); }
.ic-fleet-card__media{
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--c-grey-950);
}
.ic-fleet-card__img{
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transition: transform var(--dur-media) var(--ease-media);
}
.ic-fleet-card:hover .ic-fleet-card__img{ transform: scale(1.04); }
.ic-fleet-card__body{
  padding: 28px 28px 32px;
  display: flex; flex-direction: column; gap: 14px;
  flex: 1;
}
.ic-fleet-card__label{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.ic-fleet-card__title{
  font-family: var(--f-display);
  font-size: var(--t-5xl);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--c-text);
  margin: 0;
  line-height: 1;
}
.ic-fleet-card__specs{
  display: flex; flex-wrap: wrap;
  gap: 22px;
  padding-top: 12px;
  border-top: 1px solid var(--c-line);
  margin-top: 6px;
}
.ic-fleet-card__spec{
  display: flex; flex-direction: column;
  font-size: var(--t-sm);
  color: var(--c-text-mute);
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.ic-fleet-card__spec strong{
  font-family: var(--f-display);
  font-size: var(--t-3xl);
  font-weight: 400;
  color: var(--c-text);
  text-transform: none;
  letter-spacing: 0;
  margin-bottom: 2px;
}
.ic-fleet-card__foot{ margin-top: auto; padding-top: 14px; }
.ic-fleet-card__foot a{
  color: var(--color-gold-text);
  text-decoration: none;
  font-size: var(--t-md);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 8px;
}
.ic-fleet-card__foot a:hover{ color: var(--color-gold-text-hover); }
@media (max-width: 800px){
  .ic-fleet-grid{ grid-template-columns: 1fr; }
}

/* =========================================================================
   Itinerário (páginas de tour)
   ========================================================================= */
.ic-itinerary{
  max-width: 900px;
  margin: 0 auto;
  list-style: none;
  padding: 0;
  position: relative;
}
.ic-itinerary::before{
  content: '';
  position: absolute;
  left: 24px;
  top: 12px;
  bottom: 12px;
  width: 1px;
  background: linear-gradient(to bottom, var(--c-gold), var(--c-line));
  opacity: 0.5;
}
.ic-itinerary__item{
  position: relative;
  padding: 0 0 40px 72px;
  display: block;
}
.ic-itinerary__item:last-child{ padding-bottom: 0; }
.ic-itinerary__marker{
  position: absolute;
  left: 0; top: 0;
  width: 48px; height: 48px;
  border: 1px solid var(--c-gold);
  background: var(--c-bg);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display);
  font-size: var(--t-3xl);
  background-image: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  clip-path: var(--hex-clip);
  border: 0;
}
.ic-itinerary__marker::before{
  content: '';
  position: absolute; inset: 0;
  background: var(--grad-gold);
  clip-path: var(--hex-clip);
  z-index: -1;
  opacity: 0.15;
}
.ic-itinerary__label{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--c-text-mute);
  display: block;
  margin-bottom: 6px;
}
.ic-itinerary__title{
  font-family: var(--f-display);
  font-size: var(--t-5xl);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text);
  margin: 0 0 12px;
  line-height: 1;
}
.ic-itinerary__desc{
  font-size: var(--t-lg);
  line-height: 1.65;
  color: var(--c-text-soft);
  margin: 0;
  max-width: 62ch;
}

/* Inclui / Não inclui — 2 colunas */
.ic-inc-exc{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--c-surface-2);
  max-width: 1000px;
  margin: 0 auto;
}
.ic-inc-exc__col{
  background: var(--c-surface-1);
  padding: 36px 32px;
}
.ic-inc-exc__title{
  font-family: var(--f-display);
  font-size: var(--t-4xl);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text);
  margin: 0 0 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-line);
}
.ic-inc-exc__list{
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column;
  gap: 12px;
  color: var(--c-text-soft);
  font-size: var(--t-lg);
  line-height: 1.55;
}
.ic-inc-exc__list li{
  padding-left: 26px;
  position: relative;
}
.ic-inc-exc__list li::before{
  content: '';
  position: absolute;
  left: 0; top: 10px;
  width: 8px; height: 8px;
  background: var(--c-gold);
  clip-path: var(--hex-clip);
}
.ic-inc-exc__list--no li::before{
  background: var(--c-text-dim);
}
@media (max-width: 720px){
  .ic-inc-exc{ grid-template-columns: 1fr; }
}

/* Galeria — 4-6 imagens em grid */
.ic-gallery{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-gallery__item{
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--c-surface-1);
}
.ic-gallery__img{
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform var(--dur-media) var(--ease-media);
}
.ic-gallery__item:hover .ic-gallery__img{ transform: scale(1.06); }
@media (max-width: 720px){
  .ic-gallery{ grid-template-columns: 1fr 1fr; }
}

/* Mini-card (veículo sugerido) */
.ic-mini-card{
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 22px 24px;
  background: var(--c-surface-1);
  text-decoration: none;
  color: var(--c-text);
  border: 1px solid var(--c-line);
  max-width: 620px;
  margin: 0 auto;
  transition: background var(--dur-base) ease, border-color var(--dur-base) ease;
}
.ic-mini-card:hover{ background: var(--c-surface-2); border-color: var(--c-line-strong); }
.ic-mini-card__img{
  width: 140px; height: 84px;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  flex-shrink: 0;
}
.ic-mini-card__body{ flex: 1; min-width: 0; }
.ic-mini-card__label{
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--c-text-mute);
  display: block;
}
.ic-mini-card__title{
  font-family: var(--f-display);
  font-size: var(--t-3xl);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text);
  margin: 4px 0 0;
  line-height: 1.1;
}
.ic-mini-card__arrow{ color: var(--color-gold-text); font-size: 18px; }
@media (max-width: 560px){
  .ic-mini-card{ flex-direction: column; align-items: flex-start; }
  .ic-mini-card__img{ width: 100%; height: 120px; }
}

/* =========================================================================
   Blog — cards de listagem
   ========================================================================= */
.ic-posts-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--c-surface-2);
}
.ic-post-card{
  background: var(--c-surface-1);
  display: flex; flex-direction: column;
  text-decoration: none;
  color: var(--c-text);
  transition: background var(--dur-slow) ease;
}
.ic-post-card:hover{ background: var(--c-surface-3); }
.ic-post-card__media{
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--c-surface-2);
}
.ic-post-card__img{
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform var(--dur-media) var(--ease-media);
}
.ic-post-card:hover .ic-post-card__img{ transform: scale(1.05); }
.ic-post-card__body{
  padding: 28px 28px 30px;
  display: flex; flex-direction: column; gap: 12px; flex: 1;
}
.ic-post-card__meta{
  display: flex; flex-wrap: wrap; gap: 12px;
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.ic-post-card__cat{
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-post-card__title{
  font-family: var(--f-display);
  font-size: var(--t-4xl);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  color: var(--c-text);
  margin: 0;
  line-height: 1.05;
}
.ic-post-card__excerpt{
  font-size: var(--t-lg);
  line-height: 1.55;
  color: var(--c-text-mute);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.ic-post-card__more{
  margin-top: auto;
  padding-top: 8px;
  color: var(--color-gold-text);
  font-size: var(--t-md);
  font-weight: 600;
  letter-spacing: 1px;
  text-transform: uppercase;
}
@media (max-width: 1000px){
  .ic-posts-grid{ grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px){
  .ic-posts-grid{ grid-template-columns: 1fr; }
}

/* =========================================================================
   Blog — corpo do artigo (.ic-prose)
   ========================================================================= */
.ic-article{ padding: var(--pad-section-y) var(--pad-section-x); background: var(--c-bg); }
.ic-article__inner{ max-width: 780px; margin: 0 auto; }
.ic-article__header{
  text-align: center;
  padding-bottom: clamp(36px, 5vw, 56px);
  margin-bottom: clamp(36px, 5vw, 56px);
  border-bottom: 1px solid var(--c-line);
}
.ic-article__meta{
  display: inline-flex; gap: 14px; align-items: center;
  font-size: var(--t-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--c-text-mute);
  margin-bottom: 22px;
}
.ic-article__cat{
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
}
.ic-article__title{
  font-family: var(--f-display);
  font-size: clamp(38px, 6.5vw, 72px);
  line-height: 1.02;
  color: var(--c-text);
  margin: 0 0 18px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.ic-article__lede{
  font-family: var(--f-display);
  font-style: italic;
  font-size: clamp(20px, 2.4vw, 26px);
  line-height: 1.4;
  color: var(--c-text-soft);
  max-width: 640px;
  margin: 0 auto;
}
.ic-article__cover{
  width: 100%;
  aspect-ratio: 16 / 9;
  background-size: cover;
  background-position: center;
  margin-bottom: clamp(36px, 5vw, 56px);
}

.ic-prose{
  font-family: var(--f-body);
  font-size: 18px;
  line-height: 1.75;
  color: var(--c-text-soft);
}
.ic-prose > * + * { margin-top: 22px; }
.ic-prose h2{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(28px, 3.6vw, 40px);
  line-height: 1.15;
  color: var(--c-text);
  text-transform: uppercase;
  letter-spacing: 0.4px;
  margin: 56px 0 8px;
}
.ic-prose h3{
  font-family: var(--f-display);
  font-weight: 400;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.2;
  color: var(--c-text);
  margin: 44px 0 4px;
}
.ic-prose h2 + p,
.ic-prose h3 + p{ margin-top: 14px; }
.ic-prose a{
  color: var(--color-gold-text);
  text-decoration: none;
  border-bottom: 1px solid rgba(224, 183, 122, 0.35);
  transition: color var(--dur-base) ease, border-color var(--dur-base) ease;
}
.ic-prose a:hover{ color: var(--color-gold-text-hover); border-color: var(--color-gold-text-hover); }
.ic-prose strong{ color: var(--c-text); font-weight: 600; }
.ic-prose ul, .ic-prose ol{ padding-left: 22px; margin: 22px 0; }
.ic-prose li{ margin-bottom: 8px; }
.ic-prose li::marker{ color: var(--color-gold-text); }
.ic-prose blockquote{
  margin: 40px 0;
  padding: 4px 0 4px 28px;
  border-left: 3px solid var(--c-gold);
  font-family: var(--f-display);
  font-style: italic;
  font-size: clamp(22px, 2.6vw, 28px);
  line-height: 1.4;
  color: var(--c-text);
}
.ic-prose blockquote cite{
  display: block;
  margin-top: 12px;
  font-family: var(--f-body);
  font-style: normal;
  font-size: var(--t-xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--c-text-mute);
}
.ic-prose figure{ margin: 44px 0; }
.ic-prose figure img{ width: 100%; height: auto; display: block; }
.ic-prose figcaption{
  margin-top: 12px;
  font-size: var(--t-sm);
  letter-spacing: 0.4px;
  color: var(--c-text-mute);
  text-align: center;
}
.ic-prose hr{
  border: 0;
  border-top: 1px solid var(--c-line);
  margin: 48px auto;
  width: 60px;
}
.ic-prose code{
  background: var(--c-surface-2);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  font-size: 0.9em;
  color: var(--color-gold-text);
}

/* Autor + relacionados */
.ic-article__foot{
  max-width: 780px;
  margin: clamp(48px, 6vw, 72px) auto 0;
  padding-top: clamp(36px, 4vw, 48px);
  border-top: 1px solid var(--c-line);
  text-align: center;
}
.ic-article__foot .ic-btn{ margin-top: 20px; }
.ic-related{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: var(--c-surface-2);
  margin-top: clamp(48px, 6vw, 72px);
}
@media (max-width: 720px){
  .ic-related{ grid-template-columns: 1fr; }
}

/* =========================================================================
   Styleguide (só usado em _styleguide.html)
   Prefixo .sg-* para não colidir com .ic-*.
   ========================================================================= */
.sg-body{
  background: var(--color-bg);
  color: var(--color-text);
  font-family: var(--f-body);
  min-height: 100vh;
}
.sg-layout{
  display: grid;
  grid-template-columns: 260px 1fr;
  min-height: 100vh;
  max-width: 1440px;
  margin: 0 auto;
}
.sg-nav{
  position: sticky;
  top: 0;
  align-self: start;
  height: 100vh;
  overflow-y: auto;
  padding: 32px 24px;
  border-right: 1px solid var(--color-border);
  background: var(--color-bg);
  z-index: 5;
}
.sg-nav__brand{
  font-family: var(--f-display);
  font-size: var(--font-lg);
  text-transform: uppercase;
  letter-spacing: 1.4px;
  margin: 0 0 4px;
  color: var(--color-text);
}
.sg-nav__sub{
  font-size: var(--font-2xs);
  letter-spacing: var(--ls-eyebrow-md);
  text-transform: uppercase;
  color: var(--color-text-mute);
  margin: 0 0 28px;
}
.sg-nav__group{
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-lg);
  text-transform: uppercase;
  color: var(--color-text-mute);
  margin: 22px 0 6px;
}
.sg-nav__list{
  list-style: none;
  padding: 0;
  margin: 0 0 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sg-nav__link{
  display: block;
  padding: 6px 10px;
  text-decoration: none;
  color: var(--color-text-soft);
  font-size: var(--font-xs);
  letter-spacing: 0.4px;
  border-left: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease, background .2s ease;
}
.sg-nav__link:hover{
  color: var(--color-gold-text);
  border-left-color: var(--color-gold-text);
  background: var(--color-surface);
}
.sg-theme-toggle{
  margin-top: 22px;
  display: flex;
  gap: 6px;
  padding: 4px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-surface);
}
.sg-theme-toggle button{
  flex: 1;
  padding: 6px 10px;
  font-family: var(--f-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  background: transparent;
  border: none;
  color: var(--color-text-mute);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: background .2s, color .2s;
}
.sg-theme-toggle button[aria-pressed="true"]{
  background: var(--color-text);
  color: var(--color-bg);
}
.sg-main{
  padding: 48px clamp(24px, 4vw, 64px) 120px;
  max-width: 100%;
  overflow-x: hidden;
}
.sg-hero{
  padding-bottom: 32px;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 48px;
}
.sg-hero__eyebrow{
  display: inline-block;
  font-size: var(--font-2xs);
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-lg);
  text-transform: uppercase;
  background: var(--grad-gold);
  -webkit-background-clip: text;
          background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  margin-bottom: 12px;
}
.sg-hero__title{
  font-family: var(--f-display);
  font-size: clamp(38px, 5vw, 60px);
  line-height: 1;
  color: var(--color-text);
  margin: 0 0 12px;
  text-transform: uppercase;
  letter-spacing: 0;
}
.sg-hero__lede{
  font-size: var(--font-md);
  line-height: 1.6;
  color: var(--color-text-mute);
  max-width: 62ch;
  margin: 0;
}
.sg-section{
  padding: 40px 0;
  border-bottom: 1px solid var(--color-border);
  scroll-margin-top: 24px;
}
.sg-section:last-child{ border-bottom: 0; }
.sg-section__head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.sg-section__num{
  font-family: var(--f-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-lg);
  text-transform: uppercase;
  color: var(--color-text-mute);
}
.sg-section__title{
  font-family: var(--f-display);
  font-size: var(--font-2xl);
  line-height: 1;
  color: var(--color-text);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin: 4px 0 0;
}
.sg-section__note{
  font-size: var(--font-xs);
  line-height: 1.6;
  color: var(--color-text-mute);
  max-width: 68ch;
  margin: 0 0 24px;
}
.sg-subhead{
  font-family: var(--f-body);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: var(--ls-eyebrow-lg);
  text-transform: uppercase;
  color: var(--color-text-mute);
  margin: 24px 0 12px;
}
.sg-grid{
  display: grid;
  gap: 12px;
}
.sg-grid--tokens{ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.sg-grid--wide  { grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); }
.sg-grid--halves{ grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); }

/* Swatch de cor */
.sg-swatch{
  display: flex;
  flex-direction: column;
  border: 1px solid var(--color-border);
  overflow: hidden;
}
.sg-swatch__chip{
  height: 84px;
  display: block;
  position: relative;
}
.sg-swatch__chip--check{
  background-image:
    linear-gradient(45deg, rgba(0,0,0,.08) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(0,0,0,.08) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(0,0,0,.08) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(0,0,0,.08) 75%);
  background-size: 12px 12px;
  background-position: 0 0, 0 6px, 6px -6px, -6px 0;
}
.sg-swatch__body{
  padding: 12px 14px;
  background: var(--color-surface);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.sg-swatch__name{
  font-family: var(--f-body);
  font-size: var(--font-xs);
  font-weight: 600;
  color: var(--color-text);
}
.sg-swatch__value{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-mute);
  letter-spacing: 0.2px;
}
.sg-swatch__meta{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 10px;
  color: var(--color-text-dim);
}

/* Token row (spacing / type scale) */
.sg-scale{
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.sg-scale li{
  display: grid;
  grid-template-columns: 100px 90px 1fr;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid var(--color-border);
}
.sg-scale li:last-child{ border-bottom: 1px solid var(--color-border); }
.sg-scale code{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-soft);
  background: var(--color-surface);
  padding: 3px 6px;
}
.sg-scale__value{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-mute);
}
.sg-scale__bar{
  height: 12px;
  background: var(--grad-gold);
  display: block;
}
.sg-scale--type li{ grid-template-columns: 100px 90px 1fr; }
.sg-scale--type .sg-scale__sample{
  font-family: var(--f-display);
  color: var(--color-text);
  line-height: 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Preview boxes — showcase de componentes com fundo escuro ou claro forçado */
.sg-preview{
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  padding: 32px;
  margin: 0 0 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  min-height: 90px;
}
.sg-preview--stack{ flex-direction: column; align-items: flex-start; }
.sg-preview--center{ justify-content: center; }
.sg-preview__label{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 10px;
  color: var(--color-text-mute);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin: 0 0 4px;
  width: 100%;
}
.sg-code{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  line-height: 1.55;
  background: var(--color-surface);
  color: var(--color-text-soft);
  padding: 14px 16px;
  overflow-x: auto;
  white-space: pre;
  margin: 0 0 24px;
  border: 1px solid var(--color-border);
}
.sg-pair{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-items: stretch;
}
.sg-pair > *{ min-width: 0; }
.sg-pair-label{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 10px;
  color: var(--color-text-mute);
  text-transform: uppercase;
  letter-spacing: 1.2px;
  margin: 0 0 6px;
}

/* Radius visualization */
.sg-radius{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.sg-radius__shape{
  width: 80px;
  height: 80px;
  border: 2px solid var(--color-gold-text);
  background: var(--color-surface);
}
.sg-radius__shape--pill{ width: 120px; }
.sg-radius__name{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-mute);
}

/* Ease visualization */
.sg-ease{
  padding: 12px 14px;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
}
.sg-ease__name{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 11px;
  color: var(--color-text-soft);
  margin: 0 0 8px;
  display: block;
}
.sg-ease__value{
  font-family: ui-monospace, 'SF Mono', Menlo, monospace;
  font-size: 10px;
  color: var(--color-text-mute);
}

/* Principle list */
.sg-principle{
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
  padding: 20px 0;
  border-top: 1px solid var(--color-border);
}
.sg-principle:last-child{ border-bottom: 1px solid var(--color-border); }
.sg-principle__num{
  font-family: var(--f-display);
  font-size: var(--font-xl);
  color: var(--color-gold-text);
  line-height: 1;
}
.sg-principle__title{
  font-family: var(--f-display);
  font-size: var(--font-lg);
  color: var(--color-text);
  margin: 0 0 6px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.sg-principle__text{
  font-size: var(--font-xs);
  line-height: 1.65;
  color: var(--color-text-mute);
  margin: 0;
  max-width: 68ch;
}

@media (max-width: 900px){
  .sg-layout{ grid-template-columns: 1fr; }
  .sg-nav{
    position: static;
    height: auto;
    border-right: 0;
    border-bottom: 1px solid var(--color-border);
  }
  .sg-scale li{ grid-template-columns: 90px 80px 1fr; }
  .sg-pair{ grid-template-columns: 1fr; }
}
