/* Motion and editorial polish, extending the approved V4 composition. */
a:focus-visible,button:focus-visible { outline:2px solid var(--orange); outline-offset:7px; }
.site-nav { -webkit-backdrop-filter:blur(16px); }
.desktop-nav { font-size:14px; }
.desktop-nav a { padding:12px 0; }
.mobile-menu a { line-height:1.15; }
.hero { height:240svh; min-height:0; --opening-opacity:1; --opening-y:0px; --opening-scale:1; --thread-progress:0; --thread-opacity:0; --art-opacity:0; --art-travel:65px; --art-turn:-8deg; --iron-x:0px; --iron-y:0px; --iron-turn:-12deg; --iron-opacity:1; --final-opacity:0; --final-y:70px; --progress:0; }
.hero-sticky { height:100svh; min-height:0; isolation:isolate; }
.hero-opening { position:absolute; z-index:5; top:43%; left:50%; width:max-content; max-width:85%; text-align:center; opacity:var(--opening-opacity); transform:translate(-50%,-50%) translateY(var(--opening-y)) scale(var(--opening-scale)); will-change:transform,opacity; }
.hero-logo { width:clamp(160px,16vw,240px); height:auto; margin:auto; transform:none!important; animation:logo-arrive 1.3s cubic-bezier(.16,1,.3,1) both; }
.hero-origin { margin:28px 0 0; font-size:12px; letter-spacing:.18em; line-height:1.5; opacity:.65; animation:logo-arrive 1.3s .2s both; }
.hero-wire { opacity:.75; z-index:1; }
.hero-wire svg { transform:none; }
.wire-path { stroke-width:1.7; stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--thread-progress)); }
.hero-iron { width:clamp(160px,18vw,275px); left:10%; bottom:13%; opacity:var(--iron-opacity); transform:translate3d(var(--iron-x),var(--iron-y),0) rotate(var(--iron-turn)); z-index:3; }
.hero-iron img { width:100%; height:auto; animation:iron-arrive 1.5s cubic-bezier(.16,1,.3,1) both; }
.hero-art { position:absolute; pointer-events:none; z-index:2; opacity:var(--art-opacity); will-change:transform,opacity; }
.hero-art img { width:100%; height:auto; }
.hero-garments { right:4%; top:-13%; width:clamp(190px,23vw,345px); transform:translateY(calc(var(--art-travel) * -1)) rotate(var(--art-turn)); transform-origin:top center; }
.hero-runner { left:-4%; top:12%; width:clamp(210px,27vw,410px); transform:translateX(calc(var(--art-travel) * -1)); }
.hero-maker { right:2%; bottom:-10%; width:clamp(220px,29vw,440px); transform:translateY(var(--art-travel)); }
/* One fluid type scale at every width; viewport height also limits landscape sizing. */
.hero-finale { position:absolute; z-index:4; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; font-size:min(clamp(32px,8.5vw,96px),12svh); padding:clamp(72px,12svh,96px) 20px clamp(24px,7svh,60px); opacity:var(--final-opacity); transform:translateY(var(--final-y)); pointer-events:none; }
.hero-eyebrow { font-family:'Manrope',sans-serif; font-size:max(12px,.24em); font-weight:500; line-height:1.4; letter-spacing:.18em; margin:0 0 .85em; }
.hero-finale h1 { font-family:'Manrope',sans-serif; font-size:1em; line-height:1.06; letter-spacing:-.055em; margin:0; font-weight:800; }
.hero-finale h1 span,.hero-finale h1 em { display:block; }
.hero-finale h1 em { font-style:normal; color:transparent; -webkit-text-stroke:1.3px var(--cream); }
.hero-services { margin:clamp(12px,3svh,28px) 0 0; font-size:clamp(11px,1.4vw,14px); line-height:1.8; max-width:100%; }
.hero-services i { font-style:normal; color:var(--orange); padding:0 12px; }
.hero-bottom { position:absolute; z-index:6; bottom:30px; left:var(--pad); right:var(--pad); display:flex; justify-content:space-between; align-items:center; font-size:12px; letter-spacing:.12em; }
.hero-location,.hero-index { opacity:.5; width:180px; }
.hero-index { text-align:right; }
.scroll-cue { display:flex; align-items:center; gap:18px; padding:12px; font-size:12px; letter-spacing:.12em; }
.scroll-cue span { color:var(--orange); font-size:22px; }
.hero-progress { position:absolute; z-index:8; bottom:0; left:0; right:0; height:2px; background:rgba(255,242,195,.08); }
.hero-progress span { display:block; height:100%; background:var(--orange); transform:scaleX(var(--progress)); transform-origin:left; }
@keyframes logo-arrive { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:translateY(0); } }
@keyframes iron-arrive { from { opacity:0; transform:translate(-45px,16px) rotate(-8deg); } to { opacity:1; transform:translate(0,0) rotate(0deg); } }
.services { padding-top:100px; padding-bottom:140px; min-height:0; }
.services-heading p,.services-heading h2 { line-height:.88; }
.service-list { width:74%; }
.service-row { grid-template-columns:38px minmax(0,1fr) 165px 22px; gap:18px; padding:36px 0; }
.service-name { font-size:clamp(34px,4vw,60px); line-height:1; }
.service-row p { font-size:14px; }
.service-number { font-size:12px; }
.service-visual { width:27%; right:-1%; bottom:55px; }
.story { min-height:0; padding:130px 0 100px; }
.story-grid { grid-template-columns:120px minmax(0,1fr) 180px; gap:40px; }
.story-title { font-size:clamp(70px,9vw,138px); line-height:.95; }
.story-copy { font-size:16px; gap:30px; }
.story-stamp { width:170px; height:170px; }
.section-kicker,.story-meta { line-height:1.6; }
.manifesto { min-height:0; padding:120px var(--pad) 110px; }
.manifesto-inner { max-width:980px; text-align:left; }
.manifesto-words { margin:52px 0 0; }
.manifesto-line { display:flex; align-items:center; gap:clamp(24px,6vw,90px); font-size:clamp(80px,12vw,166px); line-height:1.08; letter-spacing:-.07em; padding:12px 0 22px; margin:0; border-bottom:1px solid rgba(255,242,195,.16); }
.manifesto-line small { flex:0 0 25px; color:var(--orange); -webkit-text-stroke:0; font:12px 'Poppins',sans-serif; letter-spacing:.08em; }
@media (min-width:901px) {
 .manifesto-inner { max-width:820px; }
 .manifesto-line { font-size:108px; gap:54px; }
}
.manifesto-tag { font-size:20px; line-height:1.7; margin:38px 0 0; }
.manifesto-art.art-left { width:600px; left:auto; right:-360px; top:5%; opacity:.05; }
.franchise { min-height:0; padding:110px 0 130px; }
/* Garment-label inspired outlet directory. */
.outlet-directory { padding-bottom:clamp(64px,8vw,110px); }
.outlet-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:36px; }
.outlet-heading h2 { font:800 clamp(32px,4.8vw,68px)/1.1 'Manrope',sans-serif; letter-spacing:-.05em; margin:24px 0 0; }
.outlet-heading h2 em { font-style:normal; color:transparent; -webkit-text-stroke:1px var(--cream); }
.outlet-count { display:flex; align-items:center; gap:16px; margin:0 0 4px; flex-shrink:0; }
.outlet-count strong { font:500 54px/1 'Manrope',sans-serif; color:var(--orange); letter-spacing:-.06em; }
.outlet-count span { font-size:10px; line-height:1.8; letter-spacing:.08em; }
.outlet-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; padding:0; margin:0; list-style:none; }
.outlet-tag { min-width:0; display:flex; flex-direction:column; background:var(--cream); color:var(--teal); padding:clamp(20px,2.3vw,32px); border-top:4px solid var(--orange); border-radius:0 0 20px 0; }
.outlet-tag-top { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:10px; letter-spacing:.13em; }
.outlet-eyelet { width:12px; height:12px; border-radius:50%; background:var(--teal); outline:1px solid rgba(22,55,66,.3); outline-offset:4px; flex-shrink:0; }
.outlet-tag h3 { font:800 clamp(19px,2.05vw,29px)/1.15 'Manrope',sans-serif; letter-spacing:-.045em; min-height:2.3em; margin:30px 0 16px; overflow-wrap:anywhere; }
.outlet-address { font-size:13px; line-height:1.8; margin:0 0 28px; }
.outlet-contact { border-top:1px dashed rgba(22,55,66,.35); margin-top:auto; padding-top:12px; }
.outlet-contact a { display:block; padding:12px 0; overflow-wrap:anywhere; }
.outlet-link-label { display:block; font-size:9px; font-weight:500; letter-spacing:.12em; margin-bottom:5px; }
.outlet-call > span:last-child { font:700 clamp(17px,1.65vw,23px)/1.5 'Manrope',sans-serif; letter-spacing:-.025em; }
.outlet-instagram > span:last-child { font-size:12px; line-height:1.6; }
.outlet-contact i { font-style:normal; display:inline-block; margin-left:4px; }
.outlet-contact a:hover > span:last-child { text-decoration:underline; text-underline-offset:4px; }
.outlet-contact a:focus-visible { outline:2px solid var(--teal); outline-offset:4px; border-radius:2px; }
@media (max-width:1000px) {
 .outlet-heading { align-items:flex-start; flex-direction:column; }
 .outlet-count strong { font-size:38px; }
 .outlet-list { grid-template-columns:1fr; }
 .outlet-tag { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:28px; padding:24px; }
 .outlet-tag-top { grid-column:1/-1; }
 .outlet-tag h3 { grid-column:1; min-height:0; font-size:clamp(22px,3.4vw,30px); margin:26px 0 12px; }
 .outlet-address { grid-column:1; margin-bottom:0; }
 .outlet-contact { grid-column:2; grid-row:2 / 4; margin:24px 0 0; padding:0 0 0 24px; border-top:0; border-left:1px dashed rgba(22,55,66,.35); }
}
@media (max-width:560px) {
 .outlet-tag { display:flex; padding:24px; }
 .outlet-tag h3 { font-size:clamp(20px,5.8vw,28px); }
 .outlet-address { margin-bottom:24px; }
 .outlet-contact { margin:0; padding:12px 0 0; border-left:0; border-top:1px dashed rgba(22,55,66,.35); }
 .outlet-call > span:last-child { font-size:22px; }
}
.franchise-grid { grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(44px,7vw,110px); }
.franchise-copy h2 { font-size:clamp(48px,5.4vw,82px); line-height:1.15; letter-spacing:-.055em; margin:34px 0; }
.franchise-copy h2 span,.franchise-copy h2 em { display:block; }
.franchise-copy h2 span+span,.franchise-copy h2 em { margin-top:.1em; }
.franchise-copy > p { font-size:16px; line-height:1.8; max-width:440px; }
.franchise-line { display:none; }
.franchise-phone { margin-top:34px; padding:24px 0; }
.franchise-contacts { width:min(550px,100%); margin-top:34px; padding:24px 0 8px; border-top:1px solid rgba(255,242,195,.35); border-bottom:1px solid rgba(255,242,195,.35); }
.franchise-contacts > .phone-label { margin:0 0 12px; }
.franchise-contacts .franchise-phone { width:100%; margin:0; padding:14px 0; border:0; }
.franchise-contacts .franchise-phone + .franchise-phone { border-top:1px solid rgba(255,242,195,.16); }
.franchise-contacts .phone-arrow { grid-row:1; }
.phone-label { font-size:12px; line-height:1.6; }
.phone-number { font-size:clamp(26px,2.6vw,38px); line-height:1.4; }
.franchise-art { margin:0; background:var(--neutral); color:var(--teal); padding:24px 24px 18px; transform:rotate(3deg); }
.franchise-art img { width:100%; height:auto; max-height:620px; object-fit:contain; }
.franchise-art figcaption { display:flex; justify-content:space-between; gap:12px; border-top:1px solid rgba(22,55,66,.3); padding-top:16px; margin-top:18px; font-size:12px; line-height:1.5; }
.footer { padding-top:40px; }
.footer-wire { height:90px; margin-bottom:55px; }
.footer-inner h2 { font-size:clamp(56px,8vw,120px); line-height:1.08; letter-spacing:-.06em; margin-bottom:70px; }
.footer-links { gap:35px; }
.footer-links span,.footer-bottom { font-size:12px; line-height:1.7; }
.footer-links a { padding:6px 0; }
.footer-bottom a { padding:8px 0; }
@media (max-width:1100px) and (min-width:901px) {
 .story-grid { grid-template-columns:1fr 160px; }
 .story-meta { grid-column:1/-1; }
 .story-stamp { width:150px; height:150px; }
 .service-list { width:78%; }
 .service-row { grid-template-columns:28px minmax(0,1fr) 140px 16px; gap:12px; }
 .service-visual { width:23%; }
 .franchise-grid { gap:45px; }
 .franchise-art { padding:16px; }
}
@media (max-width:900px) {
 .hero { height:230svh; min-height:0; }
 .hero-sticky { height:100svh; min-height:0; }
 .hero-opening { top:41%; }
 .hero-logo { width:175px; }
 .hero-origin { font-size:12px; letter-spacing:.11em; max-width:250px; }
 .hero-iron { left:4%; bottom:16%; width:clamp(140px,32vw,215px); }
 .hero-wire svg { transform:scaleX(1.25); }
 .hero-garments { width:44vw; max-width:260px; right:-9%; top:-5%; }
 .hero-runner { width:49vw; max-width:290px; top:16%; left:-18%; }
 .hero-maker { width:54vw; max-width:310px; right:-14%; bottom:7%; }
 .hero-services i { padding:0 5px; }
 .hero-bottom { bottom:22px; }
 .hero-location { display:none; }
 .hero-index { width:auto; font-size:12px; }
 .scroll-cue { padding:10px 0; letter-spacing:.09em; }
 .services { padding-top:76px; padding-bottom:90px; }
 .services-heading p,.services-heading h2 { font-size:clamp(78px,23vw,150px); line-height:.9; }
 .service-list { width:100%; margin-top:46px; }
 .service-row { grid-template-columns:28px minmax(0,1fr); grid-template-rows:auto auto auto; padding:28px 0 30px; gap:14px 12px; }
 .service-name { font-size:clamp(38px,9vw,64px); line-height:1.05; }
 .service-row p { font-size:16px; max-width:none; }
 .mobile-service-art { height:200px; width:min(62vw,260px); }
 .story { padding:78px 0 48px; }
 .story-grid { grid-template-columns:1fr; gap:28px; }
 .story-title { font-size:clamp(60px,18vw,118px); line-height:.96; }
 .story-copy { grid-template-columns:1fr; gap:18px; }
 .story-stamp { width:142px; height:142px; margin-top:0; }
 .manifesto { padding:84px var(--pad); }
 .manifesto-words { margin-top:36px; }
 .manifesto-line { font-size:clamp(50px,13vw,108px); line-height:1.1; gap:18px; padding:18px 0; }
 .manifesto-line small { flex-basis:20px; }
 .manifesto-tag { font-size:17px; margin-top:30px; }
 .franchise { padding:78px 0 90px; }
 .franchise-grid { grid-template-columns:1fr; gap:52px; }
 .franchise-copy h2 { font-size:clamp(36px,9.5vw,72px); line-height:1.2; letter-spacing:-.045em; margin:30px 0; }
 .franchise-copy h2 span+span,.franchise-copy h2 em { margin-top:.14em; }
 .franchise-copy > p { max-width:510px; }
 .franchise-art { width:min(88%,390px); margin:auto; padding:20px; }
 .franchise-art img { max-height:510px; }
 .franchise-art figcaption { font-size:12px; flex-direction:column; gap:4px; }
 .phone-number { font-size:clamp(25px,6.8vw,38px); }
 .phone-arrow { font-size:30px; }
 .footer { padding-top:24px; }
 .footer-wire { height:65px; margin-bottom:34px; }
 .footer-inner h2 { font-size:clamp(32px,9.1vw,70px); line-height:1.17; letter-spacing:-.045em; margin-bottom:44px; }
 .footer-links { grid-template-columns:1fr; gap:24px; padding:26px 0; }
 .footer-bottom { gap:20px; align-items:center; padding-top:20px; }
}
@media (max-height:560px) and (orientation:landscape) {
 .hero-opening { top:42%; }.hero-logo { width:140px; }.hero-origin { margin-top:14px; }
 .hero-iron { width:140px; bottom:15%; }
 .hero-bottom { bottom:8px; }
 .mobility-sticky { min-height:0; padding-top:76px; }.mobility-copy { flex-direction:row; gap:20px; }
 .mobility-copy h2 { font-size:40px; margin-top:12px; }.mobility-copy > p { width:220px; font-size:14px; }
 .auto-stage { min-height:120px; }.auto-wrap { width:260px; bottom:10px; }
}
@media (prefers-reduced-motion:reduce) {
 .hero { height:100svh; min-height:540px; }
 .hero-sticky { position:relative; min-height:540px; }
 .hero-art,.hero-finale,.hero-progress { display:none; }
 .hero-opening { opacity:1; transform:translate(-50%,-50%); }
 .hero-iron { transform:rotate(-12deg); opacity:1; }
 .wire-path { stroke-dashoffset:.82; }
 .hero-logo,.hero-iron img,.hero-origin { animation:none; }
 .franchise-art { transform:none; }
}

.service-icon { object-fit:contain; }
.mobile-service-art img { width:100%; height:100%; object-fit:contain; }
.service-row[data-service="dry"] .mobile-service-art { height:230px; }

.hero-signature { position:absolute; z-index:4; top:47%; left:50%; width:clamp(190px,22vw,300px); opacity:var(--signature-opacity,0); transform:translate(-50%,-50%) translateY(var(--signature-y,22px)); text-align:center; pointer-events:none; }
.hero-signature img { width:100%; height:auto; }
.hero-signature p { font-family:'Noto Sans Malayalam',sans-serif; font-size:18px; line-height:1.7; margin:22px -20px 0; }
@media (prefers-reduced-motion:reduce) { .hero-signature { display:none; } }

/* Continuous illustrated frame, with a reserved central area for the logos. */
.hero-opening,.hero-signature { top:49%; }
.hero-logo { width:clamp(160px,16vw,220px); }
.hero-signature { width:clamp(180px,20vw,250px); }
.hero-wire { inset:0; height:100%; opacity:var(--thread-opacity,0); }
.hero-wire svg { transform:none; }
.wire-path { stroke-width:1.6; stroke-dasharray:1000; stroke-dashoffset:1000; }
.hero-iron { left:12%; right:auto; bottom:20%; width:min(12vw,140px); }
.hero-art { height:auto; width:min(14vw,165px); }
.hero-art img { display:block; width:100%; max-width:100%; height:auto; }
.hero-runner { top:20%; bottom:auto; left:11%; right:auto; transform:translateY(var(--art-travel)); }
.hero-garments { top:16%; bottom:auto; left:auto; right:12%; width:min(9vw,100px); transform:translateY(var(--art-travel)); }
.hero-maker { top:auto; bottom:20%; left:auto; right:12%; width:min(12vw,140px); transform:translateY(var(--art-travel)); }
.hero-bottom { justify-content:space-between; }
@media (max-width:900px) {
 .hero-logo { width:165px; }
 .hero-signature { width:185px; max-width:52vw; }
 .hero-iron { left:10%; bottom:18%; width:min(22vw,100px); }
 .hero-runner { left:9%; top:20%; width:min(24vw,105px); }
 .hero-garments { right:11%; top:17%; width:min(17vw,72px); }
 .hero-maker { left:auto; right:11%; bottom:18%; width:min(22vw,100px); }
}
@media (max-height:560px) and (orientation:landscape) {
 .hero-logo { width:130px; }.hero-signature { width:145px; }
 .hero-iron { width:70px; bottom:20%; }
 .hero-runner { width:80px; top:24%; }
 .hero-garments { width:45px; top:24%; }
 .hero-maker { width:65px; bottom:20%; }
}
@media (prefers-reduced-motion:reduce) {
 .hero-wire { display:none; }
}

/* Story mark belongs beside the story copy, without its own empty row. */
.story { padding:100px 0 64px; }
.story-grid { grid-template-columns:120px minmax(0,1fr); gap:36px; }
.story-main { max-width:960px; }
.story-details { display:grid; grid-template-columns:minmax(0,1fr) 148px; align-items:center; gap:36px; }
.story-copy { max-width:none; }
.story-stamp { width:148px; height:148px; margin:0; justify-self:end; align-self:center; }
.story-stamp span { font-size:24px; }
.story-stamp small { font-size:11px; }
.poster-growth { display:inline-flex; align-items:center; gap:9px; }
.footer-links .footer-franchise { gap:8px; min-width:0; }
.footer-links .footer-email { font-family:'Poppins',sans-serif; font-size:14px; line-height:1.7; font-weight:400; padding-top:0; overflow-wrap:anywhere; }
@media (max-width:1100px) {
 .story-grid { grid-template-columns:1fr; gap:28px; }
 .story-meta { grid-column:auto; }
}
@media (max-width:900px) {
 .story { padding:72px 0 48px; }
 .story-details { grid-template-columns:minmax(0,1fr) 124px; gap:24px; }
 .story-copy { grid-template-columns:1fr; }
 .story-stamp { width:124px; height:124px; }
 .story-stamp span { font-size:21px; }
}
@media (max-width:600px) {
 .story-details { grid-template-columns:minmax(0,1fr) 108px; gap:20px 24px; }
 .story-copy { display:contents; }
 .story-copy p:first-child { grid-column:1/-1; }
 .story-copy p:last-child { grid-column:1; grid-row:2; align-self:center; }
 .story-details p { margin:0; font-size:16px; line-height:1.75; }
 .story-stamp { grid-column:2; grid-row:2; width:108px; height:108px; }
 .story-stamp span { font-size:19px; }
 .story-stamp small { font-size:10px; margin-top:10px; }
}

/* A longer native-scroll runway; iron turns before travelling to its mirror point. */
.hero { height:400svh; }
.hero-iron { transition:transform .14s linear,opacity .14s linear; }
.hero-iron img { transform:perspective(700px) rotateY(var(--iron-facing,0deg)); transform-origin:50% 50%; transition:transform .14s linear; animation:iron-fade-in 1.2s ease both; }
@keyframes iron-fade-in { from { opacity:0; } to { opacity:1; } }
@media (max-width:900px) { .hero { height:400svh; } }
@media (prefers-reduced-motion:reduce) {
 .hero { height:100svh; }
 .hero-iron,.hero-iron img { transition:none; }
 .hero-iron img { transform:none; animation:none; }
}

/* Only the approved opening motion changes; retain the original site typography. */
.hero-wire .wire-path,.hero-wire .wire-head { fill:none; stroke:#fff2c3; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:none; stroke-dashoffset:0; }
.hero-wire .wire-path { opacity:.62; }
.hero-wire .wire-head { opacity:.95; }
.hero-wire .wire-dot { fill:#fff2c3; }
.hero-finale h1 { color:#fff2c3; font-weight:800; }
.hero-finale h1 span { color:#fff2c3; -webkit-text-fill-color:#fff2c3; }
.hero-iron,.hero-iron img { transition:none; }

/* Timed opening: one viewport, then ordinary page scrolling after the finale. */
.hero { height:100svh; min-height:0; }
.hero-sticky { min-height:0; }
@media (prefers-reduced-motion:reduce) {
 .hero-opening,.hero-signature,.hero-iron,.hero-wire { display:none; }
 .hero-finale { display:flex; opacity:1; transform:none; }
}
