/*
Theme Name: GP Construction DX
Theme URI: https://example.com/
Author: 株式会社GP
Description: 建設業向けDXシステム開発会社のための、黒・グレー・ゴールドを基調としたオリジナルWordPressテーマ。トップページの主要な文字・画像・ボタンはカスタマイザーから編集できます。
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Text Domain: gp-construction-dx
*/

:root{
  --gp-black:#080808;--gp-black-2:#111;--gp-charcoal:#171717;--gp-line:#303030;
  --gp-gold:#c99a49;--gp-gold-light:#e2bd79;--gp-white:#fff;--gp-gray:#b9b9b9;
  --gp-bg:#f5f4f1;--gp-max:1240px;--gp-header:82px;
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--gp-bg);color:#111;font-family:"Noto Sans JP","Yu Gothic",YuGothic,Meiryo,sans-serif;line-height:1.75}body.admin-bar .site-header{top:32px}
a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.container{width:min(calc(100% - 40px),var(--gp-max));margin-inline:auto}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:var(--gp-header);display:flex;align-items:center;background:linear-gradient(to bottom,rgba(0,0,0,.85),rgba(0,0,0,.25));border-bottom:1px solid rgba(255,255,255,.08);transition:.3s}.site-header.is-scrolled{background:rgba(6,6,6,.96);backdrop-filter:blur(12px);box-shadow:0 8px 30px rgba(0,0,0,.2)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px}.site-branding{display:flex;align-items:center;gap:12px;min-width:210px}.custom-logo{max-height:52px;width:auto}.site-title{color:#fff;font-weight:700;font-size:1.12rem;letter-spacing:.04em}.main-navigation{display:flex;align-items:center;gap:28px}.main-navigation ul{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0}.main-navigation a{color:#fff;font-size:.88rem;font-weight:600;position:relative}.main-navigation .current-menu-item>a:after,.main-navigation a:hover:after{content:"";position:absolute;height:2px;left:0;right:0;bottom:-15px;background:var(--gp-gold)}.header-actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:0 26px;border:1px solid rgba(255,255,255,.45);color:#fff;font-weight:700;font-size:.92rem;transition:.25s;background:transparent}.btn:hover{transform:translateY(-2px);border-color:var(--gp-gold);color:var(--gp-gold-light)}.btn-gold{background:linear-gradient(135deg,var(--gp-gold-light),var(--gp-gold));border-color:var(--gp-gold);color:#111}.btn-gold:hover{color:#111;filter:brightness(1.06)}.menu-toggle{display:none;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;width:46px;height:42px;font-size:1.5rem}
.hero{position:relative;min-height:760px;display:flex;align-items:center;background:#0b0b0b center/cover no-repeat;color:#fff;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.78) 36%,rgba(0,0,0,.30) 70%,rgba(0,0,0,.46) 100%)}.hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to right,#000,transparent)}.hero-content{position:relative;z-index:2;padding-top:var(--gp-header);max-width:720px}.hero-eyebrow{display:flex;align-items:center;gap:12px;color:var(--gp-gold-light);font-weight:700;letter-spacing:.12em;margin-bottom:18px}.hero-eyebrow:before{content:"";width:42px;height:1px;background:var(--gp-gold)}.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(2.5rem,5vw,5rem);line-height:1.35;letter-spacing:.06em;font-weight:500;margin:0 0 18px}.hero-lead{font-size:clamp(1.15rem,2vw,1.45rem);color:var(--gp-gold-light);font-weight:700;margin:0 0 20px}.hero-description{font-size:1rem;color:#ddd;max-width:650px;margin-bottom:34px}.hero-buttons{display:flex;gap:14px;flex-wrap:wrap}.hero-side-label{position:absolute;z-index:3;right:18px;bottom:70px;color:#aaa;font-size:.7rem;letter-spacing:.25em;writing-mode:vertical-rl}.hero-side-label:after{content:"";display:block;width:1px;height:70px;background:var(--gp-gold);margin:15px auto 0}
.section-dark{background:linear-gradient(180deg,#111,#090909);color:#fff}.section{padding:90px 0}.section-heading{text-align:center;margin-bottom:42px}.section-heading .en{color:var(--gp-gold);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase}.section-heading h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(1.8rem,3vw,2.6rem);margin:6px 0}.services-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.service-card{border:1px solid var(--gp-line);padding:34px 24px 28px;text-align:center;background:linear-gradient(145deg,#151515,#0b0b0b);min-height:310px;transition:.3s;display:flex;flex-direction:column}.service-card:hover{border-color:var(--gp-gold);transform:translateY(-6px);box-shadow:0 18px 50px rgba(0,0,0,.35)}.service-icon{width:62px;height:62px;margin:0 auto 22px;border:1px solid rgba(201,154,73,.55);display:grid;place-items:center;color:var(--gp-gold-light);font-size:1.8rem}.service-card h3{color:var(--gp-gold-light);font-size:1.08rem;margin:0 0 14px}.service-card p{color:#c8c8c8;font-size:.88rem;margin:0;flex:1}.card-arrow{display:block;margin-top:20px;color:var(--gp-gold);font-size:1.5rem}
.about{background:#f5f4f1;position:relative;overflow:hidden}.about:before{content:"";position:absolute;left:-180px;top:-160px;width:520px;height:520px;border:1px solid rgba(0,0,0,.08);transform:rotate(45deg)}.about-grid{position:relative;display:grid;grid-template-columns:1.1fr 2fr;gap:70px;align-items:center}.about-copy .en{color:var(--gp-gold);font-weight:700;letter-spacing:.14em}.about-copy h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(2rem,3.2vw,3rem);line-height:1.5;margin:8px 0 18px}.about-copy p{color:#444}.about-copy .btn{margin-top:12px;background:#111;border-color:#111}.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#ddd}.feature{background:#fff;padding:40px 28px;text-align:center;min-height:280px}.feature-icon{font-size:2.4rem;margin-bottom:15px}.feature h3{font-size:1rem;margin:0 0 12px}.feature p{font-size:.88rem;color:#555;margin:0}
.news-strip{background:#101010;color:#fff;padding:28px 0}.news-inner{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:30px}.news-title .en{color:var(--gp-gold);font-size:1.1rem;letter-spacing:.12em}.news-list{display:grid;gap:10px}.news-item{display:grid;grid-template-columns:110px 100px 1fr;gap:15px;align-items:center;font-size:.9rem}.news-item time{color:#bbb}.news-cat{background:var(--gp-gold);color:#111;text-align:center;padding:3px 8px;font-size:.75rem}.news-more{color:var(--gp-gold-light);white-space:nowrap}
.cta{position:relative;background:#0b0b0b;color:#fff;text-align:center;padding:85px 0;overflow:hidden}.cta:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 100%,rgba(201,154,73,.20),transparent 55%)}.cta .container{position:relative}.cta h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(2rem,4vw,3.3rem);font-weight:500;margin:0 0 12px}.cta p{color:#bbb;margin-bottom:28px}.cta-buttons{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.site-footer{background:#050505;color:#aaa;border-top:1px solid #272727;padding:52px 0 24px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px}.footer-brand img{max-height:80px;width:auto}.footer-brand p{max-width:420px;font-size:.86rem}.footer-menu ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}.footer-menu a:hover{color:var(--gp-gold)}.footer-heading{color:#fff;margin:0 0 15px}.footer-contact{font-size:.9rem}.copyright{border-top:1px solid #222;margin-top:38px;padding-top:20px;text-align:center;font-size:.75rem}
.content-area{padding:140px 0 80px}.entry-card{background:#fff;padding:40px;margin-bottom:24px;border:1px solid #e5e5e5}.entry-title{font-family:"Yu Mincho",serif}.entry-meta{color:#777;font-size:.85rem}.entry-content a{color:#9b6a1f;text-decoration:underline}.pagination{margin-top:30px}
@media(max-width:1100px){.main-navigation{display:none}.header-actions{display:none}.menu-toggle{display:block}.main-navigation.is-open{display:block;position:absolute;top:var(--gp-header);left:0;right:0;background:#080808;padding:20px}.main-navigation.is-open ul{display:grid;gap:0}.main-navigation.is-open li{border-bottom:1px solid #222}.main-navigation.is-open a{display:block;padding:14px}.services-grid{grid-template-columns:repeat(3,1fr)}.about-grid{grid-template-columns:1fr}.features-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){:root{--gp-header:68px}.container{width:min(calc(100% - 28px),var(--gp-max))}.custom-logo{max-height:44px}.site-title{font-size:.95rem}.hero{min-height:680px;background-position:62% center}.hero:before{background:linear-gradient(90deg,rgba(0,0,0,.94),rgba(0,0,0,.68))}.hero h1{font-size:2.25rem}.hero-side-label{display:none}.section{padding:65px 0}.services-grid{grid-template-columns:1fr}.service-card{min-height:auto}.features-grid{grid-template-columns:1fr}.news-inner{grid-template-columns:1fr}.news-item{grid-template-columns:90px 80px 1fr}.footer-grid{grid-template-columns:1fr}.btn{width:100%}.hero-buttons,.cta-buttons{display:grid;grid-template-columns:1fr;width:100%}}


/* v1.0.1: header/logo layout fix */
.site-branding{min-width:170px;flex:0 0 auto;overflow:visible}
.default-logo,.custom-logo-link{display:flex;align-items:center;justify-content:center;flex:0 0 50px;width:50px;height:50px;overflow:hidden}
.default-logo img,.custom-logo-link img,.site-header .custom-logo{display:block!important;width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important;object-fit:contain!important;margin:0!important}
.site-title{white-space:nowrap;line-height:1.2}
.main-navigation{min-width:0;gap:18px}
.main-navigation ul{gap:18px}
.main-navigation a{white-space:nowrap}
.header-actions{flex:0 0 auto}
.header-actions .btn{min-height:48px;padding:0 18px;white-space:nowrap}
@media(max-width:1250px){.main-navigation{display:none}.header-actions{display:none}.menu-toggle{display:block}.main-navigation.is-open{display:block;position:absolute;top:var(--gp-header);left:0;right:0;background:#080808;padding:20px}.main-navigation.is-open ul{display:grid;gap:0}.main-navigation.is-open li{border-bottom:1px solid #222}.main-navigation.is-open a{display:block;padding:14px}}
@media(max-width:700px){.default-logo,.custom-logo-link{width:42px;height:42px;flex-basis:42px}.default-logo img,.custom-logo-link img,.site-header .custom-logo{width:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important}.site-branding{min-width:0;gap:9px}}

/* Contact page */
.contact-page{background:#0b0b0b;color:#fff}.contact-hero{position:relative;padding:150px 0 90px;background:linear-gradient(120deg,rgba(0,0,0,.98),rgba(17,17,17,.88)),radial-gradient(circle at 80% 20%,rgba(209,164,82,.2),transparent 34%);border-bottom:1px solid rgba(209,164,82,.28)}.contact-hero-inner{max-width:980px}.contact-hero .section-kicker,.contact-info-panel .section-kicker{color:#d7aa58;letter-spacing:.22em;font-size:12px;font-weight:700}.contact-hero h1{font-size:clamp(42px,6vw,78px);line-height:1.15;margin:16px 0 22px;font-family:serif;font-weight:500}.contact-hero-lead{font-size:clamp(20px,2.4vw,30px);line-height:1.65;margin:0 0 20px}.contact-hero-desc{max-width:760px;color:#c9c9c9;line-height:2}.contact-main-section{padding:90px 0 110px;background:#f4f2ed;color:#171717}.contact-grid{display:grid;grid-template-columns:minmax(280px,.78fr) minmax(0,1.45fr);gap:42px;align-items:start}.contact-info-panel,.contact-form-panel{background:#fff;border:1px solid #dedbd3;box-shadow:0 18px 45px rgba(0,0,0,.07)}.contact-info-panel{padding:46px;position:sticky;top:110px;background:#111;color:#fff;border-color:#2b2b2b}.contact-info-panel h2,.contact-form-panel h2{font-family:serif;font-size:clamp(28px,3vw,40px);font-weight:500;margin:14px 0 22px}.contact-info-panel>p{color:#c9c9c9;line-height:1.9}.contact-details{margin-top:38px}.contact-details>div{padding:20px 0;border-top:1px solid rgba(255,255,255,.14)}.contact-details dt{color:#d7aa58;font-size:11px;letter-spacing:.18em;margin-bottom:8px}.contact-details dd{margin:0;font-size:18px;word-break:break-word}.contact-details a{color:#fff;text-decoration:none}.contact-form-panel{padding:50px}.gp-cf7-wrap .wpcf7-form p{margin:0 0 23px}.gp-cf7-wrap label{display:block;font-weight:700;font-size:14px;line-height:1.8}.gp-cf7-wrap input[type=text],.gp-cf7-wrap input[type=email],.gp-cf7-wrap input[type=tel],.gp-cf7-wrap input[type=url],.gp-cf7-wrap input[type=number],.gp-cf7-wrap select,.gp-cf7-wrap textarea{width:100%;box-sizing:border-box;margin-top:8px;padding:15px 16px;border:1px solid #ccc8be;background:#faf9f6;color:#111;border-radius:0;font:inherit;transition:.2s}.gp-cf7-wrap textarea{min-height:170px;resize:vertical}.gp-cf7-wrap input:focus,.gp-cf7-wrap select:focus,.gp-cf7-wrap textarea:focus{outline:none;border-color:#c69740;box-shadow:0 0 0 3px rgba(198,151,64,.12);background:#fff}.gp-cf7-wrap input[type=submit]{appearance:none;border:1px solid #c69740;background:#d4a650;color:#111;padding:16px 36px;min-width:210px;font-weight:700;cursor:pointer;transition:.2s}.gp-cf7-wrap input[type=submit]:hover{background:#111;color:#fff;border-color:#111}.gp-cf7-wrap .wpcf7-not-valid-tip{color:#b52828;font-size:13px;margin-top:5px}.gp-cf7-wrap .wpcf7-response-output{margin:24px 0 0!important;padding:14px 16px!important;border-width:1px!important}.contact-privacy-note{color:#74716b;font-size:12px;line-height:1.8;margin-top:25px}.contact-form-empty{padding:24px;border:1px dashed #b99b62;background:#fffaf0;line-height:1.8}.contact-editor-content{margin-top:35px;padding-top:30px;border-top:1px solid #ddd}.page-template-page-contact .content-area{padding-top:0}
@media(max-width:900px){.contact-hero{padding:120px 0 70px}.contact-main-section{padding:60px 0 80px}.contact-grid{grid-template-columns:1fr}.contact-info-panel{position:static}.contact-info-panel,.contact-form-panel{padding:34px}}
@media(max-width:520px){.contact-hero{padding:105px 0 55px}.contact-info-panel,.contact-form-panel{padding:25px 20px}.gp-cf7-wrap input[type=submit]{width:100%}}


/* v1.1.1 definitive logo sizing fix */
.site-header .site-branding{display:flex!important;align-items:center!important;gap:12px!important;min-width:190px!important;height:64px!important;overflow:hidden!important;}
.site-header .site-branding .custom-logo-link,
.site-header .site-branding .default-logo{position:static!important;display:flex!important;align-items:center!important;justify-content:center!important;flex:0 0 50px!important;width:50px!important;height:50px!important;max-width:50px!important;max-height:50px!important;overflow:hidden!important;margin:0!important;padding:0!important;transform:none!important;}
.site-header .site-branding .custom-logo-link img,
.site-header .site-branding .default-logo img,
.site-header .site-branding img.custom-logo{position:static!important;display:block!important;width:46px!important;height:46px!important;min-width:0!important;min-height:0!important;max-width:46px!important;max-height:46px!important;object-fit:contain!important;object-position:center!important;margin:0!important;padding:0!important;transform:none!important;}
.site-header .site-title{position:static!important;display:block!important;white-space:nowrap!important;margin:0!important;}
@media(max-width:700px){
 .site-header .site-branding{height:56px!important;min-width:0!important;}
 .site-header .site-branding .custom-logo-link,.site-header .site-branding .default-logo{flex-basis:42px!important;width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;}
 .site-header .site-branding .custom-logo-link img,.site-header .site-branding .default-logo img,.site-header .site-branding img.custom-logo{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;}
}

/* v1.4.1: Keep the hero copy aligned to the left side of the site grid.
   The previous .container + max-width combination centered the whole copy block. */
.hero .hero-content{
  width:min(calc(100% - 48px),1320px);
  max-width:1320px;
  margin-left:auto;
  margin-right:auto;
  padding-left:0;
  padding-right:0;
}
.hero .hero-content > *{
  max-width:720px;
}
.hero .hero-buttons{
  max-width:720px;
}
@media (max-width:700px){
  .hero .hero-content{
    width:min(calc(100% - 28px),1320px);
  }
  .hero .hero-content > *,
  .hero .hero-buttons{
    max-width:100%;
  }
}

/* v1.2.0: desktop hero copy is anchored to the left, matching the approved mockup. */
@media (min-width: 701px){
  .hero{
    justify-content:flex-start!important;
  }
  .hero .hero-content.container{
    width:720px!important;
    max-width:calc(100vw - 96px)!important;
    margin-left:max(48px, calc((100vw - 1440px) / 2))!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .hero .hero-content > *,
  .hero .hero-buttons{
    width:100%!important;
    max-width:720px!important;
  }
}
@media (min-width:701px) and (max-width:1000px){
  .hero .hero-content.container{
    width:620px!important;
    max-width:calc(100vw - 64px)!important;
    margin-left:32px!important;
  }
}
