/* Tu Boda — Italian Old Money system
   Villa italiana / Lago di Como / sartoria classica.
   Loaded last so it upgrades presentation without touching PHP behavior. */
:root{
  --iom-nero:#11130f;
  --iom-nero-2:#181b16;
  --iom-bosco:#24352b;
  --iom-bosco-2:#314637;
  --iom-olive:#667052;
  --iom-sage:#939a7c;
  --iom-parchment:#efe9dc;
  --iom-ivory:#faf7ef;
  --iom-cream:#f4efe3;
  --iom-cognac:#8b6042;
  --iom-burgundy:#5a3134;
  --iom-gold:#b49a65;
  --iom-gold-soft:#d1c09a;
  --iom-ink:#211f19;
  --iom-muted:#756f63;
  --iom-line:rgba(62,56,45,.14);
  --iom-line-strong:rgba(62,56,45,.24);
  --iom-shadow:0 30px 90px rgba(28,31,24,.10);
  --iom-serif:"Libre Caslon Display","Cormorant Garamond",Georgia,"Times New Roman",serif;
  --iom-sans:"DM Sans",Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --iom-ease:cubic-bezier(.16,1,.3,1);
}

html{accent-color:var(--iom-bosco)}
body.iom{
  --accent:var(--iom-bosco);
  --accent-soft:rgba(36,53,43,.10);
  --bg:var(--iom-parchment);
  --bg-2:var(--iom-cream);
  --paper:var(--iom-ivory);
  --paper-2:#f6f1e7;
  --paper-3:#e9e1d2;
  --text:var(--iom-ink);
  --ink:var(--iom-ink);
  --ink-2:#4b473f;
  --muted:var(--iom-muted);
  --faint:#a09889;
  --line:var(--iom-line);
  --line-strong:var(--iom-line-strong);
  --dark:var(--iom-nero);
  --wine:var(--iom-burgundy);
  --wine-deep:#3f2325;
  --rose:#b68f7a;
  --rose-2:#ded0bc;
  --blush:#eee5d7;
  --champagne:var(--iom-gold-soft);
  --warm:#ebe2d3;
  --warm-2:#dfd3c0;
  --night:var(--iom-nero);
  --night-2:var(--iom-nero-2);
  --success:#596c50;
  --danger:#8a4d46;
  color:var(--iom-ink);
  font-family:var(--iom-sans);
  background:var(--iom-parchment);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body.iom::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:99999;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
}
body.iom a,body.iom button,body.iom input,body.iom select,body.iom textarea{font-family:inherit}
body.iom ::selection{background:rgba(180,154,101,.30);color:var(--iom-ink)}
body.iom :focus-visible{outline:2px solid var(--iom-gold);outline-offset:3px}

/* Common editorial language */
body.iom h1,body.iom h2,body.iom h3,body.iom .form-title,
body.iom .hero h1,body.iom .hero .title,body.iom .rail h1,
body.iom .paper h1,body.iom .card h1{font-family:var(--iom-serif);font-weight:400;letter-spacing:-.035em}
body.iom .eyebrow,body.iom .section-label,body.iom .rail-eyebrow,
body.iom .sidebar-group,body.iom .hero-kicker{
  color:var(--iom-cognac);
  letter-spacing:.14em;
  text-transform:uppercase;
}
body.iom hr{border:0;border-top:1px solid var(--iom-line)}

/* Controls */
body.iom input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
body.iom select,body.iom textarea{
  background:rgba(250,247,239,.92)!important;
  color:var(--iom-ink)!important;
  border-color:var(--iom-line-strong)!important;
  box-shadow:none!important;
  transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,transform .25s ease;
}
body.iom input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):focus,
body.iom select:focus,body.iom textarea:focus{
  border-color:rgba(139,96,66,.65)!important;
  background:var(--iom-ivory)!important;
  box-shadow:0 0 0 4px rgba(180,154,101,.11)!important;
}
body.iom input::placeholder,body.iom textarea::placeholder{color:#9b9486!important}

body.iom .btn,body.iom button.primary,body.iom .primary-action,
body.iom .publish-button,body.iom .btn.primary,
body.iom a.btn{
  border-radius:999px;
  transition:transform .28s var(--iom-ease),background .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease;
}
body.iom .btn:hover,body.iom button.primary:hover,body.iom .primary-action:hover,
body.iom .publish-button:hover,body.iom .btn.primary:hover,body.iom a.btn:hover{transform:translateY(-2px)}

/* Auth — hotel stationery meets private-club login */
body.page-login,body.page-registro{background:var(--iom-nero);color:var(--iom-ink)}
body.page-login .page,body.page-registro .page{background:var(--iom-nero)}
body.page-login .shell,body.page-registro .shell{
  box-shadow:0 42px 120px rgba(0,0,0,.24)!important;
  border:1px solid rgba(180,154,101,.20)!important;
  background:var(--iom-ivory)!important;
}
body.page-login .visual,body.page-registro .visual{
  background:
    radial-gradient(circle at 18% 14%,rgba(180,154,101,.15),transparent 30%),
    linear-gradient(145deg,var(--iom-bosco),#19241d 68%,#141913)!important;
  color:var(--iom-ivory)!important;
}
body.page-login .visual::after,body.page-registro .visual::after{
  content:"";position:absolute;inset:18px;border:1px solid rgba(209,192,154,.20);border-radius:inherit;pointer-events:none
}
body.page-login .brand-mark,body.page-registro .brand-mark{
  border-color:rgba(209,192,154,.5)!important;color:var(--iom-gold-soft)!important
}
body.page-login .visual .eyebrow,body.page-registro .visual .eyebrow{color:var(--iom-gold-soft)!important}
body.page-login .visual p,body.page-registro .visual p{color:rgba(250,247,239,.68)!important}
body.page-login .form-side,body.page-registro .form-side{background:var(--iom-ivory)!important}
body.page-login .btn,body.page-registro .btn{
  background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important;
  box-shadow:0 12px 32px rgba(36,53,43,.13)!important
}
body.page-login .btn:hover,body.page-registro .btn:hover{background:var(--iom-bosco-2)!important}
body.page-login .register a,body.page-registro .login a,body.page-registro .terms a{color:var(--iom-cognac)!important}

/* App shells — dashboard, confirmations */
body.page-dashboard,body.page-confirmaciones{background:var(--iom-parchment)!important}
body.page-dashboard .sidebar,body.page-confirmaciones .sidebar{
  background:linear-gradient(180deg,var(--iom-bosco),#1d2a22)!important;
  color:var(--iom-ivory)!important;
  border-right:1px solid rgba(209,192,154,.14)!important;
}
body.page-dashboard .sidebar .brand-mark,body.page-confirmaciones .sidebar .brand-mark{
  color:var(--iom-gold-soft)!important;border-color:rgba(209,192,154,.44)!important
}
body.page-dashboard .sidebar .brand-copy span,body.page-confirmaciones .sidebar .brand-copy span,
body.page-dashboard .sidebar-event span,body.page-confirmaciones .sidebar-event span{color:rgba(250,247,239,.48)!important}
body.page-dashboard .nav a,body.page-confirmaciones .nav a{color:rgba(250,247,239,.58)!important}
body.page-dashboard .nav a:hover,body.page-confirmaciones .nav a:hover{color:var(--iom-ivory)!important;background:rgba(250,247,239,.06)!important}
body.page-dashboard .nav a.active,body.page-confirmaciones .nav a.active{
  color:var(--iom-ivory)!important;background:rgba(180,154,101,.14)!important;
  box-shadow:inset 2px 0 0 var(--iom-gold)!important
}
body.page-dashboard .main,body.page-confirmaciones .main{background:var(--iom-parchment)!important}
body.page-dashboard .card,body.page-dashboard .stat,body.page-dashboard .quick-card,
body.page-dashboard .event-card,body.page-dashboard .publication-strip,
body.page-confirmaciones .card,body.page-confirmaciones .stat,body.page-confirmaciones .table-wrap,
body.page-confirmaciones .toolbar,body.page-confirmaciones .drawer-box{
  background:rgba(250,247,239,.90)!important;
  border-color:var(--iom-line)!important;
  box-shadow:0 18px 55px rgba(40,43,32,.055)!important;
}
body.page-dashboard .quick-card:hover{border-color:rgba(180,154,101,.45)!important;box-shadow:0 24px 65px rgba(40,43,32,.09)!important}
body.page-dashboard .publish-button,body.page-confirmaciones .btn.primary{
  background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important
}
body.page-dashboard .mobile-nav,body.page-confirmaciones .mobile-nav{
  background:rgba(250,247,239,.96)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(20px)
}
body.page-dashboard .mobile-nav a.active,body.page-confirmaciones .mobile-nav a.active{color:var(--iom-bosco)!important}

/* Wizard */
body.page-crear-boda{background:var(--iom-parchment)!important}
body.page-crear-boda .topbar{background:rgba(250,247,239,.88)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(18px)}
body.page-crear-boda .rail{
  background:linear-gradient(155deg,var(--iom-bosco),#1c2820)!important;color:var(--iom-ivory)!important;
  border-color:rgba(180,154,101,.18)!important
}
body.page-crear-boda .rail-copy,body.page-crear-boda .rail-step span{color:rgba(250,247,239,.58)!important}
body.page-crear-boda .rail-step.active{background:rgba(180,154,101,.12)!important;border-color:rgba(209,192,154,.25)!important}
body.page-crear-boda .rail-step.active .rail-step-number{background:var(--iom-gold)!important;color:var(--iom-nero)!important}
body.page-crear-boda .wizard-step,body.page-crear-boda .summary-card,
body.page-crear-boda .cover-empty{background:var(--iom-ivory)!important;border-color:var(--iom-line)!important;box-shadow:var(--iom-shadow)!important}
body.page-crear-boda .nav-btn.primary{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important}
body.page-crear-boda .nav-btn:not(.primary){background:transparent!important;border-color:var(--iom-line-strong)!important;color:var(--iom-ink)!important}

/* Editor */
body.page-editar-boda{background:var(--iom-parchment)!important}
body.page-editar-boda .topbar{
  background:rgba(250,247,239,.94)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(18px)
}
body.page-editar-boda .brand-mark{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important}
body.page-editar-boda .status-dot.published{background:var(--iom-olive)!important}
body.page-editar-boda .btn.primary{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important}
body.page-editar-boda .btn.subtle{background:transparent!important;border-color:var(--iom-line-strong)!important;color:var(--iom-ink)!important}
body.page-editar-boda .sidebar{
  background:rgba(250,247,239,.72)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(12px)
}
body.page-editar-boda .sidebar a.active,body.page-editar-boda .sidebar a:hover{
  background:rgba(36,53,43,.08)!important;color:var(--iom-bosco)!important
}
body.page-editar-boda .sidebar a.active{box-shadow:inset 2px 0 0 var(--iom-gold)!important}
body.page-editar-boda .card,body.page-editar-boda .subsection,
body.page-editar-boda .file-drop,body.page-editar-boda .gallery-item{
  background:rgba(250,247,239,.92)!important;border-color:var(--iom-line)!important;box-shadow:0 16px 55px rgba(32,35,27,.05)!important
}
body.page-editar-boda .card-head{border-color:var(--iom-line)!important}
body.page-editar-boda .switch input:checked + span,body.page-editar-boda .toggle input:checked + span{background:var(--iom-bosco)!important}

/* Collaborative guest album */
body.page-fotos-invitados{
  --accent:var(--iom-bosco)!important;
  --accent-muted:var(--iom-sage)!important;
  --romance:var(--iom-cognac)!important;--romance-deep:var(--iom-burgundy)!important;
  --rose:#b99a84!important;--blush:#eee4d6!important;--champagne:var(--iom-gold-soft)!important;
  --ink:var(--iom-ink)!important;--ink-2:#4b473f!important;--muted:var(--iom-muted)!important;
  --paper:var(--iom-ivory)!important;--paper-2:var(--iom-cream)!important;--warm:#e9e0d2!important;
  --night:var(--iom-nero)!important;--night-2:#171a15!important;
  background:var(--iom-ivory)!important;
}
body.page-fotos-invitados .appbar{background:rgba(250,247,239,.91)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(22px)}
body.page-fotos-invitados .app-brand-mark{color:var(--iom-burgundy)!important}
body.page-fotos-invitados .primary-action{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important}
body.page-fotos-invitados .hero{background:
  radial-gradient(circle at 12% 18%,rgba(180,154,101,.13),transparent 30%),
  linear-gradient(180deg,var(--iom-ivory),#efe7d8)!important}
body.page-fotos-invitados .hero-aurora{opacity:.28!important;filter:saturate(.45)!important}
body.page-fotos-invitados .feature-card,body.page-fotos-invitados .photo,
body.page-fotos-invitados .modal-card{border-color:var(--iom-line)!important;box-shadow:0 24px 70px rgba(41,44,34,.08)!important}

/* Album admin */
body.page-album-fotos{
  --accent:var(--iom-bosco)!important;--wine:var(--iom-burgundy)!important;--wine-deep:#402326!important;
  --rose:#ad8b75!important;--rose-2:#dfd2c0!important;--blush:#eee5d8!important;--champagne:var(--iom-gold-soft)!important;
  --ink:var(--iom-ink)!important;--ink-2:#4b473f!important;--muted:var(--iom-muted)!important;
  --paper:var(--iom-ivory)!important;--paper-2:var(--iom-cream)!important;--warm:#e8ded0!important;
  --night:var(--iom-nero)!important;--night-2:#171a15!important;background:var(--iom-parchment)!important
}
body.page-album-fotos .topbar,body.page-album-fotos .album-subnav{
  background:rgba(250,247,239,.93)!important;border-color:var(--iom-line)!important;backdrop-filter:blur(20px)
}
body.page-album-fotos .brand-mark{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important}
body.page-album-fotos .btn{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important}
body.page-album-fotos .hero,body.page-album-fotos .setting,body.page-album-fotos .moment,
body.page-album-fotos .photo,body.page-album-fotos .stat{border-color:var(--iom-line)!important;box-shadow:0 18px 56px rgba(34,37,29,.06)!important}

/* Account, recovery, legal */
body.page-mi-cuenta,body.page-recuperar-clave,body.page-restablecer-clave,
body.page-privacidad,body.page-terminos{background:var(--iom-parchment)!important;color:var(--iom-ink)!important}
body.page-mi-cuenta .wrap,body.page-privacidad .wrap,body.page-terminos .wrap{max-width:1120px!important}
body.page-mi-cuenta .top,body.page-privacidad .top,body.page-terminos .top{border-color:var(--iom-line)!important}
body.page-mi-cuenta .brand,body.page-privacidad .brand,body.page-terminos .brand,
body.page-recuperar-clave .brand,body.page-restablecer-clave .brand{color:var(--iom-bosco)!important}
body.page-mi-cuenta .hero{background:linear-gradient(145deg,var(--iom-bosco),#1b2820)!important;color:var(--iom-ivory)!important;border-color:rgba(180,154,101,.18)!important}
body.page-mi-cuenta .hero p{color:rgba(250,247,239,.64)!important}
body.page-mi-cuenta .card,body.page-recuperar-clave .card,body.page-restablecer-clave .card,
body.page-privacidad .paper,body.page-terminos .paper{
  background:rgba(250,247,239,.94)!important;border-color:var(--iom-line)!important;box-shadow:var(--iom-shadow)!important
}
body.page-recuperar-clave .mark,body.page-restablecer-clave .mark{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important}
body.page-recuperar-clave button,body.page-restablecer-clave button,body.page-mi-cuenta button:not(.danger){background:var(--iom-bosco)!important;color:var(--iom-ivory)!important}
body.page-mi-cuenta .danger{background:#6b3634!important;color:#fff!important}
body.page-privacidad .notice,body.page-terminos .notice{background:#f1eadb!important;border-color:rgba(180,154,101,.30)!important}

/* Public invitation: preserve its dynamic structure, elevate its palette. */
body.page-ver-invitacion{
  --accent:var(--iom-bosco)!important;
  --accent-muted:var(--iom-sage)!important;
  --ink:var(--iom-ink)!important;--ink-soft:#4d483e!important;--muted:var(--iom-muted)!important;
  --paper:var(--iom-ivory)!important;--paper-2:var(--iom-cream)!important;--warm:#e9dfd0!important;
  --wine:var(--iom-burgundy)!important;--rose:#b8957f!important;--gold:var(--iom-gold)!important;
}
body.page-ver-invitacion .owner-bar{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:rgba(180,154,101,.24)!important}
body.page-ver-invitacion .hero-media{filter:saturate(.70) sepia(.08)!important}
body.page-ver-invitacion .hero::after{background:linear-gradient(180deg,rgba(17,19,15,.10),rgba(17,19,15,.58))!important}
body.page-ver-invitacion .hero-frame{border-color:rgba(209,192,154,.45)!important}
body.page-ver-invitacion .section-label{color:var(--iom-cognac)!important}
body.page-ver-invitacion .paper{background:var(--iom-ivory)!important}
body.page-ver-invitacion .btn,body.page-ver-invitacion button[type="submit"]{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important;border-color:var(--iom-bosco)!important}

/* Index palette alignment — same cinematic level, Italian-old-money color story. */
body.page-index{
  --color-void:var(--iom-nero)!important;
  --color-bone-white:#f7f2e7!important;
  --color-ash-gray:#8f8a7e!important;
  --color-silver-mist:#c9c1b2!important;
  --color-electric-iris:var(--iom-bosco)!important;
  --color-saffron-spark:var(--iom-gold)!important;
  --color-deep-verdant:var(--iom-cognac)!important;
  --paper:var(--iom-nero)!important;--paper2:var(--iom-nero)!important;--paper3:var(--iom-nero)!important;
  --ink:#f7f2e7!important;--soft:#c9c1b2!important;--muted:#8f8a7e!important;
  --wine:var(--iom-bosco)!important;--wine2:var(--iom-bosco-2)!important;
  --rose:var(--iom-gold-soft)!important;--blush:#d9cbb5!important;--gold:var(--iom-gold)!important;
  --night:var(--iom-nero)!important;--night2:var(--iom-nero-2)!important;
  background:var(--iom-nero)!important;color:#f7f2e7!important;
}
body.page-index .mobile-menu,body.page-index .work-bg,body.page-index .immersion-stage,
body.page-index .immersion-screen{background:var(--iom-nero)!important}
body.page-index .kinetic{background:var(--iom-gold-soft)!important;color:#211f19!important}
body.page-index .nav.light{background:rgba(250,247,239,.97)!important;color:var(--iom-ink)!important;border-color:var(--iom-line)!important}
body.page-index .btn.dark{background:var(--iom-bosco)!important;color:var(--iom-ivory)!important}
body.page-index .promise-main h2 em,body.page-index .case-copy h3 em,body.page-index .device-copy em{color:var(--iom-gold-soft)!important}
body.page-index .work-bg img{filter:saturate(.48) sepia(.08) brightness(.24)!important}
body.page-index .editor-mock,body.page-index .rsvp-mock,body.page-index .album-board{background:var(--iom-ivory)!important;color:var(--iom-ink)!important}

/* motion layer */
body.iom.iom-ready > .page,
body.iom.iom-ready > main,
body.iom.iom-ready > .app{
  animation:iomPageIn .72s var(--iom-ease) both;
}
@keyframes iomPageIn{from{opacity:.01;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){body.iom.iom-ready > .page,body.iom.iom-ready > main,body.iom.iom-ready > .app{animation:none}}

@media (max-width:900px){
  body.iom::before{opacity:.025}
  body.page-login .visual::after,body.page-registro .visual::after{display:none}
  body.page-dashboard .sidebar,body.page-confirmaciones .sidebar{background:var(--iom-bosco)!important}
  body.page-crear-boda .rail{background:var(--iom-bosco)!important}
}
