/*
Theme Name: TORX Editorial
Author: TORX
Description: TORX corporate website — custom editorial theme.
Version: 0.2.1
Text Domain: torx
Requires at least: 6.0
Requires PHP: 7.4
License: GPL-2.0-or-later
*/
:root{--green:#073b30;--dark:#092b24;--ink:#183a30;--paper:#fafbf8;--gold:#c1ad77;--line:#d4dfd7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Helvetica Neue','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:3px solid #bf9e4b;outline-offset:6px}::selection{background:#ceddcb;color:#073b30}.skip{position:fixed;top:-80px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.header{height:94px;position:absolute;top:0;left:0;width:100%;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 5%;color:white;border-bottom:1px solid #ffffff35}.brand{font-size:36px;font-weight:600;letter-spacing:.14em;line-height:1}.brand small{display:block;font-size:9px;font-weight:400;letter-spacing:.26em;margin-top:9px}.brand img{max-width:150px;max-height:58px;object-fit:contain}.nav{display:flex;align-items:center;gap:35px;font-size:14px;letter-spacing:.1em}.nav a{position:relative}.nav a:after{content:'';display:block;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s;margin-top:5px}.nav a:hover:after{transform:scaleX(1)}.nav .nav-contact{border:1px solid #ffffff70;padding:13px 23px}.menu{display:none;background:none;border:0;color:inherit;padding:15px}.hero{height:100svh;min-height:660px;max-height:1200px;position:relative;overflow:hidden;background:var(--dark);color:white}.hero-image{position:absolute;width:100%;height:120%;top:-10%;object-fit:cover;object-position:center;will-change:transform}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#001f19a3,transparent 85%),linear-gradient(0deg,#001b18bd,transparent 65%)}.hero-copy{position:absolute;top:44%;left:9%;z-index:2}.eyebrow{font-size:12px;letter-spacing:.23em;font-weight:500}.hero h1{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:clamp(40px,5.3vw,80px);font-weight:400;line-height:1.55;letter-spacing:.14em;margin:23px 0}.hero-desc{font-size:14px;letter-spacing:.12em;line-height:2}.hero-bottom{position:absolute;bottom:36px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:flex-end;z-index:3;font-size:11px;letter-spacing:.15em}.scroll{display:flex;align-items:center;gap:18px}.scroll:before{content:'';width:1px;height:55px;background:linear-gradient(white,#ffffff22)}.caption{font-size:10px;letter-spacing:.06em;opacity:.8}.wrap{width:82%;max-width:1220px;margin:auto}.intro{padding:140px 0 150px;display:grid;grid-template-columns:1fr 2fr;gap:8%}.label{font-size:12px;letter-spacing:.2em;text-transform:uppercase}.label:before{content:'';display:inline-block;width:24px;height:1px;background:var(--gold);vertical-align:middle;margin-right:14px}.intro h2,.section-title{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:clamp(28px,3.1vw,45px);font-weight:400;line-height:1.75;letter-spacing:.1em;margin:0 0 30px}.copy{font-size:16px;line-height:2.3;letter-spacing:.06em;max-width:620px}.intro .copy{color:#486052}.business-head{padding:0 0 50px;display:flex;justify-content:space-between;align-items:flex-end}.business-head h2{font-size:58px;font-weight:400;letter-spacing:-.04em;margin:18px 0 0}.business-head p{font-size:14px;letter-spacing:.12em}.business{background:#eff3ee;padding-bottom:95px;padding-top:80px}.panel{display:grid;grid-template-columns:1.2fr 1fr;min-height:500px;margin-top:24px;background:white}.panel-image{position:relative;overflow:hidden;min-height:410px}.panel-image img{position:absolute;width:100%;height:110%;top:-5%;object-fit:cover;transition:transform .8s;will-change:transform}.panel-image .caption{position:absolute;bottom:18px;left:22px;color:white;z-index:1;background:#07261a80;padding:5px 8px}.panel-copy{padding:66px 52px;display:flex;flex-direction:column;justify-content:center}.num{font-size:12px;letter-spacing:.18em;color:#708476}.num span{color:var(--green);margin-right:22px}.panel h3{font-family:'Hiragino Mincho ProN','Yu Mincho',serif;font-size:32px;font-weight:400;letter-spacing:.14em;margin:24px 0 6px}.english{font-size:10px;letter-spacing:.18em;color:#637b6d}.panel p{font-size:14px;line-height:2.1;margin:25px 0;color:#4c6256}.text-link{font-size:13px;border-bottom:1px solid #8fa496;padding:12px 0;align-self:flex-start;letter-spacing:.1em;transition:color .2s}.text-link:hover{color:#a07e36}.panel.reverse{grid-template-columns:1fr 1.2fr}.panel.reverse .panel-image{order:2}.panel.reverse .panel-image img{object-position:left}.reuse{background:var(--green);color:white;display:grid;grid-template-columns:1fr 1.2fr;margin-top:24px;min-height:370px}.reuse .num,.reuse .num span,.reuse p{color:#c5d8cb}.reuse h3{font-size:30px;font-weight:400;margin-bottom:0}.reuse-art{border-left:1px solid #ffffff24;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:30px;overflow:hidden}.reuse-art strong{font-family:Georgia,serif;font-size:clamp(65px,9vw,120px);font-weight:400;letter-spacing:-.055em;color:#b7c7b6}.reuse-art p{font-size:12px;letter-spacing:.2em}.status{font-size:11px;border:1px solid #a7bcaa;padding:8px 12px;align-self:flex-start;margin-top:18px;letter-spacing:.1em}.company{padding:140px 0;display:grid;grid-template-columns:1fr 1.3fr;gap:12%}.company .section-title{margin-top:28px}.company dl{margin:0}.company dl div{display:grid;grid-template-columns:105px 1fr;gap:20px;border-bottom:1px solid var(--line);padding:23px 0;font-size:14px;line-height:1.9}.company dt{color:#708476}.company dd{margin:0}.message{border-top:1px solid var(--line);padding:80px 0 100px;display:grid;grid-template-columns:1fr 1.3fr;gap:12%}.message h3{font-family:'Yu Mincho',serif;font-size:30px;font-weight:400;line-height:1.8;margin:0 0 22px}.message p{font-size:15px;line-height:2.3}.signature{text-align:right;margin-top:30px;letter-spacing:.12em}.signature strong{display:inline-block;margin-left:20px;font-family:'Yu Mincho',serif;font-size:24px;font-weight:400}.contact{background:var(--green);color:white;padding:90px 0}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact h2{font-size:64px;font-weight:400;letter-spacing:-.035em;margin:0 0 15px}.contact p{font-size:14px;line-height:2;letter-spacing:.05em}.contact-button{display:inline-block;border:1px solid #b8c7b8;padding:24px 42px;font-size:14px;letter-spacing:.1em;transition:background .2s,color .2s}.contact-button:hover{background:white;color:var(--green)}.contact-note{font-size:11px!important;opacity:.75;text-align:center}.footer{background:#042b23;color:#cedbd0;padding:50px 5% 30px}.footer-row{display:flex;align-items:center;justify-content:space-between}.footer-links{display:flex;gap:26px;font-size:12px}.copyright{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.1em;margin-top:50px;padding-top:23px;border-top:1px solid #ffffff21}.article{padding:150px 9% 90px;min-height:60vh}.article h1{font-size:36px}.article p{line-height:2}.inner-page .header{background:var(--green)}.news{padding:60px 0;border-top:1px solid var(--line)}.news a{display:block;padding:20px 0;border-bottom:1px solid var(--line)}.news time{margin-right:20px;font-size:13px}.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .85s,transform .85s}.js .reveal.visible{opacity:1;transform:none}.admin-bar .header{top:32px}
@media(min-width:1500px){.hero-copy{left:calc((100vw - 1220px)/2)}}
@media(max-width:850px){.header{height:80px;padding:0 6%}.brand{font-size:29px}.menu{display:block;z-index:2;font-size:12px;letter-spacing:.15em}.menu:after{content:'☰';font-size:19px;margin-left:10px}.nav{display:none;position:absolute;top:80px;left:0;right:0;background:var(--green);padding:28px 8%;flex-direction:column;align-items:stretch;gap:25px}.nav.open{display:flex}.hero{min-height:650px;max-height:1000px}.hero-copy{left:8%;right:7%;top:39%}.hero h1{font-size:42px;letter-spacing:.08em}.hero-image{object-position:57% center}.hero-bottom{left:8%;right:8%;bottom:26px}.hero-bottom>span{display:none}.wrap{width:84%}.intro{padding:85px 0;grid-template-columns:1fr;gap:35px}.intro h2{font-size:29px}.copy{font-size:15px}.business{padding-top:60px;padding-bottom:60px}.business-head{display:block;padding-bottom:15px}.business-head h2{font-size:42px}.business-head p{margin-top:22px}.panel,.panel.reverse{grid-template-columns:1fr}.panel-image{min-height:300px}.panel.reverse .panel-image{order:0}.panel-copy{padding:35px 28px}.panel h3{font-size:28px}.reuse{grid-template-columns:1fr}.reuse-art{border-left:0;border-top:1px solid #ffffff24;min-height:230px}.reuse-art strong{font-size:84px}.company{padding:85px 0 60px;grid-template-columns:1fr;gap:20px}.company .section-title{margin-top:15px}.company dl div{grid-template-columns:78px 1fr;font-size:13px;gap:15px}.message{padding:60px 0 80px;grid-template-columns:1fr;gap:30px}.message h3{font-size:26px}.contact{padding:65px 0}.contact-inner{display:block}.contact h2{font-size:50px}.contact-button{margin-top:18px;width:100%;text-align:center;padding:20px}.footer-row{align-items:flex-start;gap:35px;flex-direction:column}.footer-links{flex-wrap:wrap;gap:22px}.copyright{gap:20px;font-size:9px}.signature strong{font-size:21px}.caption{font-size:9px}.admin-bar .header{top:46px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}.hero-image,.panel-image img{will-change:auto}}

/* Supplied TORX logo: original image retained, framed by the layout. */
.brand .logo-window{display:block;width:160px;height:58px;overflow:hidden;background:#353535}.brand .logo-window img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;transform:scale(1.65)}@media(max-width:850px){.brand .logo-window{width:140px;height:51px}}

/* Supplied business logos. Image files retain their original artwork and margins. */
.panel h3.business-logo{width:100%;max-width:340px;height:110px;margin:24px 0 0;overflow:hidden;background:#fff;line-height:1}.business-logo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.38)}.panel h3.zoen-logo{max-width:300px;height:160px;background:#fafbed}.zoen-logo img{transform:scale(1.06)}@media(max-width:850px){.panel h3.business-logo{height:90px;max-width:310px}.panel h3.zoen-logo{height:145px;max-width:280px}}

/* Transparent logo assets. */
.brand .logo-window{background:transparent;width:170px;height:64px;overflow:visible}.brand .logo-window img{object-fit:contain;transform:none}.panel h3.zoen-logo{background:transparent;max-width:300px;height:160px}.zoen-logo img{object-fit:contain;transform:none}.panel.reverse .panel-image img{object-position:center}@media(max-width:850px){.brand .logo-window{width:145px;height:55px}}

.contact-phone{margin-bottom:24px}.contact-phone span{display:block;font-size:12px;letter-spacing:.06em;margin-bottom:10px}.contact-phone a{display:inline-block;font-size:34px;letter-spacing:.05em;line-height:1.3}.contact-phone a:hover{text-decoration:underline;text-underline-offset:6px}@media(max-width:850px){.contact-phone{margin-top:30px}.contact-phone a{font-size:32px}}

/* v0.2: refined navigation, reading rhythm and mobile contact. */
.header{position:fixed;transition:background .3s,box-shadow .3s,border-color .3s}.header.is-scrolled,.header.menu-open{background:rgba(4,43,35,.97);border-color:rgba(255,255,255,.12);box-shadow:0 6px 28px #001c1914;backdrop-filter:blur(12px)}.nav a.is-active:after{transform:scaleX(1)}.nav .nav-contact{transition:background .25s,color .25s}.nav .nav-contact:hover{background:white;color:var(--green)}.nav a{min-height:26px;display:flex;flex-direction:column;justify-content:center}.hero-copy{text-shadow:0 2px 22px #001b1838}.hero h1{line-height:1.5}.panel{overflow:hidden}.panel-copy{padding-top:58px;padding-bottom:58px}.panel p{line-height:2.25}.business-head h2{font-size:clamp(34px,4vw,58px);line-height:1.5;letter-spacing:.01em}.text-link{min-height:44px}.company dl div{grid-template-columns:120px 1fr}.company dd small{color:#647d6e;font-size:12px}.company dd a{font-variant-numeric:tabular-nums}.contact-phone a{font-variant-numeric:tabular-nums}.contact-button{width:100%;text-align:center}.footer-links a{padding:10px 0}.scroll{min-height:44px}.company dd{overflow-wrap:anywhere}.contact-inner>div:last-child{min-width:320px}.signature{line-height:1.8}
@media(max-width:850px){html{scroll-padding-top:100px}.nav{max-height:calc(100svh - 80px);overflow-y:auto;gap:12px;padding:20px 8% 28px}.nav a{min-height:44px}.nav .nav-contact{align-items:center;margin-top:4px}.hero h1{font-size:clamp(34px,9.7vw,48px);line-height:1.65}.hero-desc{font-size:13px;letter-spacing:.04em}.eyebrow{font-size:10px;letter-spacing:.16em}.panel-copy{padding:34px 25px 40px}.panel-image{min-height:270px}.company dl div{grid-template-columns:1fr;gap:7px;padding:20px 0}.company dt{font-size:12px;letter-spacing:.09em}.company dd{font-size:15px;line-height:1.9}.company dt br{display:none}.contact-inner>div:last-child{min-width:0}.contact-phone span{font-size:12px}.contact-phone a{font-size:clamp(28px,8.2vw,36px);min-height:44px}.contact-button{min-height:60px;display:flex;align-items:center;justify-content:center}.contact-note{text-align:center}.signature{font-size:13px}.signature strong{margin-left:12px}.copy br{line-height:inherit}}

/* Business navigation disclosure: works with tap, click and keyboard. */
.business-dropdown{position:relative}.business-dropdown summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;cursor:pointer;list-style:none;white-space:nowrap}.business-dropdown summary::-webkit-details-marker{display:none}.business-dropdown summary:focus-visible{outline:3px solid #bf9e4b;outline-offset:6px}.dropdown-mark{font-size:17px;font-weight:300;transition:transform .2s}.business-dropdown[open] .dropdown-mark{transform:rotate(45deg)}.business-dropdown summary.is-active{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}.business-options{position:absolute;top:calc(100% + 10px);left:-24px;min-width:230px;padding:12px 24px;background:#073b30;color:white;box-shadow:0 14px 32px #001a1830;border:1px solid #ffffff26}.business-options a{padding:14px 0;min-height:48px;font-size:14px;letter-spacing:.08em}.business-options a+a{border-top:1px solid #ffffff20}.business-options a:hover{color:#dfcd9e}.business-options a:after{margin-top:6px}.panel:focus,.reuse:focus{outline:none}.panel:focus-visible,.reuse:focus-visible{outline:2px solid #b59d61;outline-offset:5px}@media(max-width:850px){.business-dropdown summary{width:100%;padding:4px 0}.business-options{position:static;margin:4px 0 12px;min-width:0;box-shadow:none;border:0;border-left:1px solid #b7c9b478;padding:0 0 0 20px;background:transparent}.business-options a{font-size:14px;min-height:50px}.business-options a+a{border-top:0}}
