:root{
    --bg: #EDEEF6;
    --bg-soft: #F6F6FB;
    --ink: #1E1A3A;
    --ink-soft: #4E4A70;
    --ink-faint: #8B87A8;
    --line: #C9C6DE;
    --gold: #6C4FD8;
    --gold-soft: #C8B9F5;
    --white: #FFFFFF;
    --navy-deep: #1A1240;
    --radius: 2px;
    --serif: "Shippori Mincho B1", serif;
    --sans: "Noto Sans JP", sans-serif;
    --mono: "JetBrains Mono", monospace;
    --ease: cubic-bezier(.4,0,.2,1);
  }

  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.01ms !important; animation-iteration-count:1 !important; transition-duration:0.01ms !important;}
  }

  body{
    font-family:var(--sans);
    background:var(--bg);
    color:var(--ink);
    line-height:1.85;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }

  img{max-width:100%; display:block;}

  a{color:inherit; text-decoration:none;}

  .wrap{
    max-width:1120px;
    margin:0 auto;
    padding:0 32px;
    padding-left:10px;
  }

  h1,h2,h3,h4{
    font-family:var(--serif);
    font-weight:600;
    line-height:1.5;
    color:var(--ink);
  }

  ::selection{background:var(--gold-soft); color:var(--navy-deep);}

  :focus-visible{
    outline:2px solid var(--gold);
    outline-offset:3px;
  }

  /* ---------- utility: eyebrow label ---------- */
  .eyebrow{
    display:flex;
    align-items:center;
    gap:12px;
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.18em;
    color:var(--gold);
    text-transform:uppercase;
    margin-bottom:18px;
  }
  .eyebrow::before{
    content:"";
    width:28px;
    height:1px;
    background:var(--gold);
    display:inline-block;
  }

  .section{
    padding:120px 0;
    position:relative;
  }
  .section-head{
    max-width:640px;
    margin-bottom:64px;
  }
  .section-head h2{
    font-size:clamp(26px,3.4vw,38px);
    margin-bottom:16px;
  }
  .section-head p{
    color:var(--ink-soft);
    font-size:15.5px;
  }

  .reveal{
    opacity:0;
    transform:translateY(28px);
    transition:opacity .8s var(--ease), transform .8s var(--ease);
  }
  .reveal.is-visible{
    opacity:1;
    transform:translateY(0);
  }

  /* ================= HEADER ================= */
  header{
    position:fixed;
    top:0; left:0; right:0;
    z-index:1000;
    padding:22px 0;
    transition:padding .35s var(--ease), background .35s var(--ease), box-shadow .35s var(--ease);
  }
  header .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding-left: 0;
  }
  header.scrolled{
    padding:12px 0;
    background:rgba(237,238,246,.92);
    backdrop-filter:blur(10px);
    box-shadow:0 1px 0 var(--line);
  }

  .logo{
    display:flex;
    align-items:center;
    gap:10px;
    font-family:var(--serif);
    font-weight:600;
    font-size:19px;
    color:var(--navy-deep);
    letter-spacing:.02em;
  }
  .logo-img{
    height: 73.5px;
    width:auto;
    display:block;
    margin-top:-50px;
    margin-bottom:-50px;
    object-fit: contain; /* ← 画像が変形して潰れるのを防ぐ */
    aspect-ratio: auto;  /* または実際の画像の横幅÷高さの比率（例: 3/1 など）を指定 */
  }

  nav.desktop-nav{
    display:flex;
    align-items:center;
    gap:34px;
  }
  nav.desktop-nav a{
    font-size:13.5px;
    color:var(--ink-soft);
    position:relative;
    padding:4px 0;
  }
  nav.desktop-nav a:hover{color:var(--ink);}
  nav.desktop-nav a::after{
    content:"";
    position:absolute;
    left:0; bottom:0;
    width:0; height:1px;
    background:var(--gold);
    transition:width .3s var(--ease);
  }
  nav.desktop-nav a:hover::after{width:100%;}

  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    font-size:13.5px;
    font-weight:600;
    padding:13px 26px;
    border-radius:var(--radius);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease), color .25s var(--ease);
    white-space:nowrap;
  }
  .btn-primary{
    background:var(--navy-deep);
    color:var(--white);
  }
  .btn-primary:hover{
    background:var(--gold);
    color:var(--navy-deep);
    transform:translateY(-2px);
    box-shadow:0 10px 24px rgba(108,79,216,.35);
  }
  .btn-ghost{
    border:1px solid var(--line);
    color:var(--ink);
  }
  .btn-ghost:hover{
    border-color:var(--navy-deep);
    background:var(--navy-deep);
    color:var(--white);
  }
  .btn-small{padding:10px 18px; font-size:12.5px;}

  .menu-toggle{
    display:none;
    width:38px; height:38px;
    border:1px solid var(--line);
    background:var(--bg-soft);
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  .menu-toggle span{
    display:block; width:16px; height:1px; background:var(--ink);
    position:relative;
  }
  .menu-toggle span::before,.menu-toggle span::after{
    content:""; position:absolute; left:0; width:16px; height:1px; background:var(--ink); transition:transform .3s var(--ease);
  }
  .menu-toggle span::before{top:-5px;}
  .menu-toggle span::after{top:5px;}

  .mobile-nav{
    position:fixed;
    inset:0;
    background:var(--navy-deep);
    z-index:999;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:28px;
    transform:translateY(-100%);
    transition:transform .45s var(--ease);
  }
  .mobile-nav.open{transform:translateY(0);}
  .mobile-nav a{
    font-family:var(--serif);
    font-size:24px;
    color:var(--white);
  }
  .mobile-nav .btn-primary{margin-top:14px;}

  /* ================= HERO ================= */
  .hero{
    min-height:100svh;
    display:flex;
    align-items:center;
    position:relative;
    padding-top:110px;
    background:
      radial-gradient(circle at 82% 18%, rgba(108,79,216,.14), transparent 45%),
      var(--bg);
    overflow:hidden;
  }
  .hero .wrap{
    display:flex;
    justify-content:center;
    position:relative;
    z-index:2;
  }
  .hero-copy{max-width:660px; text-align:center;}
  .hero-copy .eyebrow{margin-bottom:26px; justify-content:center;}
  .hero-copy .sub{margin-left:auto; margin-right:auto;}
  .hero-actions{justify-content:center;}
  .hero-copy h1{
    font-size:clamp(34px,4.6vw,58px);
    letter-spacing:.01em;
    color:var(--navy-deep);
  }
  .hero-copy h1 .accent{
    color:var(--gold);
    position:relative;
  }
  .hero-copy .sub{
    margin-top:26px;
    font-size:16px;
    color:var(--ink-soft);
    max-width:480px;
  }
  .hero-actions{
    margin-top:42px;
    display:flex;
    gap:16px;
    flex-wrap:wrap;
  }
  .hero-note{
    margin-top:22px;
    font-family:var(--mono);
    font-size:12px;
    color:var(--ink-faint);
    letter-spacing:.04em;
  }

  .scroll-cue{
    position:absolute;
    left:32px; bottom:32px;
    display:flex; align-items:center; gap:10px;
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.14em;
    color:var(--ink-faint);
    z-index:2;
  }
  .scroll-cue .bar{
    width:1px; height:34px;
    background:var(--line);
    position:relative;
    overflow:hidden;
  }
  .scroll-cue .bar::after{
    content:"";
    position:absolute; top:-100%; left:0; width:100%; height:100%;
    background:var(--gold);
    animation:cue 2.2s var(--ease) infinite;
  }
  @keyframes cue{ 0%{top:-100%;} 60%{top:100%;} 100%{top:100%;} }

  /* ================= PROBLEMS ================= */
  .problems{background:var(--bg-soft);}
  .problem-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  .problem-chip{
    background:var(--bg-soft);
    padding:30px 22px;
    font-size:14.5px;
    color:var(--ink-soft);
    display:flex;
    align-items:flex-start;
    gap:12px;
    min-height:108px;
    transition:background .3s var(--ease), color .3s var(--ease);
  }
  .problem-chip::before{
    content:"?";
    font-family:var(--serif);
    font-size:15px;
    color:var(--gold);
    flex-shrink:0;
    line-height:1.6;
  }
  .problem-chip:hover{
    background:var(--navy-deep);
    color:var(--white);
  }

  .bridge{
    text-align:center;
    margin-top:80px;
  }
  .bridge .arrow{
    width:1px; height:56px;
    background:var(--line);
    margin:0 auto 26px;
    position:relative;
  }
  .bridge .arrow::after{
    content:"";
    position:absolute; bottom:-1px; left:50%;
    transform:translateX(-50%);
    width:8px; height:8px;
    border-right:1px solid var(--ink-faint);
    border-bottom:1px solid var(--ink-faint);
    rotate:45deg;
  }
  .bridge h3{
    font-size:clamp(22px,2.6vw,30px);
    color:var(--navy-deep);
  }

  /* ================= PLANS ================= */
  .plan-journey{
    display:flex;
    flex-direction:column;
    gap:0;
  }

  .plan-stage{
    background:var(--white);
    border:1px solid var(--line);
    padding:48px;
  }

  .plan-stage-head{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:16px 20px;
    padding-bottom:26px;
    margin-bottom:30px;
    border-bottom:1px solid var(--line);
  }
  .plan-stage-num{
    font-family:var(--mono);
    font-size:12px;
    letter-spacing:.12em;
    color:var(--gold);
    border:1px solid var(--gold-soft);
    padding:5px 11px;
  }
  .plan-stage-head h3{
    font-size:26px;
    color:var(--navy-deep);
  }
  .plan-stage-tag{
    font-size:13px;
    color:var(--ink-soft);
  }

  /* -- stage 01: sessions -- */
  .plan-sessions{
    display:flex;
    flex-direction:column;
    margin-bottom:34px;
  }
  .plan-session{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:16px 0;
    border-bottom:1px solid var(--line);
  }
  .plan-session:first-child{padding-top:0;}
  .s-info{display:flex; align-items:baseline; gap:14px;}
  .s-label{
    font-family:var(--mono);
    font-size:11.5px;
    color:var(--gold);
    letter-spacing:.08em;
  }
  .s-desc{font-size:15px; color:var(--ink);}
  .s-price{
    font-family:var(--mono);
    font-size:17px;
    color:var(--navy-deep);
    font-weight:600;
  }

  .plan-deliverables{margin-bottom:28px;}
  .d-title{
    display:block;
    font-size:12px;
    color:var(--ink-faint);
    letter-spacing:.06em;
    margin-bottom:12px;
  }
  .d-chips{display:flex; flex-wrap:wrap; gap:10px;}
  .d-chip{
    font-size:13px;
    color:var(--navy-deep);
    background:var(--gold-soft);
    padding:9px 16px;
    font-weight:600;
  }

  .plan-footnote{
    font-size:12.5px;
    color:var(--ink-faint);
    line-height:1.9;
  }

  /* -- bridge connecting stage 01 -> 02 -- */
  .plan-bridge{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    padding:34px 0;
  }
  .plan-bridge-line{
    position:relative;
    width:1px;
    height:64px;
    background:var(--line);
  }
  .plan-bridge-dot{
    position:absolute;
    bottom:-1px; left:50%;
    transform:translateX(-50%);
    width:8px; height:8px;
    border-right:1px solid var(--ink-faint);
    border-bottom:1px solid var(--ink-faint);
    rotate:45deg;
  }
  .plan-bridge-badge{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    text-align:center;
  }
  .pb-label{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    color:var(--ink-faint);
  }
  .pb-value{
    font-size:14px;
    color:var(--navy-deep);
  }
  .pb-value strong{color:var(--gold);}
  .pb-arrow{color:var(--ink-faint); margin:0 4px;}

  /* -- stage 02: package -- */
  .package-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
  .package-card{
    background:var(--white);
    border:1px solid var(--line);
    padding:32px 28px;
    position:relative;
    transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
  }
  .package-card:hover{
    transform:translateY(-6px);
    box-shadow:0 24px 40px -20px rgba(217, 9, 65, 0.25);
    border-color:var(--navy-deep);
  }
  .package-card .num{
    font-family:var(--mono);
    font-size:11px;
    color:var(--gold);
    letter-spacing:.1em;
  }
  .package-card h3{
    font-size:19px;
    margin:14px 0 18px;
  }
  .package-card ul{
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:11px;
  }
  .package-card li{
    font-size:13.5px;
    color:var(--ink-soft);
    padding-left:16px;
    position:relative;
  }
  .package-card li::before{
    content:"";
    position:absolute; left:0; top:9px;
    width:6px; height:1px;
    background:var(--gold);
  }

  .plan-stage-package{
    background:var(--navy-deep);
    border-color:var(--navy-deep);
  }
  .plan-stage-package .plan-stage-head{border-bottom-color:rgba(255,255,255,.14);}
  .plan-stage-package .plan-stage-num{color:var(--gold-soft); border-color:rgba(228,207,160,.4);}
  .plan-stage-package .plan-stage-head h3{color:var(--white);}
  .plan-stage-package .plan-stage-tag{color:rgba(188, 31, 31, 0.6);}
  .plan-price-line{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin-bottom:34px;
  }
  .pp-value{
    font-family:var(--mono);
    font-size:34px;
    color:var(--gold-soft);
    font-weight:600;
  }
  .pp-unit{font-size:14px; color:rgba(255,255,255,.6);}

  .plan-stage-package .package-grid{margin-bottom:34px;}
  .plan-stage-package .package-card{
    background:rgba(255,255,255,.04);
    border-color:rgba(255,255,255,.14);
  }
  .plan-stage-package .package-card:hover{
    border-color:var(--gold-soft);
    box-shadow:none;
  }
  .plan-stage-package .package-card h3{color:var(--white); font-size:19px;}
  .plan-stage-package .package-card li{color:rgba(255,255,255,.62);}
  .plan-stage-package .plan-footnote{color:rgba(255,255,255,.5);}

  /* -- stage 03: aftercare (promoted) -- */
  .plan-stage-aftercare{
    background:linear-gradient(180deg, var(--gold-soft) 0%, #F4E9D2 100%);
    border-color:var(--gold);
  }
  .plan-stage-aftercare .plan-stage-head{border-bottom-color:rgba(26,18,64,.14);}
  .plan-stage-aftercare .plan-stage-num{color:var(--navy-deep); border-color:var(--navy-deep); background:rgba(255,255,255,.5);}
  .plan-stage-aftercare .plan-stage-head h3{color:var(--navy-deep);}
  .plan-stage-aftercare .plan-session{border-bottom-color:rgba(26,18,64,.14);}
  .plan-stage-aftercare .s-desc{color:var(--navy-deep); font-weight:500;}
  .plan-stage-aftercare .s-price{color:var(--gold);}
  .plan-stage-aftercare .d-chip{background:var(--navy-deep); color:var(--gold-soft);}
  .plan-stage-aftercare .plan-footnote{color:var(--ink-soft);}

  @media (max-width:720px){
    .plan-stage{padding:32px 24px;}
  }

  /* ================= FLOW ================= */
  .flow{background:var(--navy-deep); color:var(--white);}
  .flow .eyebrow{color:var(--gold-soft);}
  .flow .eyebrow::before{background:var(--gold-soft);}
  .flow .section-head h2{color:var(--white);}
  .flow .section-head p{color:rgba(255,255,255,.6);}

  .timeline{
    position:relative;
    display:flex;
    flex-direction:column;
  }
  .timeline::before{
    content:"";
    position:absolute;
    left:29px; top:10px; bottom:10px;
    width:1px;
    background:rgba(255,255,255,.18);
  }
  .timeline-step{
    display:flex;
    align-items:center;
    gap:28px;
    padding:22px 0;
  }
  .timeline-step .idx{
    flex-shrink:0;
    width:60px; height:60px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.25);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--mono);
    font-size:14px;
    color:var(--gold-soft);
    background:var(--navy-deep);
    z-index:1;
    transition:border-color .3s var(--ease), background .3s var(--ease);
  }
  .timeline-step:hover .idx{
    background:var(--gold);
    color:var(--navy-deep);
    border-color:var(--gold);
  }
  .timeline-step .txt h4{color:var(--white); font-size:18px; font-weight:600;}
  .timeline-step .txt span{font-size:13px; color:rgba(255,255,255,.55);}

  /* ================= ABOUT ================= */
  .about-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:70px;
    align-items:start;
  }
  .about-grid h2{font-size:clamp(24px,3vw,32px); margin-bottom:22px;}
  .about-grid .lead{
    font-size:15.5px;
    color:var(--ink-soft);
  }
  .about-grid .name-origin{
    margin-top:28px;
    padding:24px 26px;
    background:var(--bg-soft);
    border-left:2px solid var(--gold);
    font-size:14px;
    color:var(--ink-soft);
  }
  .about-grid .name-origin b{color:var(--navy-deep);}

  .partners{
    margin-top:110px;
  }
  .partner-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:28px;
  }
  .partner-card{
    background:var(--white);
    border:1px solid var(--line);
    padding:38px;
  }
  .partner-avatar{
     
    width:80px; height:80px;
    border-radius:5%;
    background:var(--navy-deep);
    color:var(--gold-soft);
    display:flex; align-items:center; justify-content:center;
    font-family:var(--serif);
    font-size:20px;
    margin-bottom:22px;
  }

  .partner-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .partner-card h4{font-size:19px; margin-bottom:4px;}
  .partner-card .role{
    font-family:var(--mono);
    font-size:11.5px;
    color:var(--gold);
    letter-spacing:.06em;
    margin-bottom:18px;
    display:block;
  }
  .partner-card ul{list-style:none; display:flex; flex-direction:column; gap:9px;}
  .partner-card li{
    font-size:13.5px;
    color:var(--ink-soft);
    padding-left:14px;
    position:relative;
  }
  .partner-card li::before{
    content:""; position:absolute; left:0; top:9px; width:5px; height:1px; background:var(--gold);
  }

  /* ================= FAQ ================= */
  .faq-list{border-top:1px solid var(--line);}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%;
    text-align:left;
    background:none;
    border:none;
    padding:26px 4px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    cursor:pointer;
    font-family:var(--sans);
    font-size:16px;
    font-weight:600;
    color:var(--navy-deep);
  }
  .faq-q .q-tag{font-family:var(--mono); color:var(--gold); margin-right:14px; font-size:14px;}
  .faq-q .plus{
    width:20px; height:20px;
    position:relative;
    flex-shrink:0;
  }
  .faq-q .plus::before,.faq-q .plus::after{
    content:"";
    position:absolute; top:50%; left:50%;
    background:var(--ink);
    transform:translate(-50%,-50%);
  }
  .faq-q .plus::before{width:14px; height:1px;}
  .faq-q .plus::after{width:1px; height:14px; transition:transform .3s var(--ease);}
  .faq-item.open .plus::after{transform:translate(-50%,-50%) rotate(90deg) scaleX(0);}

  .faq-a{
    max-height:0;
    overflow:hidden;
    transition:max-height .4s var(--ease);
  }
  .faq-a p{
    padding:0 4px 26px 68px;
    font-size:14.5px;
    color:var(--ink-soft);
    max-width:560px;
  }

  /* ================= CONTACT ================= */
  .contact{background:var(--bg-soft);}
  .contact-panel{
    background:var(--navy-deep);
    color:var(--white);
    padding:64px;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:56px;
    position:relative;
    overflow:hidden;
  }
  .contact-panel::before{
    content:"";
    position:absolute;
    right:-60px; top:-60px;
    width:220px; height:220px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:50%;
  }
  .contact-main .eyebrow{color:var(--gold-soft);}
  .contact-main .eyebrow::before{background:var(--gold-soft);}
  .contact-main h2{color:var(--white); font-size:clamp(24px,3vw,32px); margin-bottom:16px;}
  .contact-main p{color:rgba(255,255,255,.68); font-size:14.5px; max-width:420px; margin-bottom:32px;}
  .line-cta{
    display:inline-flex;
    align-items:center;
    gap:12px;
    background:#06C755;
    color:var(--white);
    font-weight:700;
    padding:18px 32px;
    font-size:15px;
    border-radius:var(--radius);
    transition:transform .25s var(--ease), box-shadow .25s var(--ease);
  }
  .line-cta:hover{transform:translateY(-3px); box-shadow:0 14px 30px rgba(6,199,85,.35);}
  .line-cta svg{width:20px; height:20px;}

  /* ---------- floating LINE button (follows scroll) ---------- */
  .floating-line{
    position:fixed;
    right:28px;
    bottom:28px;
    z-index:1200;
    display:inline-flex;
    align-items:center;
    gap:10px;
    background:#06C755;
    color:var(--white);
    font-weight:700;
    font-size:14px;
    padding:15px 24px;
    border-radius:999px;
    box-shadow:0 12px 28px rgba(6,199,85,.4);
    opacity:0;
    transform:translateY(16px) scale(.96);
    pointer-events:none;
    transition:opacity .35s var(--ease), transform .35s var(--ease), box-shadow .25s var(--ease);
  }
  .floating-line.visible{
    opacity:1;
    transform:translateY(0) scale(1);
    pointer-events:auto;
  }
  .floating-line:hover{
    box-shadow:0 16px 34px rgba(6,199,85,.5);
    transform:translateY(-3px) scale(1);
  }
  .floating-line svg{width:19px; height:19px; flex-shrink:0;}
  @media (max-width:600px){
    .floating-line{
      right:16px;
      bottom:16px;
      padding:14px 18px;
      font-size:13px;
    }
  }
  @media (prefers-reduced-motion: reduce){
    .floating-line{transition:opacity .01ms;}
  }

  .contact-alt{
    border-left:1px solid rgba(255,255,255,.14);
    padding-left:56px;
    display:flex;
    flex-direction:column;
    gap:26px;
    justify-content:center;
  }
  .contact-alt .row .label{
    font-family:var(--mono);
    font-size:11px;
    letter-spacing:.1em;
    color:var(--gold-soft);
    display:block;
    margin-bottom:6px;
  }
  .contact-alt .row .val{font-size:15.5px; color:var(--white);}

  footer{
    background:var(--navy-deep);
    color:rgba(255,255,255,.5);
    padding:32px 0;
    border-top:1px solid rgba(255,255,255,.1);
  }
  footer .wrap{
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:12.5px;
  }
  footer .foot-brand{
    font-family:var(--serif);
    color:var(--white);
    font-size:14px;
  }

  /* ================= RESPONSIVE ================= */
  @media (max-width:1000px){
    .package-grid{grid-template-columns:1fr;}
    .individual-card{grid-template-columns:1fr;}
    .about-grid{grid-template-columns:1fr; gap:44px;}
    .partner-grid{grid-template-columns:1fr;}
    .contact-panel{grid-template-columns:1fr; padding:44px 32px;}
    .contact-alt{border-left:none; border-top:1px solid rgba(255,255,255,.14); padding-left:0; padding-top:32px;}
  }
  @media (max-width:860px){
    .problem-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:760px){
    nav.desktop-nav, header .btn-primary{display:none;}
    .menu-toggle{display:flex;}
    .section{padding:88px 0;}
    .wrap{padding:0 22px;}
    .problem-grid{grid-template-columns:1fr;}
    .contact-panel{padding:34px 22px;}
  }