/* Claudia Pinedo Spa Capilar — static build */
/* 1. Base reset (Hello theme) */
html{line-height:1.15;-webkit-text-size-adjust:100%}*,:after,:before{box-sizing:border-box}body{background-color:#fff;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-size:1rem;font-weight:400;line-height:1.5;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}h1,h2,h3,h4,h5,h6{color:inherit;font-family:inherit;font-weight:500;line-height:1.2;margin-block-end:1rem;margin-block-start:.5rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-block-end:.9rem;margin-block-start:0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace;font-size:1em;white-space:pre-wrap}a{background-color:transparent;color:#c36;text-decoration:none}a:active,a:hover{color:#336}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}abbr[title]{border-block-end:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;height:auto;max-width:100%}details{display:block}summary{display:list-item}figcaption{color:#333;font-size:16px;font-style:italic;font-weight:400;line-height:1.4}[hidden],template{display:none}@media print{*,:after,:before{background:transparent!important;box-shadow:none!important;color:#000!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap!important}blockquote,pre{-moz-column-break-inside:avoid;border:1px solid #ccc;break-inside:avoid}thead{display:table-header-group}img,tr{-moz-column-break-inside:avoid;break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{-moz-column-break-after:avoid;break-after:avoid}}label{display:inline-block;line-height:1;vertical-align:middle}button,input,optgroup,select,textarea{font-family:inherit;font-size:1rem;line-height:1.5;margin:0}input[type=date],input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{border:1px solid #666;border-radius:3px;padding:.5rem 1rem;transition:all .3s;width:100%}input[type=date]:focus,input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,select:focus,textarea:focus{border-color:#333}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;width:auto}[type=button],[type=submit],button{background-color:transparent;border:1px solid #c36;border-radius:3px;color:#c36;display:inline-block;font-size:1rem;font-weight:400;padding:.5rem 1rem;text-align:center;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}[type=button]:focus,[type=button]:hover,[type=submit]:focus,[type=submit]:hover,button:focus,button:hover{background-color:#c36;color:#fff;text-decoration:none}[type=button]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto;resize:vertical}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}select{display:block}table{background-color:transparent;border-collapse:collapse;border-spacing:0;font-size:.9em;margin-block-end:15px;width:100%}table td,table th{border:1px solid hsla(0,0%,50%,.502);line-height:1.5;padding:15px;vertical-align:top}table th{font-weight:700}table tfoot th,table thead th{font-size:1em}table caption+thead tr:first-child td,table caption+thead tr:first-child th,table colgroup+thead tr:first-child td,table colgroup+thead tr:first-child th,table thead:first-child tr:first-child td,table thead:first-child tr:first-child th{border-block-start:1px solid hsla(0,0%,50%,.502)}table tbody>tr:nth-child(odd)>td,table tbody>tr:nth-child(odd)>th{background-color:hsla(0,0%,50%,.071)}table tbody tr:hover>td,table tbody tr:hover>th{background-color:hsla(0,0%,50%,.102)}table tbody+tbody{border-block-start:2px solid hsla(0,0%,50%,.502)}@media(max-width:767px){table table{font-size:.8em}table table td,table table th{line-height:1.3;padding:7px}table table th{font-weight:400}}dd,dl,dt,li,ol,ul{background:transparent;border:0;font-size:100%;margin-block-end:0;margin-block-start:0;outline:0;vertical-align:baseline}[tabindex]:not([tabindex="-1"]):focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 4px #fff;outline:2px solid #000;outline-offset:2px}[tabindex]:not([tabindex="-1"]):focus:not(:focus-visible),a:focus:not(:focus-visible),button:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){box-shadow:none;outline:none}


/* ===== Elementor canvas wrapper (replica of the original boxed container) ===== */
.e-shell{display:flex;flex-direction:column;padding:10px;position:relative;width:100%;min-width:0}
.e-shell>.e-inner{display:flex;flex-direction:column;width:100%;max-width:min(100%,1140px);margin:0 auto;height:100%}
.e-shell>.e-inner>.e-widget{min-width:0}
.e-shell img{border:none;border-radius:0;box-shadow:none;height:auto;max-width:100%}
.e-shell a{box-shadow:none;text-decoration:none}

/* 2. Original design */
    @font-face {
      font-family: "Blackpast";
      src: url("../fonts/Blackpast-Regular.ttf") format("truetype");
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }

    :root {
      --brand-font: "Blackpast", "Outfit", system-ui, sans-serif;
      --paper: #f4efe6;
      --paper-2: #ebe3d6;
      --card: #f8f4ed;
      --ink: #2b261f;
      --soft: #6b6358;
      --gold: #9b7b3f;
      --gold-2: #b89555;
      --line: rgba(155, 123, 63, 0.28);
    }
    * { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; }
    body {
      font-family: "Outfit", system-ui, sans-serif;
      background: var(--paper);
      color: var(--ink);
      line-height: 1.65;
      font-weight: 300;
    }
    img { max-width: 100%; height: auto; display: block; }
    a { color: inherit; text-decoration: none; }
    .wrap { width: min(1100px, calc(100% - 40px)); margin-inline: auto; }
    .serif { font-family: "Cormorant Garamond", Georgia, serif; }
    .script { font-family: "Great Vibes", cursive; color: var(--gold); font-weight: 400; }
    .eyebrow {
      font-size: 0.72rem;
      letter-spacing: 0.32em;
      text-transform: uppercase;
      color: var(--gold);
    }
    h1, h2, h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; }
    h2 {
      font-family: var(--brand-font);
      font-size: clamp(1.8rem, 3.4vw, 2.8rem);
      line-height: 1.12;
      letter-spacing: 0.035em;
      text-transform: uppercase;
      color: var(--gold);
    }
    h3 { font-family: "Cormorant Garamond", Georgia, serif; font-weight: 500; }
    .frame { border: 1px solid var(--line); padding: 8px; }
    .frame-in { background: var(--card); padding: clamp(28px, 5vw, 56px); position: relative; overflow: hidden; }
    .btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 8px;
      border: 1px solid var(--gold); color: var(--gold);
      padding: 13px 24px; font-size: 0.78rem; letter-spacing: 0.16em;
      text-transform: uppercase; transition: .25s ease; background: transparent;
    }
    .btn:hover { background: var(--gold); color: var(--paper); }
    .btn.fill { background: var(--gold); color: var(--paper); }
    .btn.fill:hover { background: transparent; color: var(--gold); }

    header {
      position: fixed; inset: 0 0 auto; z-index: 50;
      background: rgba(244, 239, 230, 0.88);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--line);
    }
    .nav { height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
    .brand { text-align: center; line-height: 1.05; }
    .brand b { display: block; font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.15rem; font-weight: 500; letter-spacing: 0.18em; }
    .brand small { display: block; font-size: 0.62rem; letter-spacing: 0.34em; color: var(--gold); text-transform: uppercase; margin-top: 3px; }
    nav ul { display: flex; gap: 22px; list-style: none; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft); }
    nav a:hover { color: var(--gold); }
    .nav-cta { display: flex; gap: 8px; }
    .menu-btn { display: none; background: none; border: 0; font-size: 1.4rem; color: var(--ink); }

    .hero {
      min-height: 100vh; min-height: 100svh; padding: 120px 0 72px;
      display: grid; place-items: center;
      background: var(--paper);
    }
    .hero-box { width: min(820px, calc(100% - 40px)); text-align: center; }
    .hero h1 { font-size: clamp(2.6rem, 7vw, 5.4rem); letter-spacing: 0.06em; line-height: 0.95; margin: 10px 0 8px; }
    .hero h1 span { display: block; font-size: 0.38em; letter-spacing: 0.42em; color: var(--gold); margin-top: 10px; }
    .hero .lead {
      font-family: "Cormorant Garamond", Georgia, serif; font-style: italic;
      font-size: clamp(1.25rem, 2.4vw, 1.7rem); color: var(--soft);
      margin: 18px auto 28px; max-width: 28ch;
    }
    .hero-actions { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; }
    .hero-meta { display: flex; justify-content: center; gap: 34px; flex-wrap: wrap; margin-top: 36px; font-size: 0.82rem; color: var(--soft); }
    .hero-meta strong { display: block; color: var(--ink); font-weight: 500; }

    section { padding: 88px 0; }
    .intro { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 56px; align-items: center; }
    .intro p { color: var(--soft); margin-top: 16px; }
    .photos {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      grid-template-areas:
        "main main"
        "side1 side2";
      gap: 12px;
    }
    .photos img { width: 100%; height: 100%; object-fit: cover; min-height: 160px; }
    .photos .photo-main { grid-area: main; min-height: 420px; object-position: center; }
    .photos .photo-side-1 { grid-area: side1; }
    .photos .photo-side-2 { grid-area: side2; }

    .menu-block h2 { text-align: center; }
    .menu-block .script { display: block; text-align: center; font-size: 2.6rem; line-height: 1; margin-bottom: -6px; }
    .menu-lead { text-align: center; color: var(--soft); max-width: 40rem; margin: 12px auto 36px; }
    .tabs { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
    .tab {
      border: 1px solid var(--line); background: transparent; color: var(--soft);
      padding: 8px 14px; letter-spacing: 0.12em; text-transform: uppercase;
      font-size: 0.68rem; cursor: pointer; font-family: inherit;
    }
    .tab.on { background: var(--gold); color: var(--paper); border-color: var(--gold); }
    .letter { display: grid; }
    .row {
      display: grid; grid-template-columns: 1fr auto; gap: 12px 24px;
      padding: 18px 0; border-bottom: 1px dotted var(--line); align-items: baseline;
    }
    .row.hidden { display: none; }
    .row h3 { font-size: 1.28rem; color: var(--gold); letter-spacing: 0.04em; }
    .row .brand-line { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--soft); }
    .row p { grid-column: 1 / -1; color: var(--soft); font-size: 0.92rem; }
    .price { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.35rem; color: var(--gold); white-space: nowrap; }

    .bridal { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
    .bridal img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; }
    .note { margin-top: 22px; color: var(--soft); font-size: 0.9rem; }

    .gift { text-align: center; background: var(--paper); }

    .reviews { display: grid; grid-template-columns: 0.7fr 1.3fr; gap: 40px; }
    .score { font-size: 6rem; line-height: .8; color: var(--gold); }
    .cards { display: grid; gap: 12px; }
    .card { background: var(--card); border: 1px solid var(--line); padding: 22px 24px; }
    .card p { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.2rem; font-style: italic; }
    .card footer { margin-top: 12px; font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft); display: flex; justify-content: space-between; }

    .visit { background: #2b261f; color: var(--paper); }
    .visit h2 { color: var(--gold-2); }
    .visit .grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; }
    .map-embed { min-height: 420px; background: #1f1c19; }
    .map-embed iframe { width: 100%; height: 100%; min-height: 420px; border: 0; display: block; filter: grayscale(0.15) contrast(0.95); }
    .visit .muted { color: rgba(244,239,230,.68); margin: 12px 0 18px; }
    .visit .btn { color: var(--paper); border-color: var(--gold-2); }
    .visit .btn.fill { background: var(--gold-2); color: #2b261f; }
    .visit .btn:hover { background: var(--gold-2); color: #2b261f; }
    .visit .btn.fill:hover { background: transparent; color: var(--paper); }

    footer.site {
      padding: 28px 0 48px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap;
      font-size: 0.78rem; color: var(--soft); letter-spacing: 0.04em;
    }
    .zones { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
    .zones span {
      border: 1px solid var(--line); padding: 6px 12px; font-size: 0.75rem;
      letter-spacing: 0.08em; text-transform: uppercase; color: var(--soft);
    }
    .faq { display: grid; gap: 10px; max-width: 820px; margin: 0 auto; }
    details.faq-item {
      background: var(--card); border: 1px solid var(--line); padding: 16px 20px;
    }
    details.faq-item summary {
      cursor: pointer; font-family: "Cormorant Garamond", Georgia, serif;
      font-size: 1.25rem; color: var(--gold); list-style: none;
    }
    details.faq-item summary::-webkit-details-marker { display: none; }
    details.faq-item p { margin-top: 10px; color: var(--soft); font-size: 0.95rem; }

    /* Identidad Claudia Pinedo */
    .brand { display: inline-flex; align-items: center; justify-content: center; }
    /* Blackpast es una tipografía display: se limita a títulos grandes. */
    .brand-display {
      font-family: var(--brand-font);
      text-transform: uppercase;
      letter-spacing: 0.035em;
      font-weight: 400;
    }

    .brand-logo { width: clamp(150px, 18vw, 220px); height: auto; }
    .hero-logo { width: min(620px, 88%); height: auto; margin: 8px auto 22px; }
    .sr-only {
      position: absolute !important; width: 1px !important; height: 1px !important;
      padding: 0 !important; margin: -1px !important; overflow: hidden !important;
      clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important;
    }

    @media (max-width: 900px) {
      nav ul { display: none; }
      nav ul.open {
        display: flex; flex-direction: column; position: absolute;
        top: 78px; left: 0; right: 0; background: var(--paper);
        padding: 16px 22px 22px; border-bottom: 1px solid var(--line); gap: 14px;
      }
      .menu-btn { display: block; }
      .nav-cta .btn:not(.fill) { display: none; }
      .intro, .bridal, .reviews, .visit .grid, .photos { grid-template-columns: 1fr; }
      .photos {
        grid-template-areas:
          "main"
          "side1"
          "side2";
      }
      .photos .photo-main { min-height: 280px; }
      section { padding: 68px 0; }
      h2 { font-size: clamp(1.6rem, 7vw, 2.15rem); letter-spacing: 0.025em; }
      .brand-logo { width: 155px; }
      .hero-logo { width: min(520px, 92%); }
    }


    /* ====== Cambios visuales acordados: fondo, salón y novias ====== */
    :root { --bg-main: #5c4b40; }
    body { background: var(--bg-main); }

    /* Cabecera oscura legible y hero con carta central clara */
    header {
      background: #5c4b40;
      border-bottom-color: rgba(184, 149, 85, .35);
    }
    header .brand-logo { filter: brightness(0) invert(1); }
    header nav ul, header .menu-btn { color: #f4efe6; }
    header nav a:hover { color: #d8c3a0; }
    header .nav-cta .btn:not(.fill) { color: #f4efe6; border-color: var(--gold-2); }
    header .nav-cta .btn.fill { color: #fff; }
    .hero { background: var(--bg-main); }
    .hero .frame { border-color: rgba(216, 195, 160, .5); }

    /* Salón: texto claro y mosaico vertical (1 foto grande, 2 pequeñas) */
    #salon { background: var(--bg-main); }
    #salon .eyebrow, #salon h2 { color: #d8c3a0; }
    #salon p { color: #f4efe6; }
    #salon .zones span {
      color: #f4efe6;
      border-color: rgba(244, 239, 230, .4);
    }
    /* Safari: each grid track is independent of intrinsic image size. */
    #salon .photos {
      display: grid;
      grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
      grid-template-areas: "main side1" "main side2";
      grid-template-rows: repeat(2, minmax(0, 1fr));
      gap: 10px;
      height: 425px;
      min-width: 0;
      min-height: 0;
    }
    #salon .photos .photo-frame {
      position: relative;
      display: block;
      min-width: 0;
      min-height: 0;
      overflow: hidden;
    }
    #salon .photos .photo-frame--main { grid-area: main; }
    #salon .photos .photo-frame--top { grid-area: side1; }
    #salon .photos .photo-frame--bottom { grid-area: side2; }
    #salon .photos .photo-frame img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      max-width: none;
      min-width: 0;
      min-height: 0;
      object-fit: cover;
      object-position: center center;
      display: block;
    }
    #salon .photos .photo-main { min-height: 0; }

    /* Titulares y controles legibles en el resto de secciones oscuras */
    .menu-block h2 { color: #d8c3a0; }
    .menu-block .script { color: #d8c3a0; }
    .menu-block .menu-lead { color: #f4efe6; }
    .menu-block .tab:not(.on) {
      color: #f4efe6;
      border-color: rgba(244,239,230,.45);
    }
    .menu-block .tab:focus-visible, .btn:focus-visible, a:focus-visible {
      outline: 2px solid #d8c3a0;
      outline-offset: 3px;
    }
    footer.site { color: rgba(244, 239, 230, .85); }

    /* Novias: carta izquierda y 2 fotografías iguales a la referencia */
    .bridal-section { background: var(--bg-main); padding: 72px 0; }
    .bridal-layout {
      display: grid;
      grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
      gap: 12px;
      align-items: stretch;
    }
    .bridal-card {
      border: 4px solid #3f342c;
      padding: 8px;
      background: #f4efe6;
      min-width: 0;
    }
    .bridal-card-inner {
      height: 100%;
      padding: 18px 28px 25px;
      background: #f4efe6;
    }
    .bridal-item {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto;
      align-items: start;
      gap: 16px;
      padding: 20px 0 23px;
      border-bottom: 1px dotted rgba(184,149,85,.24);
    }
    .bridal-item:first-child { padding-top: 4px; }
    .bridal-item-last { padding-bottom: 20px; }
    .bridal-kicker {
      color: #a5947d;
      font-size: .72rem;
      letter-spacing: .15em;
      text-transform: uppercase;
      margin-bottom: 6px;
    }
    .bridal-item h3 {
      color: #b89555;
      font-family: "Cormorant Garamond", Georgia, serif;
      font-size: clamp(1.35rem, 2.1vw, 1.65rem);
      font-weight: 500;
      line-height: 1.12;
      letter-spacing: .02em;
    }
    .bridal-price {
      color: #b89555;
      font-family: "Cormorant Garamond", Georgia, serif;
      font-size: clamp(1.3rem, 2vw, 1.65rem);
      line-height: 1.1;
      white-space: nowrap;
    }
    .bridal-note {
      margin-top: 22px;
      color: #8a8379;
      font-size: .9rem;
      line-height: 1.8;
      max-width: 43ch;
    }
    /* Safari: flex slots receive definite heights from the bridal card. */
    .bridal-gallery {
      display: flex;
      flex-direction: column;
      align-self: stretch;
      min-width: 0;
      min-height: 0;
      gap: 10px;
    }
    .bridal-photo {
      position: relative;
      display: block;
      flex: 1 1 0;
      min-width: 0;
      min-height: 0;
      overflow: hidden;
      border: 4px solid #3f342c;
    }
    .bridal-photo img {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      max-width: none;
      min-height: 0;
      object-fit: cover;
      object-position: center center;
      display: block;
    }
    section[id] { scroll-margin-top: 78px; }

    @media (max-width: 900px) {
      header nav ul.open {
        background: #5c4b40;
        color: #f4efe6;
        border-bottom: 1px solid rgba(184,149,85,.35);
      }
      #salon .photos {
        grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
        grid-template-areas: "main side1" "main side2";
        grid-template-rows: repeat(2, minmax(0, 1fr));
        height: 420px;
      }
      .bridal-layout { grid-template-columns: 1fr; }
      .bridal-gallery { flex-direction: row; height: 280px; }
    }
    @media (max-width: 580px) {
      #salon .photos { height: 320px; gap: 6px; }
      .bridal-card-inner { padding: 16px 18px 22px; }
      .bridal-item { gap: 10px; padding: 17px 0 20px; }
      .bridal-item h3 { font-size: 1.3rem; }
      .bridal-price { font-size: 1.25rem; }
      .bridal-gallery { flex-direction: column; height: auto; }
    }

    /* En móviles: mostrar la fotografía boda2 completa y más grande,
       sin recortarla. Safari respeta su proporción intrínseca. */
    @media (max-width: 767px) {
      .bridal-gallery {
        flex-direction: column;
        height: auto;
      }
      .bridal-gallery .bridal-photo:first-child {
        flex: 0 0 auto;
        width: 100%;
        aspect-ratio: 4 / 3;
      }
      .bridal-gallery .bridal-photo:last-child {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        aspect-ratio: auto;
      }
      .bridal-gallery .bridal-photo:last-child img {
        position: static;
        width: 100%;
        max-width: 100%;
        height: auto;
        object-fit: contain;
        display: block;
      }
    }

/* ===================================================================
   3. Static-build additions (language switcher, social icons, legal
      links, consent-gated map, cookie banner, legal pages)
   =================================================================== */
body { font-family: "Outfit", "Jost", system-ui, sans-serif; }
:lang(uk), :lang(ru) { --brand-font: "Cormorant Garamond", Georgia, serif; }
:lang(uk) h2, :lang(ru) h2 { font-weight: 600; letter-spacing: 0.04em; }

.hdr-tools { display: flex; align-items: center; gap: 12px; }
.social { display: flex; align-items: center; gap: 10px; }
.social a { display: inline-flex; width: 18px; height: 18px; color: #f4efe6; opacity: .9; transition: .2s; }
.social a:hover { color: #d8c3a0; opacity: 1; }
.social svg { width: 100%; height: 100%; fill: currentColor; }

.lang { position: relative; }
.lang > summary {
  list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 4px;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: #f4efe6;
  padding: 6px 2px; user-select: none;
}
.lang > summary::-webkit-details-marker { display: none; }
.lang > summary::after { content: ""; width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); margin-left: 4px; }
.lang ul {
  position: absolute; right: 0; top: calc(100% + 10px); min-width: 150px; list-style: none;
  background: #5c4b40; border: 1px solid rgba(184,149,85,.45); padding: 8px 0; z-index: 60;
}
.lang li a { display: block; padding: 7px 16px; font-size: .8rem; color: #f4efe6; letter-spacing: .04em; }
.lang li a:hover, .lang li a[aria-current] { color: #d8c3a0; }
.menu-langs, .menu-social { display: none; }

@media (max-width: 1180px) { .hdr-tools .social { display: none; } nav ul { gap: 16px; } }
@media (max-width: 900px) {
  .hdr-tools .lang { display: none; }
  nav ul.open .menu-langs { display: flex; flex-wrap: wrap; gap: 8px 14px; padding-top: 10px; border-top: 1px solid rgba(184,149,85,.35); }
  nav ul.open .menu-langs a[aria-current] { color: #d8c3a0; }
  nav ul.open .menu-social { display: flex; }
}

footer.site a { color: inherit; }
footer.site a:hover { color: #d8c3a0; }
.legal-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 0; }
.legal-links .sep { padding: 0 .35em; }
.legal-links button { all: unset; cursor: pointer; }
.legal-links button:hover { color: #d8c3a0; }
.legal-links button:focus-visible { outline: 2px solid #d8c3a0; outline-offset: 3px; }
footer.site .social a { width: 16px; height: 16px; color: rgba(244,239,230,.85); }

/* Map placeholder (Google Maps only after consent) */
.map-embed { position: relative; }
.map-consent {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 16px; padding: 28px; text-align: center; color: rgba(244,239,230,.68); font-size: .9rem;
}
.map-consent p { max-width: 34ch; margin: 0; }
.map-consent .btn { color: var(--paper); border-color: var(--gold-2); cursor: pointer; font-family: inherit; border-radius: 0; font-weight: 300; line-height: inherit; }
.map-consent .btn:hover { background: var(--gold-2); color: #2b261f; }

/* Cookie banner */
.cc { position: fixed; z-index: 100; left: 16px; right: 16px; bottom: 16px; display: flex; justify-content: center; pointer-events: none; }
.cc[hidden] { display: none; }
.cc-box {
  pointer-events: auto; width: min(760px, 100%); background: var(--card); color: var(--ink);
  border: 1px solid var(--line); outline: 8px solid rgba(244,239,230,.08);
  box-shadow: 0 18px 50px rgba(0,0,0,.35); padding: 24px 26px; max-height: calc(100vh - 32px); overflow: auto;
}
.cc-title { font-family: "Cormorant Garamond", Georgia, serif; font-size: 1.45rem; color: var(--gold); font-weight: 500; margin: 0 0 6px; }
.cc-text { font-size: .88rem; color: var(--soft); margin: 0 0 6px; line-height: 1.6; }
.cc-text a, .cc-policy { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
.cc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.cc-actions .btn { cursor: pointer; font-family: inherit; border-radius: 0; font-weight: 300; line-height: inherit; padding: 11px 20px; }
.cc-prefs { margin-top: 16px; border-top: 1px dotted var(--line); }
.cc-prefs[hidden] { display: none; }
.cc-opt { display: grid; grid-template-columns: 1fr auto; gap: 4px 18px; padding: 14px 0; border-bottom: 1px dotted var(--line); align-items: center; }
.cc-opt strong { font-weight: 500; font-size: .92rem; }
.cc-opt p { grid-column: 1 / 2; margin: 0; font-size: .82rem; color: var(--soft); }
.cc-opt .always { font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); grid-row: 1 / 3; grid-column: 2; }
.switch { grid-row: 1 / 3; grid-column: 2; position: relative; width: 44px; height: 24px; }
.switch input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.switch span { position: absolute; inset: 0; background: #cfc5b6; border-radius: 24px; transition: .2s; }
.switch span::after { content: ""; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .2s; }
.switch input:checked + span { background: var(--gold); }
.switch input:checked + span::after { transform: translateX(20px); }
.switch input:focus-visible + span { outline: 2px solid var(--gold); outline-offset: 2px; }
@media (max-width: 580px) { .cc { left: 8px; right: 8px; bottom: 8px; } .cc-box { padding: 20px 18px; } .cc-actions .btn { flex: 1 1 auto; } }

/* Legal pages */
.legal-page { padding: 130px 0 72px; }
.legal-page .frame { border-color: rgba(216,195,160,.5); }
.legal-page .frame-in { padding: clamp(28px, 5vw, 64px); }
.legal-page h1 { font-family: var(--brand-font); text-transform: uppercase; letter-spacing: .035em; color: var(--gold); font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.12; margin: 6px 0 8px; font-weight: 400; }
:lang(uk) .legal-page h1, :lang(ru) .legal-page h1 { font-weight: 600; }
.legal-page .updated { font-size: .8rem; color: var(--soft); margin-bottom: 28px; }
.legal-page h2 { font-family: "Cormorant Garamond", Georgia, serif; text-transform: none; letter-spacing: .02em; font-size: 1.5rem; color: var(--gold); margin: 34px 0 10px; font-weight: 500; }
.legal-page p, .legal-page li { color: var(--soft); font-size: .95rem; }
.legal-page ul { padding-left: 1.2em; margin: 0 0 .9rem; }
.legal-page li { margin-bottom: 6px; }
.legal-page a { color: var(--gold); text-decoration: underline; text-underline-offset: 2px; }
.legal-page strong { color: var(--ink); font-weight: 500; }
.legal-page .ph { background: #f1e3c4; color: #6b4e16; padding: 0 4px; font-family: ui-monospace, monospace; font-size: .85em; }
.legal-page table { font-size: .85rem; color: var(--soft); }
.legal-page table th { color: var(--ink); font-weight: 500; text-align: left; }
.legal-page .table-wrap { overflow-x: auto; }
.legal-page .back { display: inline-block; margin-top: 34px; }

/* Header fit fixes (static build) */
.nav-cta { align-items: center; }
.nav-cta .btn { white-space: nowrap; }
nav ul li { white-space: nowrap; }
.hdr-tools { gap: 10px; margin-right: 4px; }
.hdr-tools .social { gap: 9px; }
.hdr-tools .social a { width: 16px; height: 16px; }
@media (max-width: 1300px) { .hdr-tools .social { display: none; } }
@media (max-width: 1100px) { nav ul { gap: 14px; } }
header .menu-btn:hover, header .menu-btn:focus, header .menu-btn:active { background: none; color: #f4efe6; }
.lang > summary:hover { color: #d8c3a0; }
.legal-page button[data-cc-open] { background: transparent; border: 1px solid var(--gold); color: var(--gold); border-radius: 0; padding: 4px 12px; font-size: .9em; letter-spacing: .04em; }
.legal-page button[data-cc-open]:hover, .legal-page button[data-cc-open]:focus { background: var(--gold); color: var(--paper); }

/* Agency credit (footer bottom bar) */
footer.site .credit { flex-basis: 100%; display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; padding-top: 18px; border-top: 1px solid rgba(184,149,85,.25); text-align: center; font-size: .74rem; letter-spacing: .04em; color: rgba(244,239,230,.75); }
footer.site .credit-logo { display: inline-flex; background: #fff; border-radius: 999px; padding: 5px 14px; line-height: 0; }
footer.site .credit-logo img { width: 104px; height: auto; display: block; }
/* Logo sin fondo (transparente) */
footer.site .credit-logo { background: none; border-radius: 0; padding: 0; }
footer.site .credit-logo img { width: 110px; }
