/* Iván & Ana · 10·10·2026 — Estilos de la invitación
   Generado desde el diseño "Concepto A — Secciones". Editable a mano. */

/* ============================================================
   Iván & Ana · 10·10·2026 · Masía Can Ramoneda
   Sistema visual compartido — rústico cálido + botánico verde
   ============================================================ */

/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/3a85c316-96fe-4f0c-927f-6ac6ac58d088.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/a30ca2e1-1255-4143-a0db-271148988395.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/f7c9dd53-532d-4573-beef-2d076dd2e2c9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/a198ff1b-7433-496d-a0ff-81c282f99249.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/76f4a187-98a6-4f88-afd9-6dab78da4e64.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/3a85c316-96fe-4f0c-927f-6ac6ac58d088.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/a30ca2e1-1255-4143-a0db-271148988395.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/f7c9dd53-532d-4573-beef-2d076dd2e2c9.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/a198ff1b-7433-496d-a0ff-81c282f99249.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/76f4a187-98a6-4f88-afd9-6dab78da4e64.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/d72ceb6b-8511-4a82-bbfd-48b823cb0c85.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/e0793482-7d58-4bbe-8186-91e17fc1a4c2.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/88c39c5d-0367-4377-91fd-5c08df5ffa10.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/1f12ebb1-cbda-43ce-87db-b53e425a22c8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/d4560647-6b74-4bc1-8969-ceabe1f98365.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/d72ceb6b-8511-4a82-bbfd-48b823cb0c85.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/e0793482-7d58-4bbe-8186-91e17fc1a4c2.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/88c39c5d-0367-4377-91fd-5c08df5ffa10.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/1f12ebb1-cbda-43ce-87db-b53e425a22c8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/d4560647-6b74-4bc1-8969-ceabe1f98365.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/d72ceb6b-8511-4a82-bbfd-48b823cb0c85.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/e0793482-7d58-4bbe-8186-91e17fc1a4c2.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/88c39c5d-0367-4377-91fd-5c08df5ffa10.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/1f12ebb1-cbda-43ce-87db-b53e425a22c8.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/d4560647-6b74-4bc1-8969-ceabe1f98365.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/091d6d7c-b8e8-4cfe-b4ce-67cd1e97a491.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/2eacdb85-58c9-4f25-a71b-bcbe0e59f4b3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/885514e3-4fcd-43a2-abb8-ecb50f875b3c.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/44ba1512-20c7-4bd7-8ea5-b51fdadbeff9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/091d6d7c-b8e8-4cfe-b4ce-67cd1e97a491.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/2eacdb85-58c9-4f25-a71b-bcbe0e59f4b3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/885514e3-4fcd-43a2-abb8-ecb50f875b3c.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/44ba1512-20c7-4bd7-8ea5-b51fdadbeff9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/091d6d7c-b8e8-4cfe-b4ce-67cd1e97a491.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/2eacdb85-58c9-4f25-a71b-bcbe0e59f4b3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/885514e3-4fcd-43a2-abb8-ecb50f875b3c.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/44ba1512-20c7-4bd7-8ea5-b51fdadbeff9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/091d6d7c-b8e8-4cfe-b4ce-67cd1e97a491.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/2eacdb85-58c9-4f25-a71b-bcbe0e59f4b3.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/885514e3-4fcd-43a2-abb8-ecb50f875b3c.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/44ba1512-20c7-4bd7-8ea5-b51fdadbeff9.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root{
  /* ---- Color: papel y tierra ---- */
  --paper:    #FAF6EC;   /* el blanco más claro, cálido */
  --bone:     #F3EDE0;   /* fondo base crema */
  --bone-2:   #EAE1CF;   /* panel ligeramente más profundo */
  --bone-3:   #E0D5BF;   /* bordes / separadores cálidos */
  --ink:      #2B2A22;   /* casi negro cálido (texto) */
  --ink-soft: #5C564A;   /* texto secundario */
  --ink-faint:#8A8372;   /* texto terciario / pies */

  /* ---- Color: botánico ---- */
  --forest:   #2C3826;   /* verde profundo (héroes, fondos oscuros) */
  --forest-2: #36432E;   /* verde profundo +1 */
  --olive:    #586843;   /* oliva medio (acento principal) */
  --sage:     #8B976F;   /* salvia */
  --sage-2:   #AEB793;   /* salvia clara */

  /* ---- Color: calidez (uso medido) ---- */
  --clay:     #AE6648;   /* terracota / piedra */
  --gold:     #C49A5E;   /* dorado de las guirnaldas */

  /* ---- Líneas ---- */
  --line:        rgba(43,42,34,.14);
  --line-strong: rgba(43,42,34,.26);
  --line-light:  rgba(250,246,236,.22);

  /* ---- Tipos ---- */
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans:  'Hanken Grotesk', system-ui, -apple-system, sans-serif;

  /* ---- Métricas ---- */
  --maxw: 460px;            /* ancho de lectura, mobile-first */
  --pad: clamp(20px, 6vw, 34px);
  --radius: 3px;            /* esquinas casi rectas, sobrias */
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--sans);
  background:var(--bone);
  color:var(--ink);
  font-size:16.5px;
  line-height:1.62;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font-family:inherit; }

/* ---------- Tipografía base ---------- */
.serif{ font-family:var(--serif); }
h1,h2,h3{ font-family:var(--serif); font-weight:500; margin:0; line-height:1.04; letter-spacing:-.005em; }

.display{
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.01em;
  line-height:.96;
}

.eyebrow{
  font-family:var(--sans);
  font-weight:600;
  font-size:11.5px;
  letter-spacing:.32em;
  text-transform:uppercase;
}

.script{
  font-family:var(--serif);
  font-style:italic;
  font-weight:400;
}

.amp{ font-family:var(--serif); font-style:italic; font-weight:400; }

/* ---------- Botones ---------- */
.btn{
  appearance:none; border:none; cursor:pointer;
  font-family:var(--sans); font-weight:600;
  font-size:13px; letter-spacing:.12em; text-transform:uppercase;
  padding:15px 26px; border-radius:var(--radius);
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
  text-decoration:none;
}
.btn--solid{ background:var(--forest); color:var(--paper); }
.btn--solid:hover{ background:var(--forest-2); transform:translateY(-1px); }
.btn--clay{ background:var(--clay); color:var(--paper); }
.btn--clay:hover{ filter:brightness(1.05); transform:translateY(-1px); }
.btn--ghost{ background:transparent; color:var(--ink); border:1px solid var(--line-strong); }
.btn--ghost:hover{ border-color:var(--ink); }
.btn--light{ background:var(--paper); color:var(--forest); }
.btn--light:hover{ background:#fff; transform:translateY(-1px); }
.btn--block{ width:100%; }

/* ---------- Formularios ---------- */
.field{ margin-bottom:18px; }
.field > label{
  display:block; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-soft); margin-bottom:7px;
}
.input, .select, .textarea{
  width:100%; font-family:var(--sans); font-size:16px; color:var(--ink);
  background:var(--paper); border:1px solid var(--bone-3);
  border-radius:var(--radius); padding:13px 14px; line-height:1.4;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.input:focus, .select:focus, .textarea:focus{
  outline:none; border-color:var(--olive);
  box-shadow:0 0 0 3px rgba(88,104,67,.14);
}
.textarea{ resize:vertical; min-height:88px; }
.select{ appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235C564A' stroke-width='1.5'/></svg>"); background-repeat:no-repeat; background-position:right 14px center; padding-right:38px; }

/* segmentos sí/no, menú, etc. */
.seg{ display:flex; gap:8px; flex-wrap:wrap; }
.seg-opt{
  flex:1 1 auto; min-width:84px; cursor:pointer;
  border:1px solid var(--bone-3); background:var(--paper);
  border-radius:var(--radius); padding:12px 10px; text-align:center;
  font-size:14px; font-weight:500; color:var(--ink-soft);
  transition:all .2s var(--ease); user-select:none;
}
.seg-opt:hover{ border-color:var(--olive); color:var(--ink); }
.seg-opt[aria-pressed="true"]{ background:var(--forest); border-color:var(--forest); color:var(--paper); }

/* ---------- Placeholder de foto ---------- */
.ph{
  position:relative; overflow:hidden; background:var(--bone-2);
  background-image:
    repeating-linear-gradient(135deg, rgba(43,42,34,.05) 0 2px, transparent 2px 11px);
  display:flex; align-items:center; justify-content:center;
}
.ph::after{
  content:attr(data-label);
  font-family:var(--sans); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--ink-faint); padding:6px 10px; text-align:center; line-height:1.5;
  border:1px solid var(--line); border-radius:99px; background:rgba(250,246,236,.6);
}

/* ---------- Utilidades ---------- */
.divider-dot{ display:inline-block; width:4px; height:4px; border-radius:50%; background:currentColor; opacity:.5; vertical-align:middle; }
.hr-leaf{ display:flex; align-items:center; gap:14px; color:var(--ink-faint); }
.hr-leaf::before, .hr-leaf::after{ content:""; flex:1; height:1px; background:var(--line); }

.sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

::selection{ background:var(--sage-2); color:var(--forest); }


/* ====================== CONCEPTO A — SECCIONES ====================== */
html{ scroll-behavior:smooth; }
body{ background:var(--bone); }

/* página centrada, ancho de lectura cómodo en móvil y escritorio */
.page{ max-width:var(--maxw); margin:0 auto; background:var(--bone); overflow-x:clip;
  box-shadow:0 0 80px rgba(43,42,34,.08); position:relative; }

/* paper texture sutil */
.page::before{ content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.5;
  background-image:radial-gradient(circle at 20% 10%, rgba(196,154,94,.05), transparent 60%),
                   radial-gradient(circle at 85% 80%, rgba(88,104,67,.05), transparent 55%); }

/* ---------- barra superior ---------- */
.topbar{ position:fixed; top:0; left:50%; transform:translateX(-50%);
  width:100%; max-width:var(--maxw); z-index:60; display:flex; align-items:center;
  justify-content:space-between; padding:14px var(--pad);
  transition:background .35s var(--ease), padding .35s var(--ease), box-shadow .35s var(--ease); }
.topbar.solid{ background:rgba(243,237,224,.92); backdrop-filter:blur(10px);
  box-shadow:0 1px 0 var(--line); padding-top:11px; padding-bottom:11px; }
.mono{ font-family:var(--serif); font-size:19px; letter-spacing:.04em; color:var(--paper); white-space:nowrap;
  transition:color .35s var(--ease); }
.topbar.solid .mono{ color:var(--forest); }
.menu-btn{ appearance:none; border:none; background:transparent; cursor:pointer;
  display:flex; flex-direction:column; gap:5px; padding:8px; }
.menu-btn span{ width:24px; height:1.5px; background:var(--paper); transition:background .35s var(--ease); }
.topbar.solid .menu-btn span{ background:var(--forest); }

/* overlay menú */
.nav{ position:fixed; inset:0; z-index:80; background:var(--forest);
  display:flex; flex-direction:column; justify-content:center; padding:0 12vw;
  opacity:0; visibility:hidden; transition:opacity .4s var(--ease), visibility .4s; }
.nav.open{ opacity:1; visibility:visible; }
.nav a{ font-family:var(--serif); font-size:clamp(28px,9vw,40px); color:var(--paper);
  text-decoration:none; padding:9px 0; display:flex; align-items:baseline; gap:14px;
  opacity:.92; transition:opacity .2s, padding-left .25s var(--ease); }
.nav a:hover{ opacity:1; padding-left:8px; }
.nav a .n{ font-size:13px; font-family:var(--sans); color:var(--sage-2); letter-spacing:.1em; }
.nav-close{ position:absolute; top:16px; right:var(--pad); background:transparent; border:none;
  color:var(--paper); font-size:30px; cursor:pointer; line-height:1; padding:8px; }
.nav-foot{ position:absolute; bottom:32px; left:12vw; color:var(--sage-2); font-size:12px; letter-spacing:.2em; text-transform:uppercase; }

/* ---------- sobre / intro ---------- */
.seal{ position:fixed; inset:0; z-index:120; background:var(--forest);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:0 32px; cursor:pointer;
  transition:opacity .9s var(--ease), visibility .9s; }
.seal.gone{ opacity:0; visibility:hidden; }
.seal .ring{ width:128px; height:128px; border:1px solid var(--line-light); border-radius:50%;
  display:flex; align-items:center; justify-content:center; margin-bottom:30px;
  animation:breathe 3.4s ease-in-out infinite; }
.seal .ring .inner{ width:96px; height:96px; border:1px solid rgba(196,154,94,.5); border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:30px; color:var(--gold); }
@keyframes breathe{ 50%{ transform:scale(1.05); } }
.seal .eyebrow{ color:var(--sage-2); margin-bottom:14px; }
.seal h2{ color:var(--paper); font-size:clamp(30px,8.5vw,42px); font-weight:400; white-space:nowrap; }
.seal .tap{ margin-top:42px; color:var(--paper); font-size:12px; letter-spacing:.3em; text-transform:uppercase;
  opacity:.7; animation:pulse 2.2s ease-in-out infinite; }
@keyframes pulse{ 50%{ opacity:.3; } }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:100svh; display:flex; flex-direction:column;
  justify-content:flex-end; color:var(--paper); overflow:hidden; }
.hero .bg{ position:absolute; inset:0; background:url("../img/hero.jpg") center 46%/cover no-repeat; }
.hero .bg::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(24,30,20,.5) 0%, rgba(24,30,20,.26) 30%, rgba(24,30,20,.5) 60%, rgba(18,24,15,.9) 100%); }
.hero .inner{ position:relative; z-index:2; padding:0 var(--pad) clamp(40px,10vh,76px); text-align:center; }
.hero .eyebrow{ color:rgba(250,246,236,.85); margin-bottom:20px; }
.hero .names{ font-size:clamp(58px,21vw,104px); line-height:.9; font-weight:500; letter-spacing:-.02em; }
.hero .names .amp{ display:block; font-size:.42em; margin:.08em 0; color:var(--gold); font-weight:400; }
.hero .meta{ margin-top:24px; display:flex; flex-direction:column; gap:7px; align-items:center; }
.hero .date{ font-family:var(--sans); font-weight:600; letter-spacing:.34em; font-size:14px; text-transform:uppercase; white-space:nowrap; }
.hero .place{ font-family:var(--serif); font-style:italic; font-size:18px; opacity:.92; }
.hero .cue{ margin-top:30px; display:inline-flex; flex-direction:column; align-items:center; gap:8px;
  font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; opacity:.8; }
.hero .cue .ln{ width:1px; height:34px; background:linear-gradient(var(--paper),transparent); animation:drop 2s ease-in-out infinite; }
@keyframes drop{ 0%,100%{ transform:scaleY(.6); opacity:.4; } 50%{ transform:scaleY(1); opacity:1; } }

/* ---------- secciones genéricas ---------- */
.section{ position:relative; z-index:1; padding:clamp(64px,13vh,104px) var(--pad); }
.section--green{ background:var(--forest); color:var(--paper); }
.section--bone2{ background:var(--bone-2); }
.s-head{ text-align:center; margin-bottom:40px; }
.s-head .eyebrow{ color:var(--olive); margin-bottom:14px; display:block; }
.section--green .s-head .eyebrow{ color:var(--sage-2); }
.s-head h2{ font-size:clamp(34px,10vw,46px); font-weight:500; }
.s-head .sub{ margin-top:12px; color:var(--ink-soft); font-family:var(--serif); font-style:italic; font-size:19px; }
.section--green .s-head .sub{ color:var(--sage-2); }
.s-num{ font-family:var(--serif); font-style:italic; font-size:15px; color:var(--gold); display:block; margin-bottom:6px; }

/* ---------- cuenta atrás ---------- */
.count{ display:flex; justify-content:center; gap:clamp(10px,4vw,22px); margin:0 auto; }
.count .u{ text-align:center; min-width:58px; }
.count .num{ font-family:var(--serif); font-size:clamp(44px,15vw,68px); line-height:1; font-weight:500; }
.count .lab{ margin-top:8px; font-size:10.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); }
.section--green .count .lab{ color:var(--sage-2); }
.count .sep{ font-family:var(--serif); font-size:clamp(36px,12vw,56px); color:var(--gold); align-self:flex-start; line-height:1.1; opacity:.6; }
.count-note{ text-align:center; margin-top:30px; font-family:var(--serif); font-style:italic; font-size:18px; color:var(--ink-soft); }
.section--green .count-note{ color:var(--sage-2); }

/* ---------- historia (timeline vertical) ---------- */
.story-intro{ text-align:center; max-width:34ch; margin:0 auto 46px; color:var(--ink-soft); font-size:17px; }
.tl{ position:relative; padding-left:30px; }
.tl::before{ content:""; position:absolute; left:7px; top:6px; bottom:6px; width:1px; background:var(--bone-3); }
.moment{ position:relative; padding-bottom:46px; }
.moment:last-child{ padding-bottom:0; }
.moment .dot{ position:absolute; left:-30px; top:5px; width:15px; height:15px; border-radius:50%;
  background:var(--bone); border:1px solid var(--olive); display:flex; align-items:center; justify-content:center; }
.moment .dot::after{ content:""; width:5px; height:5px; border-radius:50%; background:var(--olive); }
.moment .yr{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.16em; color:var(--clay); text-transform:uppercase; }
.moment h3{ font-size:27px; margin:5px 0 8px; font-weight:500; }
.moment p{ margin:0 0 16px; color:var(--ink-soft); font-size:15.5px; }
.moment .ph{ width:100%; aspect-ratio:4/3; border-radius:var(--radius); }

/* ---------- cuándo y dónde ---------- */
.where{ background:var(--paper); border:1px solid var(--bone-3); border-radius:var(--radius); overflow:hidden; }
.where .ph, .where img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.where .body{ padding:28px 24px 30px; text-align:center; }
.where .big{ font-family:var(--serif); font-size:46px; font-weight:500; line-height:1; }
.where .big small{ display:block; font-size:15px; font-family:var(--sans); font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--clay); margin-top:12px; }
.where .name{ font-family:var(--serif); font-style:italic; font-size:23px; margin-top:18px; }
.where .addr{ color:var(--ink-soft); font-size:14.5px; margin-top:4px; }

/* ---------- programa del día ---------- */
.prog{ position:relative; }
.prog .ph-wide{ width:100%; aspect-ratio:16/9; border-radius:var(--radius); margin-bottom:34px; object-fit:cover; }
.step{ display:grid; grid-template-columns:64px 1fr; gap:18px; padding:20px 0; border-top:1px solid var(--line); }
.step:last-child{ border-bottom:1px solid var(--line); }
.step .t{ font-family:var(--serif); font-size:24px; color:var(--clay); font-weight:500; padding-top:2px; }
.step h3{ font-size:22px; font-weight:500; margin-bottom:4px; }
.step p{ margin:0; color:var(--ink-soft); font-size:14.5px; }

/* ---------- cómo llegar ---------- */
.map-wrap{ border:1px solid var(--bone-3); border-radius:var(--radius); overflow:hidden; }
.map-wrap iframe{ width:100%; height:240px; border:0; display:block; filter:saturate(.85) contrast(.97); }
.travel{ margin-top:22px; display:flex; flex-direction:column; gap:14px; }
.travel .row{ display:flex; gap:13px; align-items:flex-start; }
.travel .k{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--olive); min-width:84px; padding-top:2px; }
.travel .v{ font-size:15px; color:var(--ink-soft); }
.travel .v b{ color:var(--ink); font-weight:600; }

/* ---------- RSVP ---------- */
.rsvp-card{ background:var(--paper); color:var(--ink); border-radius:var(--radius); padding:30px 24px 32px; box-shadow:0 24px 60px rgba(20,26,16,.3); }
.rsvp-card .lead{ text-align:center; color:var(--ink-soft); margin:-6px 0 26px; font-size:15.5px; }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.hint{ font-size:12.5px; color:var(--ink-faint); margin-top:6px; }
.acc-extra{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.acc-extra.show{ max-height:820px; }
.chk-group{ display:flex; flex-wrap:wrap; gap:8px; }
.chk{ cursor:pointer; border:1px solid var(--bone-3); background:var(--paper); border-radius:99px; padding:9px 15px; font-size:14px; font-weight:500; color:var(--ink-soft); user-select:none; transition:all .2s var(--ease); }
.chk:hover{ border-color:var(--olive); color:var(--ink); }
.chk[aria-pressed="true"]{ background:var(--olive); border-color:var(--olive); color:var(--paper); }
.rsvp-done{ text-align:center; padding:14px 0; }
.rsvp-done .tick{ width:62px; height:62px; border-radius:50%; border:1px solid var(--olive); margin:0 auto 18px; display:flex; align-items:center; justify-content:center; color:var(--olive); font-size:28px; }
.rsvp-done h3{ font-size:30px; margin-bottom:8px; }
.rsvp-done p{ color:var(--ink-soft); margin:0 auto; max-width:30ch; }
.rsvp-done .edit{ margin-top:18px; background:none; border:none; color:var(--olive); text-decoration:underline; cursor:pointer; font-size:13px; letter-spacing:.04em; }

/* ---------- selector de cantidad (stepper) ---------- */
.stepper{ display:inline-flex; align-items:center; gap:0; border:1px solid var(--bone-3); border-radius:var(--radius); overflow:hidden; background:var(--paper); }
.stepper .step-btn{ appearance:none; border:none; background:var(--bone-2); color:var(--forest); width:46px; height:46px; font-size:22px; line-height:1; cursor:pointer; transition:background .2s var(--ease); }
.stepper .step-btn:hover:not(:disabled){ background:var(--bone-3); }
.stepper .step-btn:disabled{ opacity:.35; cursor:not-allowed; }
.stepper .step-val{ min-width:54px; text-align:center; font-family:var(--serif); font-size:26px; font-weight:500; }

/* ---------- bloque de asistente ---------- */
.attendee{ background:var(--paper); border:1px solid var(--bone-3); border-radius:var(--radius); padding:16px; margin-bottom:12px; animation:rise .35s var(--ease) both; }
.attendee .who{ font-family:var(--sans); font-weight:600; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--olive); margin-bottom:10px; }
.attendee .input{ margin-bottom:11px; }
.attendee .diet-label{ font-size:12px; color:var(--ink-faint); margin-bottom:7px; }

/* ---------- canciones ---------- */
.songs-list{ display:flex; flex-direction:column; gap:10px; margin-top:8px; max-height:340px; overflow-y:auto; padding-right:4px; }
.songs-list::-webkit-scrollbar{ width:6px; }
.songs-list::-webkit-scrollbar-thumb{ background:var(--bone-3); border-radius:99px; }
.songs-empty{ text-align:center; color:var(--ink-faint); font-family:var(--serif); font-style:italic; font-size:17px; padding:18px 0; }
.song{ display:flex; align-items:center; gap:13px; background:var(--paper); border:1px solid var(--bone-3);
  border-radius:var(--radius); padding:12px 15px; animation:rise .4s var(--ease) both; }
@keyframes rise{ from{ opacity:0; transform:translateY(8px); } }
.song .ico{ width:30px; height:30px; border-radius:50%; background:var(--forest); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:14px; flex:none; }
.song .tx{ font-size:15px; line-height:1.3; }
.song .tx small{ display:block; color:var(--ink-faint); font-size:12.5px; }
.song-form{ display:flex; gap:9px; margin-top:18px; }
.song-form .input{ flex:1; }

/* ---------- regalos ---------- */
.gift{ text-align:center; max-width:38ch; margin:0 auto; }
.gift p{ color:var(--ink-soft); font-size:16px; }
.gift-card{ margin-top:26px; background:var(--paper); border:1px solid var(--bone-3); border-radius:var(--radius); padding:22px; }
.copy-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:13px 0; border-bottom:1px dashed var(--line); }
.copy-row:last-child{ border-bottom:none; }
.copy-row .k{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-faint); }
.copy-row .v{ font-family:var(--serif); font-size:20px; letter-spacing:.02em; }
.copy-btn{ appearance:none; border:1px solid var(--bone-3); background:var(--bone); border-radius:99px; padding:7px 14px; font-size:12px; font-weight:600; letter-spacing:.06em; cursor:pointer; color:var(--olive); transition:all .2s; white-space:nowrap; }
.copy-btn:hover{ border-color:var(--olive); }
.copy-btn.ok{ background:var(--forest); color:var(--paper); border-color:var(--forest); }

/* ---------- FAQ ---------- */
.faq{ border-top:1px solid var(--line); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{ width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:20px 2px;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:var(--serif); font-size:21px; color:var(--ink); }
.faq-q .pm{ flex:none; width:22px; height:22px; position:relative; }
.faq-q .pm::before, .faq-q .pm::after{ content:""; position:absolute; background:var(--olive); transition:transform .3s var(--ease); }
.faq-q .pm::before{ top:10px; left:2px; right:2px; height:1.5px; }
.faq-q .pm::after{ left:10px; top:2px; bottom:2px; width:1.5px; }
.faq-item.open .pm::after{ transform:scaleY(0); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-a .inner{ padding:0 2px 22px; color:var(--ink-soft); font-size:15.5px; }

/* ---------- footer ---------- */
.foot{ background:var(--forest); color:var(--paper); text-align:center; padding:64px var(--pad) 48px; }
.foot .m{ font-family:var(--serif); font-size:46px; }
.foot .amp{ color:var(--gold); }
.foot .d{ margin-top:14px; font-size:12px; letter-spacing:.34em; text-transform:uppercase; color:var(--sage-2); }
.foot .ln{ width:40px; height:1px; background:var(--line-light); margin:26px auto; }
.foot .note{ font-family:var(--serif); font-style:italic; font-size:19px; color:rgba(250,246,236,.86); }
.foot .back{ margin-top:34px; display:inline-block; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--sage-2); text-decoration:none; border-bottom:1px solid var(--line-light); padding-bottom:3px; }

/* reveal on scroll */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.in{ opacity:1; transform:none; }

@media(min-width:520px){
  .map-wrap iframe{ height:280px; }
}
