:root {
  --ivory: #f4f0e8;
  --paper: #fffdf9;
  --ink: #121211;
  --muted: #6f6d67;
  --line: rgba(18, 18, 17, .15);
  --acid: #cfb99e;
  --metallic-gold: linear-gradient(115deg, #9f8058 0%, #cfb99e 22%, #f5e7cc 40%, #b89a70 57%, #ead7b6 76%, #b29368 100%);
  --radius-xl: 44px;
  --radius-lg: 30px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ivory); color: var(--ink); font-family: "Manrope", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.ui-arrow { display:inline-block; width:1em; height:1em; flex-shrink:0; vertical-align:-.12em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.card-link .ui-arrow, .contact-button .ui-arrow, .album-controls .ui-arrow, .search-bar .ui-arrow { color:#121211; }

.topbar { position: absolute; z-index: 10; top: 0; left: 0; right: 0; height: 88px; padding: 0 clamp(22px, 4vw, 64px); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #fff; border-bottom: 1px solid rgba(255,255,255,.2); }
.brand { font-size: 1.25rem; font-weight: 800; letter-spacing: -.06em; }
.brand span { color: var(--acid); background: var(--metallic-gold); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.header-logo { display: block; width: 126px; height: 64px; object-fit: contain; }
nav { display: flex; gap: 34px; font-size: .78rem; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
nav a:hover { opacity: .65; }
.nav-cta { justify-self: end; display: inline-flex; gap: 12px; align-items: center; padding: 12px 18px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; font-size: .82rem; font-weight: 700; }

.hero { position: relative; min-height: 830px; height: 100svh; overflow: hidden; color: #fff; }
.hero-image, .service-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-image { object-position: center 58%; transform: scale(1.01); }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,7,9,.72) 0%, rgba(4,7,9,.35) 50%, rgba(4,7,9,.08) 76%), linear-gradient(0deg, rgba(5,6,7,.55), transparent 48%); }
.hero-copy { position: absolute; z-index: 2; top: 50%; left: clamp(22px, 6vw, 90px); transform: translateY(-48%); max-width: 1000px; }
.eyebrow { margin: 0 0 20px; font-size: .72rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.light { color: rgba(255,255,255,.76); }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 30px; font-size: clamp(4.3rem, 10.6vw, 10rem); line-height: .82; letter-spacing: -.09em; font-weight: 700; }
h1 span { color: var(--acid); background: var(--metallic-gold); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.hero-intro { max-width: 500px; margin: 0 0 0 8px; font-size: clamp(1rem, 1.5vw, 1.25rem); line-height: 1.5; color: rgba(255,255,255,.88); }
.hero-proof { position: absolute; z-index: 2; left: clamp(18px, 4vw, 64px); right: clamp(18px, 4vw, 64px); bottom: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px; }
.hero-proof a { min-height: 118px; display: grid; grid-template-columns: 1fr auto; align-content: center; gap: 7px 24px; padding: 22px 26px; background: rgba(255,253,249,.94); color: var(--ink); backdrop-filter: blur(14px); }
.hero-proof a:first-child { border-radius: 26px 4px 4px 26px; }
.hero-proof a:last-child { border-radius: 4px 26px 26px 4px; }
.hero-proof small { grid-column: 1 / -1; font-size: .6rem; font-weight: 800; letter-spacing: .13em; }
.hero-proof strong { font-size: 1.5rem; letter-spacing: -.05em; }
.hero-proof span { align-self: end; font-size: .58rem; font-weight: 700; letter-spacing: .1em; color: var(--muted); }

.services { padding: 140px clamp(18px, 4vw, 64px); }
.section-head { display: grid; grid-template-columns: 1.5fr .5fr; gap: 80px; align-items: end; margin-bottom: 70px; }
.section-head h2, .method h2, .contact h2 { margin: 0; font-size: clamp(3.3rem, 7.2vw, 7.8rem); line-height: .92; letter-spacing: -.075em; font-weight: 600; }
.section-note { max-width: 390px; margin: 0 0 10px; font-size: 1rem; line-height: 1.65; color: var(--muted); }
.rio-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.rio-card { background:#fff8ef; border-radius:32px; padding:24px; display:flex; flex-direction:column; min-width:0; }
.rio-card > img { width:100%; aspect-ratio:1.35; object-fit:cover; border-radius:20px; margin-bottom:26px; }
.rio-card:nth-child(3n+2) > img { object-position:80% center; }
.rio-card h3 { font-family:Impact,'Arial Narrow',sans-serif; text-transform:uppercase; font-size:clamp(2rem,3.1vw,3.4rem); font-weight:900; line-height:1; letter-spacing:-.035em; margin:0 0 26px; }
.rio-tag { font-size:12px; font-weight:800; letter-spacing:.08em; margin-bottom:12px; }
.rio-description { font-size:16px; line-height:1.6; margin-bottom:32px; }
.rio-bottom { margin-top:auto; display:flex; justify-content:space-between; align-items:end; gap:16px; }
.rio-cta { font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.rio-price { text-align:right; }
.rio-price span { display:block; font-size:12px; letter-spacing:.1em; margin-bottom:6px; }
.rio-price strong { display:block; font-size:clamp(1.1rem,1.65vw,1.7rem); letter-spacing:-.04em; }
.rio-card:nth-child(2) .rio-price strong { font-size:3rem; }
.services-extra { text-align:center; margin:32px 0 0; font-size:16px; color:var(--muted); }
@media(max-width:1100px) { .rio-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:640px) { .rio-grid { grid-template-columns:1fr; } .rio-card h3 { font-size:2.8rem; } }
.service-stack { display: grid; gap: 22px; }
.updated-services .service-content { right: 0; max-width: none; padding-right: 100px; }
.updated-services .service-desc { max-width: 480px; }
.updated-services .service-content h3 { font-size: clamp(2.4rem, 3.8vw, 4.8rem); line-height: .98; }
.service-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.service-card { isolation: isolate; position: relative; min-height: 590px; overflow: hidden; border-radius: var(--radius-xl); color: #fff; }
.service-card.featured { min-height: 680px; }
.service-card > img { z-index: -2; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.service-card:hover > img { transform: scale(1.035); }
.service-overlay { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(10,10,9,.7) 0%, rgba(10,10,9,.18) 66%), linear-gradient(0deg, rgba(10,10,9,.6), transparent 58%); }
.crop-center > img { object-position: 45% center; }
.crop-right > img { object-position: 83% center; }
.service-number { position: absolute; top: 34px; left: 38px; font-size: .72rem; letter-spacing: .14em; }
.service-content { position: absolute; left: 38px; bottom: 42px; max-width: 560px; padding-right: 38px; }
.service-content h3 { margin-bottom: 18px; font-size: clamp(3rem, 6vw, 6.2rem); line-height: .87; letter-spacing: -.07em; }
.service-desc { max-width: 480px; margin: 0; font-size: 1rem; line-height: 1.5; color: rgba(255,255,255,.78); }
.compact .service-content h3 { font-size: clamp(2.8rem, 4vw, 5rem); }
.compact .service-desc { max-width: 330px; }
.price-card { position: absolute; top: 28px; right: 28px; min-width: 230px; padding: 22px 24px; border-radius: 24px; background: var(--paper); color: var(--ink); display: grid; }
.price-card span, .price-card small { font-size: .62rem; letter-spacing: .12em; font-weight: 700; }
.price-card strong { margin: 6px 0 4px; font-size: 2rem; letter-spacing: -.05em; }
.price-card small { color: var(--muted); }
.price-card.mini { min-width: 170px; }
.price-card.mini strong { font-size: 1.1rem; }
.card-link { position: absolute; right: 28px; bottom: 28px; width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--acid); color: var(--ink); font-size: 1.55rem; transition: transform .25s ease; }
.card-link:hover { transform: rotate(45deg); }

.tailored { padding:24px clamp(18px,4vw,64px) 100px; }
.tailored-heading { display:grid; grid-template-columns:1.2fr 1fr; align-items:end; gap:32px; margin-bottom:48px; }
.tailored-heading h2 { font-size:clamp(3.3rem,7.2vw,7.8rem); line-height:.92; letter-spacing:-.075em; font-weight:600; margin:0; }
.tailored-heading > p { font-size:clamp(18px,2vw,24px); line-height:1.5; margin:0; }
.tailored-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.tailored-details,.tailored-album { background:var(--paper); border-radius:28px; padding:28px; min-width:0; }
.tailored-details { display:flex; flex-direction:column; align-items:stretch; justify-content:space-between; gap:28px; padding:clamp(24px,3vw,44px); }
.tailored-details h3 { font-size:1.6rem; letter-spacing:-.04em; margin:0 0 16px; }
.tailored-details p { font-size:16px; line-height:1.5; }
.tailored-details ul { list-style:none; padding:16px 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; font-size:16px; line-height:1.4; margin:0; width:100%; }
.tailored-details li { display:flex; flex-direction:column; align-items:center; justify-content:start; text-align:center; gap:18px; color:#000; font-weight:600; }
.tailored-details li svg { width:40px; height:40px; flex-shrink:0; fill:currentColor; stroke:none; }
.tailored-details li span { max-width:130px; }
.tailored-details .contact-button { font-size:16px; align-self:stretch; justify-content:space-between; }
@media(max-width:760px) { .tailored-details ul { gap:10px; font-size:14px; } .tailored-details li { gap:14px; } .tailored-details li svg { width:32px; height:32px; } }
.tailored-main { grid-column:1 / -1; margin:0; position:relative; border-radius:28px; overflow:hidden; min-height:560px; }
.tailored-main > img:not(.tailored-ticket) { position:absolute; width:100%; height:100%; object-fit:cover; object-position:50% 100%; }
.tailored-main .tailored-ticket { position:absolute; width:clamp(260px,37vw,480px); height:auto; right:-30px; bottom:-125px; transform:rotate(14deg); filter:drop-shadow(0 16px 24px #0005); }
.tailored-main figcaption { position:absolute; top:28px; left:24px; color:#fff; font-size:2rem; letter-spacing:-.05em; line-height:1.1; text-shadow:0 2px 16px #0008; }
.tailored-album { display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; background:transparent; border-radius:0; padding:0 28px; }
.album-stack { position:relative; height:330px; width:100%; outline-offset:-3px; }
.album-stack img { position:absolute; top:28px; left:50%; width:68%; height:270px; object-fit:cover; border-radius:14px; box-shadow:0 9px 18px #0002; transition:transform .7s ease,opacity .7s ease; }
.album-stack img[data-position="0"] { transform:translateX(-50%); opacity:1; z-index:3; }
.album-stack img[data-position="1"] { transform:translateX(-61%) scale(.9) rotate(-9deg); opacity:.75; z-index:2; }
.album-stack img[data-position="2"] { transform:translateX(-39%) scale(.9) rotate(9deg); opacity:.75; z-index:1; }
.album-stack img[data-position="3"],.album-stack img[data-position="4"] { transform:translateX(-50%) scale(.8); opacity:0; z-index:0; }
.album-caption p { font-size:16px; line-height:1.5; min-height:3em; text-align:center; }
.album-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; }
.album-controls button { border:1px solid var(--line); border-radius:50%; width:42px; height:42px; background:transparent; cursor:pointer; }
.album-count { font-size:14px; }
.tailored-foot { display:flex; justify-content:center; gap:48px; padding-top:36px; font-size:16px; }
@media(max-width:1000px) { .album-stack { max-width:400px; margin:auto; } }
@media(max-width:640px) { .tailored-heading,.tailored-grid { grid-template-columns:1fr; } .tailored-main { min-height:500px; } .tailored-foot { flex-wrap:wrap; gap:18px 28px; } }
@media(max-width:640px) { .tailored-main .tailored-ticket { width:180px; right:0; top:48px; bottom:auto; transform:rotate(7deg); }.tailored-album { padding:0 12px; } }
@media(max-width:760px) { .tailored-heading h2 { font-size:clamp(3.2rem,14vw,5rem); } }
.hajjy-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px; padding:56px 0 72px; text-align:center; }
.hajjy-stats > div { display:flex; flex-direction:column; gap:12px; }
.hajjy-stats strong { font-size:clamp(2.4rem,4.5vw,4.5rem); font-weight:500; letter-spacing:-.065em; line-height:1.1; }
.hajjy-stats > div > span { font-size:16px; color:var(--muted); }
.stat-denominator { font-size:.55em; }
.google-reviews { border-top:1px solid var(--line); padding-top:56px; }
.reviews-heading { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:32px; }
.reviews-heading h2 { font-size:clamp(2rem,3.6vw,3.6rem); font-weight:500; letter-spacing:-.055em; margin:0; }
.google-rating { display:flex; flex-direction:column; gap:8px; flex-shrink:0; font-size:14px; }
.google-rating > span:first-child { font-size:20px; font-weight:700; }
.google-rating strong { font-size:20px; }
.review-stars { color:#9e752f; letter-spacing:.12em; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.review-card { background:var(--paper); border-radius:26px; padding:28px; display:flex; flex-direction:column; }
.review-person { display:flex; align-items:center; gap:12px; }
.review-avatar { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:var(--metallic-gold); font-size:14px; flex-shrink:0; }
.review-person h3 { margin:0 0 4px; font-size:16px; }
.review-person div > span { font-size:13px; color:var(--muted); }
.review-card > .review-stars { margin:22px 0 14px; }
.review-card blockquote { font-size:18px; line-height:1.6; margin:0 0 28px; }
.review-card > a { margin-top:auto; font-size:14px; text-decoration:underline; text-underline-offset:4px; }
.reviews-source { font-size:12px; color:var(--muted); margin:24px 0 0; }
@media(max-width:760px) { .hajjy-stats { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 18px; } .reviews-heading { align-items:start; flex-direction:column; } .reviews-grid { grid-template-columns:1fr; } }
.chat-story { position:relative; margin:0 clamp(12px,3vw,48px) 32px; border-radius:40px; background:#171817; color:var(--paper); overflow:clip; }
.chat-sticky { position:relative; min-height:100svh; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:40px; padding:32px clamp(22px,5vw,80px); }
.scroll-reveal { opacity:0; transform:translateY(42px) scale(.97); transition:opacity .8s ease,transform .9s cubic-bezier(.2,.7,.2,1); }
.scroll-reveal.is-revealed, .scroll-reveal:focus-within { opacity:1; transform:none; }
.chat-story.is-playing .chat-phone { animation:phone-arrival 1.8s cubic-bezier(.2,.7,.2,1) both; }
@keyframes phone-arrival { 0% { transform:translateY(55px) rotateY(-48deg) rotateZ(-8deg); } 65% { transform:translateY(0) rotateY(9deg) rotateZ(2deg); } 100% { transform:none; } }
@media(prefers-reduced-motion:reduce) { .scroll-reveal { opacity:1; transform:none; transition:none; }.chat-story.is-playing .chat-phone { animation:none; } }
.chat-intro h2 { font-size:clamp(3.5rem,7.4vw,8rem); letter-spacing:-.075em; line-height:.95; font-weight:500; margin-bottom:32px; }
.chat-intro h2 span { background:var(--metallic-gold); background-clip:text; -webkit-background-clip:text; color:transparent; }
.chat-intro > p:not(.eyebrow) { max-width:400px; font-size:18px; line-height:1.65; color:#c5c5be; }
.chat-scroll-hint { display:block; margin-top:42px; font-size:12px; letter-spacing:.12em; color:#bca78b; }
.phone-stage { perspective:1200px; display:flex; flex-direction:column; align-items:center; }
.chat-phone { width:340px; max-width:100%; padding:7px; border:1px solid #454745; border-radius:46px; background:#252725; color:#172b26; box-shadow:0 24px 60px #0005; transform-origin:center; isolation:isolate; }
.phone-screen { position:relative; display:flex; flex-direction:column; min-width:0; overflow:hidden; border-radius:38px; clip-path:inset(0 round 38px); background:#fff; isolation:isolate; }
.phone-screen > * { flex-shrink:0; min-width:0; max-width:100%; }
.phone-status { height:35px; display:flex; justify-content:space-between; align-items:center; padding:0 22px; font-size:12px; font-weight:700; position:relative; }
.phone-island { position:absolute; top:7px; left:50%; transform:translateX(-50%); width:90px; height:21px; border-radius:20px; background:#141615; }
.wa-header { display:flex; align-items:center; gap:10px; padding:10px 12px; background:#f8f8f6; border-bottom:1px solid #deded9; }
.wa-header > span { font-size:30px; color:#16795c; }
.wa-avatar { width:40px; height:40px; border-radius:50%; background:#000; display:grid; place-items:center; flex-shrink:0; }
.wa-avatar img { width:32px; height:auto; }
.wa-contact { display:flex; flex-direction:column; flex:1; gap:3px; }
.wa-contact strong { font-size:16px; }.wa-contact small { font-size:12px; color:#687970; }
.wa-header svg { width:21px; height:21px; color:#16795c; }
.wa-chat { padding:12px 13px; background:#eee8df; display:flex; flex-direction:column; gap:10px; }
.wa-date { margin:0 auto; background:#fff9; padding:4px 10px; border-radius:6px; font-size:12px; }
.wa-demo { margin:0; text-align:center; color:#6f766e; font-size:12px; }
.wa-message { max-width:93%; padding:9px 10px 5px; border-radius:10px; box-shadow:0 1px 1px #0002; transition:opacity .35s,transform .35s; }
.wa-message.incoming { background:white; align-self:flex-start; border-top-left-radius:2px; }
.wa-message.outgoing { background:#d9fdd3; align-self:flex-end; border-top-right-radius:2px; }
.wa-message p { font-size:14px; line-height:1.4; margin:0; }.wa-message > span { display:block; text-align:right; color:#64726a; font-size:11px; margin-top:3px; }.wa-message b { color:#369bcd; }
.chat-story.is-enhanced .wa-message:not(.is-visible) { opacity:0; transform:translateY(14px); }
.wa-composer { display:flex; align-items:center; gap:9px; padding:10px 16px 8px; color:#515856; background:#fff; border-top:1px solid #ececea; }
.wa-composer svg { width:19px; height:19px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.45; stroke-linecap:round; stroke-linejoin:round; }
.wa-composer .wa-plus { width:20px; height:20px; }
.wa-input { display:flex; align-items:center; justify-content:flex-end; flex:1; min-width:0; height:31px; background:#f5f5f5; border:1px solid #e7e8e7; border-radius:18px; padding:0 8px; }
.wa-input svg { width:17px; height:17px; color:#727875; }
.wa-mic { width:30px; height:30px; flex-shrink:0; border-radius:50%; display:grid; place-items:center; background:#24c768; color:#143b29; }
.wa-mic svg { width:17px; height:17px; stroke-width:1.5; }
.phone-home { width:100px; height:4px; border-radius:4px; background:#222; margin:4px auto 10px; }
.chat-cta { margin-top:20px; text-align:center; }.chat-contact-note { font-size:12px; color:#b8b9b2; margin:12px 0 0; }
@media(max-width:760px) { .chat-sticky { grid-template-columns:1fr; gap:18px; padding:22px 16px; }.chat-intro h2 { font-size:2.5rem; margin:0; }.chat-intro h2 br { display:none; }.chat-intro h2 span { margin-left:8px; }.chat-intro .eyebrow { font-size:12px; margin-bottom:10px; }.chat-intro > p:not(.eyebrow),.chat-scroll-hint { display:none; }.chat-phone { width:320px; }.chat-story { border-radius:26px; }.wa-chat { gap:8px; padding:10px; }.wa-message p { font-size:14px; }.chat-cta { padding:15px 22px; margin-top:14px; } }
@media(min-width:761px) and (max-height:760px) { .chat-sticky { padding-top:12px; padding-bottom:12px; }.wa-chat { gap:7px; }.wa-message { padding-top:7px; }.chat-cta { margin-top:12px; padding:15px 24px; }.chat-contact-note { margin-top:7px; } }
@media(max-height:650px) { .chat-sticky { position:relative; }.chat-story { height:auto; }.chat-sticky .chat-phone { transform:none !important; opacity:1 !important; }.chat-story.is-enhanced .wa-message { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .chat-story { height:auto; }.chat-sticky { position:relative; }.chat-phone { transform:none !important; opacity:1 !important; }.chat-story.is-enhanced .wa-message { opacity:1; transform:none; transition:none; } }
.method { padding: 80px clamp(18px, 4vw, 64px) 150px; }
.method-title-wrap { margin-bottom: 90px; }
.method h2 span { color: #8b8981; }
.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.steps li { display: grid; grid-template-columns: 110px 1fr; padding: 34px 0; border-bottom: 1px solid var(--line); }
.steps li > span { font-size: .72rem; letter-spacing: .12em; }
.steps strong { display: block; font-size: clamp(1.5rem, 2.5vw, 2.8rem); letter-spacing: -.04em; }
.steps p { margin: 10px 0 0; color: var(--muted); }

.contact { margin: 0 clamp(18px, 4vw, 64px) 30px; padding: clamp(42px, 7vw, 100px); border-radius: var(--radius-xl); background: var(--ink); color: #fff; position: relative; overflow: hidden; }
.contact::after { content: "↗"; position: absolute; right: 4%; bottom: -18%; color: rgba(255,255,255,.04); font-size: 24rem; line-height: 1; }
.contact h2 { max-width: 900px; }
.contact > p:not(.eyebrow) { max-width: 540px; margin: 32px 0; color: rgba(255,255,255,.7); line-height: 1.6; }
.contact-button { position: relative; z-index: 1; border: 0; padding: 20px 26px; border-radius: 999px; background: var(--acid); color: var(--ink); font-weight: 800; cursor: pointer; }
.contact-button span { margin-left: 20px; }
.card-link, .contact-button { background: var(--metallic-gold); box-shadow: inset 0 1px 0 rgba(255,255,255,.55), inset 0 -1px 0 rgba(80,55,25,.2); }
.contact-meta { display: flex; gap: 24px; margin-top: 70px; font-size: .63rem; letter-spacing: .13em; color: rgba(255,255,255,.45); }
footer { min-height:120px; padding:48px clamp(22px,4vw,64px) 24px; font-size:14px; }
.footer-main { display:grid; grid-template-columns:1fr 1.5fr 1fr; gap:48px; padding-bottom:40px; }
.footer-main p { line-height:1.7; margin:14px 0 20px; }
.footer-social p { margin-top:0; max-width:420px; }
.footer-social nav { display:flex; flex-wrap:wrap; gap:12px; font-size:14px; text-transform:none; letter-spacing:0; }
.footer-social nav a { display:inline-flex; align-items:center; gap:16px; padding:12px 18px; border:1px solid var(--line); border-radius:30px; transition:background .2s; }
.footer-social nav a:hover { background:#e7dccb; opacity:1; }
.footer-contact { font-style:normal; display:flex; flex-direction:column; align-items:flex-start; gap:14px; line-height:1.7; }
.footer-contact .eyebrow { margin:0; }
.footer-contact a:hover,.footer-bottom a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid var(--line); padding-top:20px; color:var(--muted); }
@media(max-width:760px) { .footer-main { grid-template-columns:1fr; gap:28px; }.footer-bottom { width:100%; } }

dialog { width: min(560px, calc(100% - 32px)); border: 0; border-radius: 32px; padding: 44px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 90px rgba(0,0,0,.35); }
dialog::backdrop { background: rgba(12,12,11,.64); backdrop-filter: blur(6px); }
dialog h2 { margin-bottom: 18px; font-size: 3rem; letter-spacing: -.06em; }
dialog p { color: var(--muted); line-height: 1.6; }
.dialog-close { position: absolute; top: 18px; right: 18px; border: 0; background: transparent; font-size: 2rem; cursor: pointer; }
.placeholder-contact { margin: 28px 0; padding: 20px; border: 1px dashed var(--line); border-radius: 18px; font-size: .8rem; font-weight: 700; letter-spacing: .09em; }
.dialog-ok { border: 0; border-radius: 999px; background: var(--ink); color: #fff; padding: 14px 20px; cursor: pointer; }
.visa-trigger { position:absolute; inset:0; z-index:5; width:100%; height:100%; border:0; padding:0; background:transparent; cursor:pointer; border-radius:inherit; color:var(--ink); }
.visa-trigger:focus-visible { outline:3px solid #fff; outline-offset:-7px; }
.visa-modal-open { overflow:hidden; }
.visa-dialog { width:min(520px,calc(100% - 24px)); max-height:calc(100dvh - 24px); padding:12px; overflow-y:auto; background:#fffdf9; border-radius:30px; }
.visa-dialog-photo { position:relative; height:240px; border-radius:21px; overflow:hidden; }
.visa-dialog-photo > img { width:100%; height:100%; object-fit:cover; object-position:50% 72%; }
.visa-dialog-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(#0005,transparent 50%); pointer-events:none; }
.visa-tags { position:absolute; top:15px; left:15px; z-index:1; display:flex; gap:6px; }
.visa-tags span { color:#fff; background:#ffffff30; backdrop-filter:blur(8px); border-radius:20px; padding:6px 10px; font-size:13px; }
.visa-star { position:absolute; top:21px; right:60px; width:20px; height:20px; fill:#fff; z-index:1; }
.visa-close { position:absolute; top:12px; right:12px; z-index:2; width:36px; height:36px; display:grid; place-items:center; border:0; border-radius:50%; background:#fff; cursor:pointer; }
.visa-close svg { width:18px; height:18px; stroke:#121211; stroke-width:1.8; fill:none; }
.visa-dialog-body { padding:20px 12px 2px; }
.visa-title-row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.visa-dialog h2 { font-size:24px; letter-spacing:-.04em; margin:0; }
.visa-badge { border:1px solid #c8bbab; border-radius:20px; font-size:12px; padding:6px 10px; }
.visa-dialog p { font-size:16px; line-height:1.65; color:#575750; margin:18px 0 24px; }
.visa-buy { display:flex; align-items:center; justify-content:center; gap:14px; width:100%; border-radius:30px; padding:17px 20px; background:var(--metallic-gold); color:#121211; font-size:16px; font-weight:700; }
#visa-request label { display:block; font-size:14px; font-weight:600; margin:12px 0 8px; }
#visa-request select { width:100%; min-height:48px; border:1px solid #c8bbab; border-radius:12px; padding:10px 12px; background:#fff; color:#121211; font:inherit; font-size:16px; }
#visa-request fieldset { min-width:0; margin:22px 0; padding:8px 16px 18px; border:1px solid #ded5c8; border-radius:16px; }
#visa-request legend { padding:0 6px; font-weight:700; }
#visa-request .visa-buy { border:0; cursor:pointer; }
.visa-dialog .visa-form-note { font-size:12px; margin:12px 0 6px; line-height:1.5; }
#stay-dialog { max-height:calc(100dvh - 24px); overflow-y:auto; padding:32px 24px; }
#stay-dialog h2 { font-size:32px; margin:12px 0; }
#stay-dialog label { display:block; margin:16px 0; font-size:14px; font-weight:600; }
#stay-dialog input:not([type=checkbox]),#stay-dialog select,#stay-dialog textarea { display:block; width:100%; min-width:0; margin-top:8px; min-height:46px; border:1px solid #c8bbab; border-radius:12px; background:#fff; color:#121211; padding:10px; font:inherit; font-size:16px; }
#stay-dialog [hidden] { display:none !important; }
#stay-dialog fieldset { border:1px solid #ded5c8; border-radius:16px; padding:12px; }
#stay-dialog .stay-choice { display:flex; align-items:center; gap:10px; font-weight:400; }
.stay-choice input { width:20px; height:20px; flex-shrink:0; }
.stay-columns { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.stay-actions { display:flex; gap:12px; margin-top:24px; }
.stay-send-intro { text-align:center; text-wrap:pretty; }
.stay-actions.is-review { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.stay-actions.is-review #stay-email { grid-column:1; grid-row:1; }
.stay-actions.is-review #stay-next { grid-column:2; grid-row:1; }
.stay-actions.is-review #stay-back { grid-column:1 / -1; grid-row:2; min-height:48px; }
.stay-actions.is-review .visa-buy { width:100%; min-width:0; margin:0; padding:16px 10px; font-size:clamp(14px,3.5vw,16px); line-height:1.4; text-align:center; display:flex; align-items:center; justify-content:center; }
#stay-next { border:0; cursor:pointer; flex:1; }
#stay-back { border:1px solid #c8bbab; border-radius:24px; padding:12px; background:transparent; cursor:pointer; }
#stay-summary { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:14px; line-height:1.7; background:#f1ebe1; padding:18px; border-radius:16px; }
@media(max-width:600px) { .visa-dialog-photo { height:190px; }.visa-dialog-body { padding:18px 8px 2px; } }

@media (max-width: 820px) {
  .topbar { height: 72px; grid-template-columns: 1fr auto; }
  nav { display: none; }
  .nav-cta { padding: 10px 14px; }
  .hero { min-height: 760px; }
  .hero-image { object-position: 62% center; }
  .hero-copy { top: 43%; right: 22px; }
  h1 { font-size: clamp(2.7rem, 12.5vw, 6.4rem); line-height: .95; }
  .header-logo { width: 102px; height: 52px; }
  .hero-intro { max-width: 310px; margin-left: 3px; }
  .hero-proof { left: 12px; right: 12px; bottom: 12px; grid-template-columns: 1fr 1fr; gap: 4px; }
  .hero-proof a { min-height: 100px; padding: 15px 16px; border-radius: 20px !important; }
  .hero-proof a:nth-child(3) { display: none; }
  .hero-proof strong { font-size: 1.05rem; }
  .hero-proof span { display: none; }
  .section-head { grid-template-columns: 1fr; gap: 30px; margin-bottom: 44px; }
  .services { padding-top: 92px; }
  .section-head h2, .method h2, .contact h2 { font-size: clamp(3.2rem, 14vw, 5rem); }
  .service-grid { grid-template-columns: 1fr; }
  .updated-services .service-content { padding-right: 24px; }
  .service-card, .service-card.featured { min-height: 610px; border-radius: 34px; }
  .price-card { top: auto; bottom: 24px; left: 24px; right: 96px; min-width: 0; padding: 16px 18px; border-radius: 18px; }
  .service-content { top: 92px; bottom: auto; left: 24px; padding-right: 24px; }
  .service-number { left: 24px; top: 25px; }
  .service-desc { max-width: 290px; }
  .card-link { width: 58px; height: 58px; right: 24px; bottom: 24px; }
  .method { padding-bottom: 100px; }
  .method-title-wrap { margin-bottom: 50px; }
  .steps li { grid-template-columns: 54px 1fr; }
  .contact { margin-left: 12px; margin-right: 12px; border-radius: 34px; }
  .contact-meta { flex-direction: column; gap: 8px; }
  footer { align-items: flex-start; gap: 18px; flex-direction: column; padding-top: 34px; padding-bottom: 34px; }
}

.omra-photo-motion > img { object-position: 50% 48%; animation: omra-photo-drift 20s ease-in-out infinite alternate; }
@keyframes omra-photo-drift {
  from { transform: scale(1.02) translateY(0); }
  to { transform: scale(1.07) translateY(-1%); }
}
.visa-photo > img { object-position: 50% 70%; }
.hero { display:flex; flex-direction:column; justify-content:center; gap:46px; height:auto; min-height:100svh; padding:170px clamp(22px,6vw,90px) 40px; }
.hero .hero-copy { position:relative; left:auto; top:auto; right:auto; transform:none; }
.hero-help { position:relative; z-index:3; width:min(850px,100%); }
.hero-help label { display:block; font-size:20px; font-weight:600; margin-bottom:14px; }
.search-bar { display:flex; gap:8px; background:var(--paper); padding:8px; border-radius:22px; }
.search-bar input { flex:1; min-width:0; border:0; background:transparent; color:var(--ink); padding:14px; font:inherit; font-size:16px; border-radius:14px; }
.search-bar button { border:0; border-radius:16px; padding:14px 24px; background:var(--metallic-gold); color:var(--ink); font:inherit; font-weight:700; cursor:pointer; }
.search-suggestions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.search-suggestions button { border:1px solid #ffffff70; border-radius:99px; color:white; background:#0004; padding:8px 14px; font:inherit; font-size:14px; cursor:pointer; }
.search-results { background:var(--paper); color:var(--ink); border-radius:20px; margin-top:16px; padding:20px; }
.search-results p { margin-bottom:12px; font-size:16px; }
#search-options { display:flex; flex-wrap:wrap; gap:10px; }
#search-options a { display:block; padding:10px 16px; border:1px solid var(--line); border-radius:12px; font-weight:700; }
#search-whatsapp { display:inline-block; margin-top:16px; text-decoration:underline; text-underline-offset:4px; font-size:14px; }
.service-card[id],#sur-mesure { scroll-margin-top:30px; }
@media(max-width:820px) { .hero { padding-top:140px; gap:38px; }.hero-help label { font-size:18px; }.search-bar { border-radius:18px; }.search-bar input { padding:12px 7px; }.search-bar button { padding:12px; }.search-suggestions { gap:6px; } }
.visites-photo > img { object-position: 50% 85%; }
@media (prefers-reduced-motion: reduce) {
  .omra-photo-motion > img { animation: none; transform: none; }
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
